File tree Expand file tree Collapse file tree 3 files changed +10
-21
lines changed
lib/datadog/core/telemetry
spec/datadog/core/telemetry Expand file tree Collapse file tree 3 files changed +10
-21
lines changed Original file line number Diff line number Diff line change @@ -85,7 +85,7 @@ def initialize(
8585 enabled : @enabled ,
8686 heartbeat_interval_seconds : settings . telemetry . heartbeat_interval_seconds ,
8787 metrics_aggregation_interval_seconds : settings . telemetry . metrics_aggregation_interval_seconds ,
88- emitter : Emitter . new ( transport : @transport ) ,
88+ emitter : Emitter . new ( transport : @transport , logger : @logger ) ,
8989 metrics_manager : @metrics_manager ,
9090 dependency_collection : settings . telemetry . dependency_collection ,
9191 logger : logger ,
Original file line number Diff line number Diff line change @@ -10,25 +10,26 @@ module Core
1010 module Telemetry
1111 # Class that emits telemetry events
1212 class Emitter
13- attr_reader :transport
13+ attr_reader :transport , :logger
1414
1515 extend Core ::Utils ::Forking
1616
1717 # @param transport [Datadog::Core::Telemetry::Transport::Telemetry::Transport]
1818 # Transport object that can be used to send telemetry requests
19- def initialize ( transport :)
19+ def initialize ( transport :, logger : Datadog . logger )
2020 @transport = transport
21+ @logger = logger
2122 end
2223
2324 # Retrieves and emits a TelemetryRequest object based on the request type specified
2425 def request ( event )
2526 seq_id = self . class . sequence . next
2627 payload = Request . build_payload ( event , seq_id )
2728 res = @transport . send_telemetry ( request_type : event . type , payload : payload )
28- Datadog . logger . debug { "Telemetry sent for event `#{ event . type } ` (response code: #{ res . code } )" }
29+ logger . debug { "Telemetry sent for event `#{ event . type } ` (response code: #{ res . code } )" }
2930 res
3031 rescue => e
31- Datadog . logger . debug ( "Unable to send telemetry request for event `#{ event . type rescue 'unknown' } `: #{ e } " )
32+ logger . debug { "Unable to send telemetry request for event `#{ event . type rescue 'unknown' } `: #{ e } " }
3233 Core ::Transport ::InternalErrorResponse . new ( e )
3334 end
3435
Original file line number Diff line number Diff line change 55require 'datadog/core/transport/response'
66
77RSpec . describe Datadog ::Core ::Telemetry ::Emitter do
8- subject ( :emitter ) { described_class . new ( transport : transport ) }
8+ subject ( :emitter ) { described_class . new ( transport : transport , logger : logger ) }
9+ let ( :logger ) { logger_allowing_debug }
910 let ( :transport ) { double ( Datadog ::Core ::Telemetry ::Transport ::HTTP ::Client ) }
1011 let ( :response ) { double ( Datadog ::Core ::Transport ::HTTP ::Adapters ::Net ::Response ) }
1112 let ( :response_ok ) { true }
3536 let ( :request_type ) { double ( 'request_type' ) }
3637 let ( :payload ) { { foo : 'bar' } }
3738
38- before do
39- logger = double ( Datadog ::Core ::Logger )
40- allow ( logger ) . to receive ( :debug )
41- allow ( Datadog ) . to receive ( :logger ) . and_return ( logger )
42- end
43-
4439 context 'when event' do
4540 context 'is invalid' do
4641 let ( :event ) { 'Not an event' }
4742
4843 it do
44+ expect_lazy_log ( logger , :debug , /Unable to send telemetry request/ )
4945 request
50-
51- expect ( Datadog . logger ) . to have_received ( :debug ) do |message |
52- expect ( message ) . to include ( 'Unable to send telemetry request' )
53- end
5446 end
5547 end
5648
7567 end
7668
7769 it 'logs the request correctly' do
78- log_message = nil
79- expect ( Datadog . logger ) . to receive ( :debug ) { |&message | log_message = message . call }
80-
70+ expect_lazy_log ( logger , :debug , 'Telemetry sent for event' )
8171 request
82-
83- expect ( log_message ) . to match ( 'Telemetry sent for event' )
8472 end
8573 end
8674 end
You can’t perform that action at this time.
0 commit comments