Class: Gitlab::Usage::Metrics::Instrumentations::BaseIntegrationsMetric
- Inherits:
-
DatabaseMetric
- Object
- BaseMetric
- DatabaseMetric
- Gitlab::Usage::Metrics::Instrumentations::BaseIntegrationsMetric
- Defined in:
- lib/gitlab/usage/metrics/instrumentations/base_integrations_metric.rb
Direct Known Subclasses
ActiveGroupIntegrationsMetric, ActiveGroupsInheritingIntegrationsMetric, ActiveInstanceIntegrationsMetric, ActiveProjectIntegrationsMetric, ActiveProjectsInheritingIntegrationsMetric
Constant Summary
Constants inherited from DatabaseMetric
DatabaseMetric::UnimplementedOperationError
Constants included from TimeFrame
TimeFrame::ALL_TIME_TIME_FRAME_NAME, TimeFrame::DEFAULT_TIMESTAMP_COLUMN, TimeFrame::SEVEN_DAYS_TIME_FRAME_NAME, TimeFrame::TWENTY_EIGHT_DAYS_TIME_FRAME_NAME
Constants included from Gitlab::Utils::UsageData
Gitlab::Utils::UsageData::DISTRIBUTED_HLL_FALLBACK, Gitlab::Utils::UsageData::FALLBACK, Gitlab::Utils::UsageData::HISTOGRAM_FALLBACK, Gitlab::Utils::UsageData::MAX_BUCKET_SIZE
Instance Attribute Summary
Attributes inherited from BaseMetric
#events, #metric_definition, #options, #time_frame
Class Method Summary collapse
-
.integrations_name(options) ⇒ Object
Usage Example.
Instance Method Summary collapse
- #available? ⇒ Boolean
-
#initialize(metric_definition) ⇒ BaseIntegrationsMetric
constructor
A new instance of BaseIntegrationsMetric.
Methods inherited from DatabaseMetric
cache_start_and_finish_as, finish, #instrumentation, metric_options, operation, relation, start, timestamp_column, #to_sql, #value
Methods inherited from BaseMetric
Methods included from TimeFrame
#monthly_time_range, #monthly_time_range_db_params, #weekly_time_range, #weekly_time_range_db_params
Methods included from Gitlab::Utils::UsageData
#add, #add_metric, #alt_usage_data, #average, #count, #distinct_count, #estimate_batch_distinct_count, #histogram, #maximum_id, #measure_duration, #metrics_collection_metadata, #minimum_id, #redis_usage_data, #sum, #track_usage_event, #with_finished_at, #with_metadata, #with_prometheus_client
Constructor Details
#initialize(metric_definition) ⇒ BaseIntegrationsMetric
Returns a new instance of BaseIntegrationsMetric.
22 23 24 25 26 27 28 |
# File 'lib/gitlab/usage/metrics/instrumentations/base_integrations_metric.rb', line 22 def initialize(metric_definition) super return if [:type] raise ArgumentError, "'type' option is required" end |
Class Method Details
.integrations_name(options) ⇒ Object
Usage Example
class ActiveGroupIntegrationsMetric < BaseIntegrationsMetric
operation :count
relation do |database_time_constraints|
Integration.active.where.not(group: nil).where(type: integrations_name())
end
end
18 19 20 |
# File 'lib/gitlab/usage/metrics/instrumentations/base_integrations_metric.rb', line 18 def self.integrations_name() Integration.integration_name_to_type([:type]) end |
Instance Method Details
#available? ⇒ Boolean
30 31 32 |
# File 'lib/gitlab/usage/metrics/instrumentations/base_integrations_metric.rb', line 30 def available? [:type].in?(allowed_types) end |