From d73e68deb55ea9a5b52facd2f701b9772c0717ac Mon Sep 17 00:00:00 2001 From: Yorick Peterse Date: Wed, 20 Jun 2018 14:33:14 +0200 Subject: Limit the action suffixes in transaction metrics There seem to be a lot of cases where the suffix of an action (e.g. ".html") is set to bogus data, such as "*/*" or entire URLs. This can increase cardinality of our metrics, and isn't very useful for monitoring and filtering. To work around this, we enforce a whitelist containing a few suffixes we actually care about. Suffixes not supported will be grouped under the action without a suffix. This means that a request to "FooController#bar.jpeg" will be assigned to "FooController#bar". --- spec/lib/gitlab/metrics/web_transaction_spec.rb | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'spec') diff --git a/spec/lib/gitlab/metrics/web_transaction_spec.rb b/spec/lib/gitlab/metrics/web_transaction_spec.rb index 6eb0600f49e..0b3b23e930f 100644 --- a/spec/lib/gitlab/metrics/web_transaction_spec.rb +++ b/spec/lib/gitlab/metrics/web_transaction_spec.rb @@ -194,7 +194,7 @@ describe Gitlab::Metrics::WebTransaction do expect(transaction.action).to eq('TestController#show') end - context 'when the response content type is not :html' do + context 'when the request content type is not :html' do let(:request) { double(:request, format: double(:format, ref: :json)) } it 'appends the mime type to the transaction action' do @@ -202,6 +202,15 @@ describe Gitlab::Metrics::WebTransaction do expect(transaction.action).to eq('TestController#show.json') end end + + context 'when the request content type is not' do + let(:request) { double(:request, format: double(:format, ref: 'http://example.com')) } + + it 'does not append the MIME type to the transaction action' do + expect(transaction.labels).to eq({ controller: 'TestController', action: 'show' }) + expect(transaction.action).to eq('TestController#show') + end + end end it 'returns no labels when no route information is present in env' do -- cgit v1.2.1