summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Leitzen <pleitzen@gitlab.com>2019-04-03 21:15:17 +0200
committerPeter Leitzen <pleitzen@gitlab.com>2019-04-04 09:22:32 +0200
commit3d27a71d77ef77b04662a9c8222f180bcd73ccd4 (patch)
treed03199a23a8ba931dc66ad809c255f8bca953585
parentd2ba501956940289baa1bcc4b544704c98eebb69 (diff)
downloadgitlab-ce-48090-filter-sensitive-metric-labels.tar.gz
Ensure that `add_metric` also filters tags48090-filter-sensitive-metric-labels
-rw-r--r--changelogs/unreleased/48090-filter-sensitive-metric-labels.yml5
-rw-r--r--spec/lib/gitlab/metrics/transaction_spec.rb41
2 files changed, 37 insertions, 9 deletions
diff --git a/changelogs/unreleased/48090-filter-sensitive-metric-labels.yml b/changelogs/unreleased/48090-filter-sensitive-metric-labels.yml
new file mode 100644
index 00000000000..e588fa79619
--- /dev/null
+++ b/changelogs/unreleased/48090-filter-sensitive-metric-labels.yml
@@ -0,0 +1,5 @@
+---
+title: Remove `path` and `branch` labels from metrics
+merge_request: 26744
+author:
+type: fixed
diff --git a/spec/lib/gitlab/metrics/transaction_spec.rb b/spec/lib/gitlab/metrics/transaction_spec.rb
index 6c1ec512b25..e70fde09edd 100644
--- a/spec/lib/gitlab/metrics/transaction_spec.rb
+++ b/spec/lib/gitlab/metrics/transaction_spec.rb
@@ -4,6 +4,20 @@ require 'spec_helper'
describe Gitlab::Metrics::Transaction do
let(:transaction) { described_class.new }
+ let(:metric) { transaction.metrics[0] }
+
+ let(:sensitive_tags) do
+ {
+ path: 'private',
+ branch: 'sensitive'
+ }
+ end
+
+ shared_examples 'tag filter' do |sane_tags|
+ it 'filters potentially sensitive tags' do
+ expect(metric.tags).to eq(sane_tags)
+ end
+ end
describe '#duration' do
it 'returns the duration of a transaction in seconds' do
@@ -41,11 +55,20 @@ describe Gitlab::Metrics::Transaction do
describe '#add_metric' do
it 'adds a metric to the transaction' do
- expect(Gitlab::Metrics::Metric)
- .to receive(:new)
- .with('rails_foo', { number: 10 }, {})
+ transaction.add_metric('foo', value: 1)
- transaction.add_metric('foo', number: 10)
+ expect(metric.series).to eq('rails_foo')
+ expect(metric.tags).to eq({})
+ expect(metric.values).to eq(value: 1)
+ end
+
+ context 'with sensitive tags' do
+ before do
+ transaction
+ .add_metric('foo', { value: 1 }, **sensitive_tags.merge(sane: 'yes'))
+ end
+
+ it_behaves_like 'tag filter', sane: 'yes'
end
end
@@ -156,8 +179,6 @@ describe Gitlab::Metrics::Transaction do
end
describe '#add_event' do
- let(:metric) { transaction.metrics[0] }
-
it 'adds a metric' do
transaction.add_event(:meow)
@@ -188,10 +209,12 @@ describe Gitlab::Metrics::Transaction do
expect(metric.tags).to eq(event: :meow, animal: 'cat')
end
- it 'filters potentially sensitive tags' do
- transaction.add_event(:meow, path: 'private', branch: 'sensitive')
+ context 'with sensitive tags' do
+ before do
+ transaction.add_event(:meow, **sensitive_tags.merge(sane: 'yes'))
+ end
- expect(metric.tags).to eq(event: :meow)
+ it_behaves_like 'tag filter', event: :meow, sane: 'yes'
end
end