Merge branch '66150-remove-dynamically-constructed-feature-flags-starting-with-prometheus_transaction_' into 'master'
Resolve "Remove dynamically constructed feature flags starting with `prometheus_transaction_`" Closes #66150 See merge request gitlab-org/gitlab-ce!32395
This commit is contained in:
commit
1c6aa98c37
|
@ -0,0 +1,5 @@
|
||||||
|
---
|
||||||
|
title: Remove dynamically constructed feature flags starting with prometheus_transaction_
|
||||||
|
merge_request: 32395
|
||||||
|
author: Jacopo Beschi @jacopo-beschi
|
||||||
|
type: changed
|
|
@ -91,33 +91,6 @@ The following metrics can be controlled by feature flags:
|
||||||
|:---------------------------------------------------------------|:-------------------------------------------------------------------|
|
|:---------------------------------------------------------------|:-------------------------------------------------------------------|
|
||||||
| `gitlab_method_call_duration_seconds` | `prometheus_metrics_method_instrumentation` |
|
| `gitlab_method_call_duration_seconds` | `prometheus_metrics_method_instrumentation` |
|
||||||
| `gitlab_transaction_allocated_memory_bytes` | `prometheus_metrics_transaction_allocated_memory` |
|
| `gitlab_transaction_allocated_memory_bytes` | `prometheus_metrics_transaction_allocated_memory` |
|
||||||
| `gitlab_transaction_event_build_found_total` | `prometheus_transaction_event_build_found_total` |
|
|
||||||
| `gitlab_transaction_event_build_invalid_total` | `prometheus_transaction_event_build_invalid_total` |
|
|
||||||
| `gitlab_transaction_event_build_not_found_cached_total` | `prometheus_transaction_event_build_not_found_cached_total` |
|
|
||||||
| `gitlab_transaction_event_build_not_found_total` | `prometheus_transaction_event_build_not_found_total` |
|
|
||||||
| `gitlab_transaction_event_change_default_branch_total` | `prometheus_transaction_event_change_default_branch_total` |
|
|
||||||
| `gitlab_transaction_event_create_repository_total` | `prometheus_transaction_event_create_repository_total` |
|
|
||||||
| `gitlab_transaction_event_etag_caching_cache_hit_total` | `prometheus_transaction_event_etag_caching_cache_hit_total` |
|
|
||||||
| `gitlab_transaction_event_etag_caching_header_missing_total` | `prometheus_transaction_event_etag_caching_header_missing_total` |
|
|
||||||
| `gitlab_transaction_event_etag_caching_key_not_found_total` | `prometheus_transaction_event_etag_caching_key_not_found_total` |
|
|
||||||
| `gitlab_transaction_event_etag_caching_middleware_used_total` | `prometheus_transaction_event_etag_caching_middleware_used_total` |
|
|
||||||
| `gitlab_transaction_event_etag_caching_resource_changed_total` | `prometheus_transaction_event_etag_caching_resource_changed_total` |
|
|
||||||
| `gitlab_transaction_event_fork_repository_total` | `prometheus_transaction_event_fork_repository_total` |
|
|
||||||
| `gitlab_transaction_event_import_repository_total` | `prometheus_transaction_event_import_repository_total` |
|
|
||||||
| `gitlab_transaction_event_push_branch_total` | `prometheus_transaction_event_push_branch_total` |
|
|
||||||
| `gitlab_transaction_event_push_commit_total` | `prometheus_transaction_event_push_commit_total` |
|
|
||||||
| `gitlab_transaction_event_push_tag_total` | `prometheus_transaction_event_push_tag_total` |
|
|
||||||
| `gitlab_transaction_event_rails_exception_total` | `prometheus_transaction_event_rails_exception_total` |
|
|
||||||
| `gitlab_transaction_event_receive_email_total` | `prometheus_transaction_event_receive_email_total` |
|
|
||||||
| `gitlab_transaction_event_remote_mirrors_failed_total` | `prometheus_transaction_event_remote_mirrors_failed_total` |
|
|
||||||
| `gitlab_transaction_event_remote_mirrors_finished_total` | `prometheus_transaction_event_remote_mirrors_finished_total` |
|
|
||||||
| `gitlab_transaction_event_remote_mirrors_running_total` | `prometheus_transaction_event_remote_mirrors_running_total` |
|
|
||||||
| `gitlab_transaction_event_remove_branch_total` | `prometheus_transaction_event_remove_branch_total` |
|
|
||||||
| `gitlab_transaction_event_remove_repository_total` | `prometheus_transaction_event_remove_repository_total` |
|
|
||||||
| `gitlab_transaction_event_remove_tag_total` | `prometheus_transaction_event_remove_tag_total` |
|
|
||||||
| `gitlab_transaction_event_sidekiq_exception_total` | `prometheus_transaction_event_sidekiq_exception_total` |
|
|
||||||
| `gitlab_transaction_event_stuck_import_jobs_total` | `prometheus_transaction_event_stuck_import_jobs_total` |
|
|
||||||
| `gitlab_transaction_event_update_build_total` | `prometheus_transaction_event_update_build_total` |
|
|
||||||
| `gitlab_view_rendering_duration_seconds` | `prometheus_metrics_view_instrumentation` |
|
| `gitlab_view_rendering_duration_seconds` | `prometheus_metrics_view_instrumentation` |
|
||||||
|
|
||||||
## Sidekiq Metrics available for Geo **(PREMIUM)**
|
## Sidekiq Metrics available for Geo **(PREMIUM)**
|
||||||
|
|
|
@ -78,7 +78,7 @@ module Gitlab
|
||||||
# tags - A set of tags to attach to the event.
|
# tags - A set of tags to attach to the event.
|
||||||
def add_event(event_name, tags = {})
|
def add_event(event_name, tags = {})
|
||||||
filtered_tags = filter_tags(tags)
|
filtered_tags = filter_tags(tags)
|
||||||
self.class.transaction_metric(event_name, :counter, prefix: 'event_', use_feature_flag: true, tags: filtered_tags).increment(filtered_tags.merge(labels))
|
self.class.transaction_metric(event_name, :counter, prefix: 'event_', tags: filtered_tags).increment(filtered_tags.merge(labels))
|
||||||
@metrics << Metric.new(EVENT_SERIES, { count: 1 }, filtered_tags.merge(event: event_name), :event)
|
@metrics << Metric.new(EVENT_SERIES, { count: 1 }, filtered_tags.merge(event: event_name), :event)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -155,12 +155,11 @@ module Gitlab
|
||||||
with_feature :prometheus_metrics_transaction_allocated_memory
|
with_feature :prometheus_metrics_transaction_allocated_memory
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.transaction_metric(name, type, prefix: nil, use_feature_flag: false, tags: {})
|
def self.transaction_metric(name, type, prefix: nil, tags: {})
|
||||||
metric_name = "gitlab_transaction_#{prefix}#{name}_total".to_sym
|
metric_name = "gitlab_transaction_#{prefix}#{name}_total".to_sym
|
||||||
fetch_metric(type, metric_name) do
|
fetch_metric(type, metric_name) do
|
||||||
docstring "Transaction #{prefix}#{name} #{type}"
|
docstring "Transaction #{prefix}#{name} #{type}"
|
||||||
base_labels tags.merge(BASE_LABELS)
|
base_labels tags.merge(BASE_LABELS)
|
||||||
with_feature "prometheus_transaction_#{prefix}#{name}_total".to_sym if use_feature_flag
|
|
||||||
|
|
||||||
if type == :gauge
|
if type == :gauge
|
||||||
multiprocess_mode :livesum
|
multiprocess_mode :livesum
|
||||||
|
|
|
@ -204,17 +204,17 @@ describe Gitlab::Metrics::Transaction do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'allows tracking of custom tags' do
|
it 'allows tracking of custom tags' do
|
||||||
transaction.add_event(:meow, animal: 'cat')
|
transaction.add_event(:bau, animal: 'dog')
|
||||||
|
|
||||||
expect(metric.tags).to eq(event: :meow, animal: 'cat')
|
expect(metric.tags).to eq(event: :bau, animal: 'dog')
|
||||||
end
|
end
|
||||||
|
|
||||||
context 'with sensitive tags' do
|
context 'with sensitive tags' do
|
||||||
before do
|
before do
|
||||||
transaction.add_event(:meow, **sensitive_tags.merge(sane: 'yes'))
|
transaction.add_event(:baubau, **sensitive_tags.merge(sane: 'yes'))
|
||||||
end
|
end
|
||||||
|
|
||||||
it_behaves_like 'tag filter', event: :meow, sane: 'yes'
|
it_behaves_like 'tag filter', event: :baubau, sane: 'yes'
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -253,11 +253,11 @@ describe Gitlab::Metrics::WebTransaction do
|
||||||
end
|
end
|
||||||
|
|
||||||
it 'allows tracking of custom tags' do
|
it 'allows tracking of custom tags' do
|
||||||
transaction.add_event(:meow, animal: 'cat')
|
transaction.add_event(:bau, animal: 'dog')
|
||||||
|
|
||||||
metric = transaction.metrics[0]
|
metric = transaction.metrics[0]
|
||||||
|
|
||||||
expect(metric.tags).to eq(event: :meow, animal: 'cat')
|
expect(metric.tags).to eq(event: :bau, animal: 'dog')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue