Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

tracer: report rc capabilities for dynamic config #2369

Merged
merged 1 commit into from
Nov 20, 2023

Conversation

ahmed-mez
Copy link
Contributor

@ahmed-mez ahmed-mez commented Nov 20, 2023

What does this PR do?

AIT-8976
Report the RC capabilities related to the APM_TRACING product used for dynamic configuration.

Motivation

Declare what features can be supported by the tracer. This is important to exclude unsupported features like automatic logs injection.

Reviewer's Checklist

  • Changed code has unit tests for its functionality at or near 100% coverage.
  • There is a benchmark for any new code, or changes to existing code.
  • If this interacts with the agent in a new way, a system test has been added.
  • Add an appropriate team label so this PR gets put in the right place for the release notes.

For Datadog employees:

  • If this PR touches code that handles credentials of any kind, such as Datadog API keys, I've requested a review from @DataDog/security-design-and-guidance.
  • This PR doesn't touch any of that.

Unsure? Have a question? Request a review!

@ahmed-mez ahmed-mez requested a review from a team November 20, 2023 09:28
@ahmed-mez ahmed-mez requested a review from a team as a code owner November 20, 2023 09:28
Comment on lines +58 to +69
// ASMTrustedIPs represents Trusted IPs through the ASM product
ASMTrustedIPs
// ASMApiSecuritySampleRate represents API Security sampling rate
ASMApiSecuritySampleRate
// APMTracingSampleRate represents the rate at which to sample traces from APM client libraries
APMTracingSampleRate
// APMTracingLogsInjection enables APM client libraries to inject trace ids into log records
APMTracingLogsInjection
// APMTracingHTTPHeaderTags enables APM client libraries to tag http header values to http server or client spans
APMTracingHTTPHeaderTags
// APMTracingCustomTags enables APM client to set custom tags on all spans
APMTracingCustomTags
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The order of these capabilities matters that's why I had to add a few that aren't currently used. Each capability is defined by its rank in the list.
The full and detailed documentation for RC capabilities is internal, I can share it offline if the reviewer is interested.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IIUC, our tracer only supports APMTracingSampleRate and APMTracingHTTPHeaderTags, but no APMTracingLogsInjection and APMTracingCustomTags. From the JIRA issue, it's not clear what is the support of the latter. Probably I'm missing context.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

APMTracingLogsInjection won't be supported since there is no automatic logs injection in Go. APMTracingCustomTags will be supported in future versions though.

@pr-commenter
Copy link

pr-commenter bot commented Nov 20, 2023

Benchmarks

Benchmark execution time: 2023-11-20 09:39:19

Comparing candidate commit 081036f in PR branch ahmed/dynamic-config-part6 with baseline commit d41f0f9 in branch main.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 39 metrics, 2 unstable metrics.

Comment on lines +58 to +69
// ASMTrustedIPs represents Trusted IPs through the ASM product
ASMTrustedIPs
// ASMApiSecuritySampleRate represents API Security sampling rate
ASMApiSecuritySampleRate
// APMTracingSampleRate represents the rate at which to sample traces from APM client libraries
APMTracingSampleRate
// APMTracingLogsInjection enables APM client libraries to inject trace ids into log records
APMTracingLogsInjection
// APMTracingHTTPHeaderTags enables APM client libraries to tag http header values to http server or client spans
APMTracingHTTPHeaderTags
// APMTracingCustomTags enables APM client to set custom tags on all spans
APMTracingCustomTags
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IIUC, our tracer only supports APMTracingSampleRate and APMTracingHTTPHeaderTags, but no APMTracingLogsInjection and APMTracingCustomTags. From the JIRA issue, it's not clear what is the support of the latter. Probably I'm missing context.

@ahmed-mez ahmed-mez merged commit 9cf50b3 into main Nov 20, 2023
53 checks passed
@ahmed-mez ahmed-mez deleted the ahmed/dynamic-config-part6 branch November 20, 2023 10:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants