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
					
				|  | @ -36,20 +36,6 @@ module Gitlab | |||
|       @pool | ||||
|     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) | ||||
|       prepared = prepare_metrics(metrics) | ||||
| 
 | ||||
|  |  | |||
|  | @ -33,16 +33,8 @@ module Gitlab | |||
| 
 | ||||
|         def tags_for(event) | ||||
|           path = relative_path(event.payload[:identifier]) | ||||
|           tags = { view: path } | ||||
| 
 | ||||
|           file, line = Metrics.last_relative_application_frame | ||||
| 
 | ||||
|           if file and line | ||||
|             tags[:file] = file | ||||
|             tags[:line] = line | ||||
|           end | ||||
| 
 | ||||
|           tags | ||||
|           { view: path } | ||||
|         end | ||||
| 
 | ||||
|         def current_transaction | ||||
|  |  | |||
|  | @ -14,19 +14,12 @@ describe Gitlab::Metrics::Subscribers::ActionView do | |||
| 
 | ||||
|   before do | ||||
|     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 | ||||
| 
 | ||||
|   describe '#render_template' do | ||||
|     it 'tracks rendering of a template' do | ||||
|       values = { duration: 2.1 } | ||||
|       tags   = { | ||||
|         view: 'app/views/x.html.haml', | ||||
|         file: 'app/views/x.html.haml', | ||||
|         line: 4 | ||||
|       } | ||||
|       tags   = { view: 'app/views/x.html.haml' } | ||||
| 
 | ||||
|       expect(transaction).to receive(:increment). | ||||
|         with(:view_duration, 2.1) | ||||
|  |  | |||
|  | @ -13,15 +13,6 @@ describe Gitlab::Metrics do | |||
|     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 | ||||
|     it 'prepares and writes the metrics to InfluxDB' do | ||||
|       connection = double(:connection) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue