diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-06-15 18:08:44 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-06-15 18:08:44 +0000 |
commit | 36b47b4bd3eb88b08323cb26f5863e1dacdb18b7 (patch) | |
tree | 404c657f943b2917c812012da30ecc69a9014954 /lib/gitlab/usage | |
parent | 9440c17f554424cc77aff8afadc61adbe23524d1 (diff) | |
download | gitlab-ce-36b47b4bd3eb88b08323cb26f5863e1dacdb18b7.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'lib/gitlab/usage')
-rw-r--r-- | lib/gitlab/usage/metrics/instrumentations/database_metric.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/usage/metrics/name_suggestion.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/usage/metrics/query.rb | 14 |
3 files changed, 17 insertions, 1 deletions
diff --git a/lib/gitlab/usage/metrics/instrumentations/database_metric.rb b/lib/gitlab/usage/metrics/instrumentations/database_metric.rb index 48ff78cfd0f..3b09100f3ff 100644 --- a/lib/gitlab/usage/metrics/instrumentations/database_metric.rb +++ b/lib/gitlab/usage/metrics/instrumentations/database_metric.rb @@ -18,7 +18,7 @@ module Gitlab UnimplementedOperationError = Class.new(StandardError) # rubocop:disable UsageData/InstrumentationSuperclass class << self - IMPLEMENTED_OPERATIONS = %i(count distinct_count estimate_batch_distinct_count sum).freeze + IMPLEMENTED_OPERATIONS = %i(count distinct_count estimate_batch_distinct_count sum average).freeze private_constant :IMPLEMENTED_OPERATIONS diff --git a/lib/gitlab/usage/metrics/name_suggestion.rb b/lib/gitlab/usage/metrics/name_suggestion.rb index 0728af9e2ca..238a7a51a20 100644 --- a/lib/gitlab/usage/metrics/name_suggestion.rb +++ b/lib/gitlab/usage/metrics/name_suggestion.rb @@ -19,6 +19,8 @@ module Gitlab name_suggestion(column: column, relation: relation, prefix: 'estimate_distinct_count') when :sum name_suggestion(column: column, relation: relation, prefix: 'sum') + when :average + name_suggestion(column: column, relation: relation, prefix: 'average') when :redis REDIS_EVENT_METRIC_NAME when :alt diff --git a/lib/gitlab/usage/metrics/query.rb b/lib/gitlab/usage/metrics/query.rb index 91ffca4a92d..e071b422c16 100644 --- a/lib/gitlab/usage/metrics/query.rb +++ b/lib/gitlab/usage/metrics/query.rb @@ -13,6 +13,8 @@ module Gitlab distinct_count(relation, column) when :sum sum(relation, column) + when :average + average(relation, column) when :estimate_batch_distinct_count estimate_batch_distinct_count(relation, column) when :histogram @@ -36,6 +38,10 @@ module Gitlab raw_sum_sql(relation, column) end + def average(relation, column) + raw_average_sql(relation, column) + end + def estimate_batch_distinct_count(relation, column = nil) raw_count_sql(relation, column, true) end @@ -78,6 +84,14 @@ module Gitlab end # rubocop: enable CodeReuse/ActiveRecord + # rubocop: disable CodeReuse/ActiveRecord + def raw_average_sql(relation, column) + node = node_to_operate(relation, column) + + relation.unscope(:order).select(node.average).to_sql + end + # rubocop: enable CodeReuse/ActiveRecord + def node_to_operate(relation, column) if join_relation?(relation) && joined_column?(column) table_name, column_name = column.split(".") |