-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
process-agent: use the new statsd component #21108
Conversation
For now we use the shared factory. We might want to change the component later to provide a pre-configured client later, but this requires more changes.
Go Package Import DifferencesBaseline: cfb86ca
|
Bloop Bleep... Dogbot HereRegression Detector ResultsRun ID: a4ae8baf-23e7-4b67-97b9-b400b5714fdb Performance changes are noted in the perf column of each table:
|
perf | experiment | goal | Δ mean % | Δ mean % CI | confidence |
---|---|---|---|---|---|
✅ | otel_to_otel_logs | ingress throughput | +0.48 | [-0.21, +1.16] | 74.28% |
Experiments with missing or malformed data
- idle
Usually, this warning means that there is no usable optimization goal data for that experiment, which could be a result of misconfiguration.
Fine details of change detection per experiment
perf | experiment | goal | Δ mean % | Δ mean % CI | confidence |
---|---|---|---|---|---|
✅ | otel_to_otel_logs | ingress throughput | +0.48 | [-0.21, +1.16] | 74.28% |
❌ | trace_agent_msgpack | ingress throughput | +0.00 | [-0.00, +0.00] | 0.00% |
❌ | uds_dogstatsd_to_api | ingress throughput | +0.00 | [-0.00, +0.00] | 0.00% |
❌ | dogstatsd_string_interner_8MiB_1k | ingress throughput | +0.00 | [-0.00, +0.00] | 0.00% |
❌ | dogstatsd_string_interner_64MiB_1k | ingress throughput | +0.00 | [-0.00, +0.00] | 0.00% |
❌ | dogstatsd_string_interner_8MiB_10k | ingress throughput | +0.00 | [-0.00, +0.00] | 0.00% |
❌ | dogstatsd_string_interner_8MiB_50k | ingress throughput | +0.00 | [-0.00, +0.00] | 0.00% |
❌ | trace_agent_json | ingress throughput | +0.00 | [-0.01, +0.01] | 0.00% |
❌ | dogstatsd_string_interner_64MiB_100 | ingress throughput | +0.00 | [-0.00, +0.00] | 0.00% |
❌ | dogstatsd_string_interner_8MiB_100 | ingress throughput | +0.00 | [-0.00, +0.00] | 0.00% |
❌ | tcp_dd_logs_filter_exclude | ingress throughput | +0.00 | [-0.00, +0.00] | 0.00% |
❌ | dogstatsd_string_interner_128MiB_1k | ingress throughput | +0.00 | [-0.00, +0.00] | 0.00% |
❌ | dogstatsd_string_interner_128MiB_100 | ingress throughput | +0.00 | [-0.00, +0.00] | 0.00% |
❌ | dogstatsd_string_interner_8MiB_100k | ingress throughput | -0.00 | [-0.04, +0.04] | 1.76% |
❌ | file_tree | egress throughput | -0.02 | [-1.82, +1.78] | 1.37% |
❌ | file_to_blackhole | egress throughput | -0.07 | [-6.23, +6.09] | 1.60% |
❌ | tcp_syslog_to_blackhole | ingress throughput | -0.09 | [-0.16, -0.03] | 98.58% |
@@ -90,7 +92,7 @@ func Commands(globalParams *command.GlobalParams) []*cobra.Command { | |||
} | |||
|
|||
// run starts the main loop. | |||
func run(log log.Component, config config.Component, telemetry telemetry.Component, sysprobeconfig sysprobeconfig.Component, rcclient rcclient.Component, cliParams *cliParams) error { | |||
func run(log log.Component, statsd compstatsd.Component, telemetry telemetry.Component, sysprobeconfig sysprobeconfig.Component, rcclient rcclient.Component, cliParams *cliParams) error { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
config.Component
is still required.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do you know how to make the linter happier when modifying this function then? Or do we just ignore it ?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can use _ config.Component
instead of config config.Component
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please re-add the config.Component
argument which was removed
It was removed because unused and creating linter errors. |
Please name the argument |
The latest commits address your comments, the failing test seems unrelated |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Mind elaborating on the QA instructions a little? For the process agent a good metric to check would be datadog.process.agent
:
datadog-agent/pkg/process/runner/submitter.go
Line 277 in 38b4788
statsd.Client.Gauge("datadog.process.agent", 1, tags, 1) //nolint:errcheck |
Good suggestion, is that better? (I've never done QA myself so I'm not sure which amount of details we need to put there) |
re-merged with main, resolved conflicts, and explained why we need a |
What does this PR do?
Use use the new statsd component
For now we use the shared factory. We might want to change the component later to provide a pre-configured client later, but this requires more changes.
Motivation
To be sure all agents use
STATSD_URL
and the same options.Additional Notes
N/A
Possible Drawbacks / Trade-offs
N/A
Describe how to test/QA your changes
Validate that statsd metrics are still being sent by the process agent
When started and pointed to a validate core agent it should at least
datadog.process.agent
with a value of1
Reviewer's Checklist
Triage
milestone is set.major_change
label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.changelog/no-changelog
label has been applied.qa/skip-qa
label is not applied.team/..
label has been applied, indicating the team(s) that should QA this change.need-change/operator
andneed-change/helm
labels have been applied.k8s/<min-version>
label, indicating the lowest Kubernetes version compatible with this feature.