Skip to content

Commit

Permalink
Merge pull request #221 from DataDog/anmarchenko/enable_agentless_tel…
Browse files Browse the repository at this point in the history
…emetry

[SDTEST-635] Enable agentless telemetry when library is running in agentless mode
  • Loading branch information
anmarchenko committed Aug 26, 2024
2 parents ec9ceee + 7d3eee0 commit bbee053
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 4 deletions.
6 changes: 4 additions & 2 deletions lib/datadog/ci/configuration/components.rb
Original file line number Diff line number Diff line change
Expand Up @@ -266,11 +266,13 @@ def configure_telemetry(settings)
# for test visibility we want to enable it by default unless explicitly disabled
# NOTE: before agentless mode is released, we only enable telemetry when running with Datadog Agent
env_telemetry_enabled = ENV[Core::Telemetry::Ext::ENV_ENABLED]
settings.telemetry.enabled = !settings.ci.agentless_mode_enabled &&
(env_telemetry_enabled.nil? || Utils::Parsing.convert_to_bool(env_telemetry_enabled))
settings.telemetry.enabled = env_telemetry_enabled.nil? || Utils::Parsing.convert_to_bool(env_telemetry_enabled)

return unless settings.telemetry.enabled

settings.telemetry.agentless_enabled = true if settings.ci.agentless_mode_enabled
settings.telemetry.shutdown_timeout_seconds = 60.0

begin
require "datadog/core/environment/identity"
require "datadog/core/telemetry/http/adapters/net"
Expand Down
13 changes: 11 additions & 2 deletions spec/datadog/ci/configuration/components_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,13 @@

negotiation = double(:negotiation)

telemetry_double = instance_double(
Datadog::Core::Telemetry::Component,
emit_closing!: nil,
stop!: nil
)
allow(Datadog::Core::Telemetry::Component).to receive(:build).and_return(telemetry_double)

allow(Datadog::Core::Remote::Negotiation)
.to receive(:new)
.and_return(negotiation)
Expand All @@ -76,6 +83,7 @@
.to receive(:async=).and_call_original

allow(settings.telemetry).to receive(:enabled=).and_call_original
allow(settings.telemetry).to receive(:agentless_enabled=).and_call_original

allow(Datadog::CI::Ext::Environment)
.to receive(:tags).and_return({})
Expand Down Expand Up @@ -246,8 +254,9 @@
context "when api key is set" do
let(:api_key) { "api_key" }

it "disables telemetry" do
expect(settings.telemetry).to have_received(:enabled=).with(false)
it "enables telemetry by default" do
expect(settings.telemetry).to have_received(:enabled=).with(true)
expect(settings.telemetry).to have_received(:agentless_enabled=).with(true)
end

it "sets async for test mode and constructs transport with CI intake API" do
Expand Down

0 comments on commit bbee053

Please sign in to comment.