Stop tracking call stacks for instrumented views
Where a vew is called from doesn't matter as much. We already know what action they belong to and this is more than enough information. By removing the file/line number from the list of tags we should also be able to reduce the number of series stored in InfluxDB.
This commit is contained in:
parent
587f850170
commit
355c341fe7
4 changed files with 2 additions and 40 deletions
|
@ -36,20 +36,6 @@ module Gitlab
|
||||||
@pool
|
@pool
|
||||||
end
|
end
|
||||||
|
|
||||||
# Returns a relative path and line number based on the last application call
|
|
||||||
# frame.
|
|
||||||
def self.last_relative_application_frame
|
|
||||||
frame = caller_locations.find do |l|
|
|
||||||
l.path.start_with?(RAILS_ROOT) && !l.path.start_with?(METRICS_ROOT)
|
|
||||||
end
|
|
||||||
|
|
||||||
if frame
|
|
||||||
return frame.path.sub(PATH_REGEX, ''), frame.lineno
|
|
||||||
else
|
|
||||||
return nil, nil
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
def self.submit_metrics(metrics)
|
def self.submit_metrics(metrics)
|
||||||
prepared = prepare_metrics(metrics)
|
prepared = prepare_metrics(metrics)
|
||||||
|
|
||||||
|
|
|
@ -33,16 +33,8 @@ module Gitlab
|
||||||
|
|
||||||
def tags_for(event)
|
def tags_for(event)
|
||||||
path = relative_path(event.payload[:identifier])
|
path = relative_path(event.payload[:identifier])
|
||||||
tags = { view: path }
|
|
||||||
|
|
||||||
file, line = Metrics.last_relative_application_frame
|
{ view: path }
|
||||||
|
|
||||||
if file and line
|
|
||||||
tags[:file] = file
|
|
||||||
tags[:line] = line
|
|
||||||
end
|
|
||||||
|
|
||||||
tags
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def current_transaction
|
def current_transaction
|
||||||
|
|
|
@ -14,19 +14,12 @@ describe Gitlab::Metrics::Subscribers::ActionView do
|
||||||
|
|
||||||
before do
|
before do
|
||||||
allow(subscriber).to receive(:current_transaction).and_return(transaction)
|
allow(subscriber).to receive(:current_transaction).and_return(transaction)
|
||||||
|
|
||||||
allow(Gitlab::Metrics).to receive(:last_relative_application_frame).
|
|
||||||
and_return(['app/views/x.html.haml', 4])
|
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '#render_template' do
|
describe '#render_template' do
|
||||||
it 'tracks rendering of a template' do
|
it 'tracks rendering of a template' do
|
||||||
values = { duration: 2.1 }
|
values = { duration: 2.1 }
|
||||||
tags = {
|
tags = { view: 'app/views/x.html.haml' }
|
||||||
view: 'app/views/x.html.haml',
|
|
||||||
file: 'app/views/x.html.haml',
|
|
||||||
line: 4
|
|
||||||
}
|
|
||||||
|
|
||||||
expect(transaction).to receive(:increment).
|
expect(transaction).to receive(:increment).
|
||||||
with(:view_duration, 2.1)
|
with(:view_duration, 2.1)
|
||||||
|
|
|
@ -13,15 +13,6 @@ describe Gitlab::Metrics do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
describe '.last_relative_application_frame' do
|
|
||||||
it 'returns an Array containing a file path and line number' do
|
|
||||||
file, line = described_class.last_relative_application_frame
|
|
||||||
|
|
||||||
expect(line).to eq(__LINE__ - 2)
|
|
||||||
expect(file).to eq('spec/lib/gitlab/metrics_spec.rb')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
describe '#submit_metrics' do
|
describe '#submit_metrics' do
|
||||||
it 'prepares and writes the metrics to InfluxDB' do
|
it 'prepares and writes the metrics to InfluxDB' do
|
||||||
connection = double(:connection)
|
connection = double(:connection)
|
||||||
|
|
Loading…
Reference in a new issue