Skip to content

Commit 572ed80

Browse files
committed
inject logger
1 parent 4e9cd75 commit 572ed80

File tree

3 files changed

+10
-21
lines changed

3 files changed

+10
-21
lines changed

lib/datadog/core/telemetry/component.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff 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,

lib/datadog/core/telemetry/emitter.rb

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff 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

spec/datadog/core/telemetry/emitter_spec.rb

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@
55
require 'datadog/core/transport/response'
66

77
RSpec.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 }
@@ -35,22 +36,13 @@
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

@@ -75,12 +67,8 @@
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

0 commit comments

Comments
 (0)