File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -152,4 +152,5 @@ def self.trace project_id = nil,
152152 config . add_field! :notifications , nil , match : Array
153153 config . add_field! :max_data_length , nil , match : Integer
154154 config . add_field! :on_error , nil , match : Proc
155+ config . add_field! :default_labels , { } , match : Hash
155156end
Original file line number Diff line number Diff line change @@ -144,6 +144,8 @@ def self.new project_id: nil,
144144 # * `on_error` - (Proc) A Proc to be run when an error is encountered
145145 # during the reporting of traces by the middleware. The Proc must take
146146 # the error object as the single argument.
147+ # * `default_labels` - (Hash) A Hash that contains the default labels
148+ # which will be added to every root span.
147149 #
148150 # See the {file:INSTRUMENTATION.md Configuration Guide} for full
149151 # configuration parameters.
Original file line number Diff line number Diff line change @@ -301,12 +301,25 @@ def get_url env
301301 #
302302 def configure_span span , env
303303 span . name = get_path env
304+ set_default_labels span . labels
304305 set_basic_labels span . labels , env
305306 set_extended_labels span . labels ,
306307 span . trace . trace_context . capture_stack?
307308 span
308309 end
309310
311+ ##
312+ # Configures default labels.
313+ # @private
314+ #
315+ # rubocop:disable Naming/AccessorMethodName
316+ def set_default_labels labels
317+ configuration . default_labels . each do |key , value |
318+ set_label labels , key , value
319+ end
320+ end
321+ # rubocop:enable Naming/AccessorMethodName
322+
310323 ##
311324 # Configures standard labels.
312325 # @private
Original file line number Diff line number Diff line change @@ -85,6 +85,7 @@ class Railtie < ::Rails::Railtie
8585 config . google_cloud . trace . notifications = DEFAULT_NOTIFICATIONS . dup
8686 config . google_cloud . trace . max_data_length =
8787 Google ::Cloud ::Trace ::Notifications ::DEFAULT_MAX_DATA_LENGTH
88+ config . google_cloud . trace . default_labels = { }
8889
8990 initializer "Google.Cloud.Trace" do |app |
9091 self . class . consolidate_rails_config app . config
@@ -168,6 +169,9 @@ def self.merge_rails_config rails_config
168169 end
169170 config . sampler ||= trace_config . sampler
170171 config . span_id_generator ||= trace_config . span_id_generator
172+ if trace_config . default_labels . present?
173+ config . default_labels = trace_config . default_labels
174+ end
171175 end
172176 end
173177
Original file line number Diff line number Diff line change 5858 _ ( config . max_data_length ) . must_equal 123
5959 _ ( config . sampler ) . must_equal "test-sampler"
6060 _ ( config . span_id_generator ) . must_equal a_test_generator
61+ _ ( config . default_labels ) . must_equal ( { } )
6162 end
6263 end
6364 end
7172 config . max_data_length = 345
7273 config . sampler = "another-test-sampler"
7374 config . span_id_generator = another_generator
75+ config . default_labels = { '/component' => 'test-service' }
7476 end
7577
7678 STDOUT . stub :puts , nil do
8486 _ ( config . max_data_length ) . must_equal 345
8587 _ ( config . sampler ) . must_equal "another-test-sampler"
8688 _ ( config . span_id_generator ) . must_equal another_generator
89+ _ ( config . default_labels ) . must_equal ( { '/component' => 'test-service' } )
8790 end
8891 end
8992 end
You can’t perform that action at this time.
0 commit comments