Report agentic onboarding marker in configuration telemetry (RFC-1113)#6079
Report agentic onboarding marker in configuration telemetry (RFC-1113)#6079christophe-papazian wants to merge 5 commits into
Conversation
Register DD_APPSEC_AGENTIC_ONBOARDING as an ordinary string configuration key, reported verbatim in app-started configuration telemetry. Always emitted: empty value with origin=default when unset. No derived boolean and no read of AppSec's runtime-enabled state. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
BenchmarksBenchmark execution time: 2026-07-23 07:55:55 Comparing candidate commit 252ac05 in PR branch Found 0 performance improvements and 0 performance regressions! Performance is the same for 48 metrics, 1 unstable metrics.
|
The previously pinned ref predated the RFC-1113 rewrite of test_agentic_onboarding.py (it still had the RFC-1110 derived-boolean test). Bump to system-tests main so the agentic-onboarding config telemetry tests run against this change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…tests" This reverts commit b9ea772.
| option :agentic_onboarding do |o| | ||
| o.type :string | ||
| o.env "DD_APPSEC_AGENTIC_ONBOARDING" | ||
| o.default "" |
There was a problem hiding this comment.
What was the reasoning for using an empty string instead of nil? Or false if the type is indeed supposed to be bool?
There was a problem hiding this comment.
null is not always reported, empty string is.
This is based on an RFC that was discussed for some time, if you want the full context, we can plan a meeting.
| end | ||
|
|
||
| # Set by the agentic onboarding solution; no behavior, reported verbatim in | ||
| # configuration telemetry only (RFC-1113). |
There was a problem hiding this comment.
This looks like AI slop. The comment (or the rest of PR) does not provide a description of what the value actually contains.
There was a problem hiding this comment.
Some people wants no comments, you seem to want all the explanation in here ? The Appsec RFC ID is put here in reference, so anyone can take a look at it for more explanations.
There was a problem hiding this comment.
RFC ID is put here in reference
Please remove the RFC reference and JIRA numbers from code comment and pull request description and title.
Replace with an example how agentic onboarding solution is going to modify this specific settings. Provided with possible values.
| # Set by the agentic onboarding solution; no behavior, reported verbatim in | ||
| # configuration telemetry only (RFC-1113). | ||
| option :agentic_onboarding do |o| | ||
| o.type :string |
There was a problem hiding this comment.
The tests set the value to a boolean, which means the type should probably be bool and not string.
There was a problem hiding this comment.
It is defined as a string, both in the RFC and the registry
There was a problem hiding this comment.
Please also note that the CI shouldn't pass if the configuration was not defined as the registry is.
| end | ||
|
|
||
| context "is not defined" do | ||
| let(:agentic_onboarding_env) { nil } |
There was a problem hiding this comment.
I commented on the RFC. This test case converts the "not present" case (env var is nil) to "present" case (env var is set to empty string). The RFC specifies that the value of the env var is ignored, therefore the test missing from the PR is env var is set to empty string -> reported value is true.
|
|
||
| before { set_agentic_onboarding } | ||
|
|
||
| it { expect(settings.appsec.agentic_onboarding).to eq("true") } |
There was a problem hiding this comment.
The RFC specifies that telemetry signal is a boolean. Therefore the string -> bool conversion should probably be done at configuration parsing time and this test should be written to expect a boolean value.
APPSEC-69231
What does this PR do?
Registers
DD_APPSEC_AGENTIC_ONBOARDINGas an ordinary string configuration key (default empty), reported verbatim in theapp-startedconfiguration telemetry through the standard config pipeline. It is always emitted — empty value withorigin=defaultwhen unset. No derived boolean and no read of AppSec's runtime-enabled state.Motivation:
RFC-1113: a runtime telemetry signal that a service was onboarded by the AAP agentic onboarding solution, so the usage-to-activation funnel can be measured in production. Ports DataDog/dd-trace-java#11983, DataDog/dd-trace-dotnet#8920, DataDog/dd-trace-go#5055.
Change log entry
None.
How to test the change?
Covered by unit specs:
spec/datadog/appsec/configuration/settings_spec.rb(unset →"", env value passed through verbatim) andspec/datadog/core/telemetry/event/app_started_spec.rb(always reported with empty value andorigin=defaultwhen unset).