Class: Gitlab::Usage::Metrics::Instrumentations::CountSnippetsMetric

Inherits:
DatabaseMetric show all
Defined in:
lib/gitlab/usage/metrics/instrumentations/count_snippets_metric.rb

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, #options, #time_frame

Instance Method Summary collapse

Methods inherited from DatabaseMetric

cache_start_and_finish_as, finish, #instrumentation, metric_options, operation, relation, start, timestamp_column

Methods inherited from BaseMetric

available?, #available?, #initialize, #instrumentation

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, #minimum_id, #redis_usage_data, #sum, #track_usage_event, #with_finished_at, #with_metadata, #with_prometheus_client

Constructor Details

This class inherits a constructor from Gitlab::Usage::Metrics::Instrumentations::BaseMetric

Instance Method Details

#personal_snippet_relationObject



21
22
23
# File 'lib/gitlab/usage/metrics/instrumentations/count_snippets_metric.rb', line 21

def personal_snippet_relation
  PersonalSnippet.where(time_constraints)
end

#project_snippet_relationObject



17
18
19
# File 'lib/gitlab/usage/metrics/instrumentations/count_snippets_metric.rb', line 17

def project_snippet_relation
  ProjectSnippet.where(time_constraints)
end

#to_sqlObject



25
26
27
28
29
30
# File 'lib/gitlab/usage/metrics/instrumentations/count_snippets_metric.rb', line 25

def to_sql
  project_snippet_relation_sql = Gitlab::Usage::Metrics::Query.for(:count, project_snippet_relation)
  personal_snippet_relation_sql = Gitlab::Usage::Metrics::Query.for(:count, personal_snippet_relation)

  "SELECT (#{project_snippet_relation_sql}) + (#{personal_snippet_relation_sql})"
end

#valueObject



13
14
15
# File 'lib/gitlab/usage/metrics/instrumentations/count_snippets_metric.rb', line 13

def value
  count(project_snippet_relation) + count(personal_snippet_relation)
end