diff options
author | Peter Leitzen <pleitzen@gitlab.com> | 2019-04-03 21:15:17 +0200 |
---|---|---|
committer | Peter Leitzen <pleitzen@gitlab.com> | 2019-04-04 09:22:32 +0200 |
commit | 3d27a71d77ef77b04662a9c8222f180bcd73ccd4 (patch) | |
tree | d03199a23a8ba931dc66ad809c255f8bca953585 | |
parent | d2ba501956940289baa1bcc4b544704c98eebb69 (diff) | |
download | gitlab-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.yml | 5 | ||||
-rw-r--r-- | spec/lib/gitlab/metrics/transaction_spec.rb | 41 |
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 |