[OTAGENT-918] Set agent hostname in Datadog extension#47937
[OTAGENT-918] Set agent hostname in Datadog extension#47937gh-worker-dd-mergequeue-cf854d[bot] merged 11 commits intomainfrom
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 90e0962e35
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
Files inventory check summaryFile checks results against ancestor 5eba67a1: Results for datadog-agent_7.78.0~devel.git.717.384ddae.pipeline.103441293-1_amd64.deb:No change detected |
Static quality checks✅ Please find below the results from static quality gates 30 successful checks with minimal change (< 2 KiB)
On-wire sizes (compressed)
|
Regression DetectorRegression Detector ResultsMetrics dashboard Baseline: 906c3f3 Optimization Goals: ✅ No significant changes detected
|
| perf | experiment | goal | Δ mean % | Δ mean % CI | trials | links |
|---|---|---|---|---|---|---|
| ➖ | docker_containers_cpu | % cpu utilization | +0.84 | [-2.16, +3.85] | 1 | Logs |
Fine details of change detection per experiment
| perf | experiment | goal | Δ mean % | Δ mean % CI | trials | links |
|---|---|---|---|---|---|---|
| ➖ | quality_gate_logs | % cpu utilization | +1.07 | [-0.53, +2.66] | 1 | Logs bounds checks dashboard |
| ➖ | docker_containers_cpu | % cpu utilization | +0.84 | [-2.16, +3.85] | 1 | Logs |
| ➖ | tcp_syslog_to_blackhole | ingress throughput | +0.77 | [+0.66, +0.88] | 1 | Logs |
| ➖ | otlp_ingest_logs | memory utilization | +0.70 | [+0.60, +0.79] | 1 | Logs |
| ➖ | quality_gate_metrics_logs | memory utilization | +0.49 | [+0.24, +0.73] | 1 | Logs bounds checks dashboard |
| ➖ | otlp_ingest_metrics | memory utilization | +0.42 | [+0.26, +0.57] | 1 | Logs |
| ➖ | ddot_metrics | memory utilization | +0.39 | [+0.21, +0.57] | 1 | Logs |
| ➖ | ddot_metrics_sum_cumulativetodelta_exporter | memory utilization | +0.21 | [-0.02, +0.43] | 1 | Logs |
| ➖ | docker_containers_memory | memory utilization | +0.18 | [+0.11, +0.25] | 1 | Logs |
| ➖ | file_tree | memory utilization | +0.17 | [+0.11, +0.22] | 1 | Logs |
| ➖ | quality_gate_idle | memory utilization | +0.12 | [+0.07, +0.16] | 1 | Logs bounds checks dashboard |
| ➖ | quality_gate_idle_all_features | memory utilization | +0.03 | [-0.01, +0.07] | 1 | Logs bounds checks dashboard |
| ➖ | file_to_blackhole_500ms_latency | egress throughput | +0.01 | [-0.38, +0.40] | 1 | Logs |
| ➖ | file_to_blackhole_0ms_latency | egress throughput | +0.01 | [-0.45, +0.46] | 1 | Logs |
| ➖ | uds_dogstatsd_to_api_v3 | ingress throughput | +0.00 | [-0.19, +0.20] | 1 | Logs |
| ➖ | uds_dogstatsd_20mb_12k_contexts_20_senders | memory utilization | +0.00 | [-0.06, +0.06] | 1 | Logs |
| ➖ | uds_dogstatsd_to_api | ingress throughput | -0.00 | [-0.20, +0.20] | 1 | Logs |
| ➖ | tcp_dd_logs_filter_exclude | ingress throughput | -0.00 | [-0.11, +0.10] | 1 | Logs |
| ➖ | file_to_blackhole_1000ms_latency | egress throughput | -0.02 | [-0.46, +0.42] | 1 | Logs |
| ➖ | file_to_blackhole_100ms_latency | egress throughput | -0.05 | [-0.12, +0.03] | 1 | Logs |
| ➖ | ddot_logs | memory utilization | -0.07 | [-0.14, -0.01] | 1 | Logs |
| ➖ | ddot_metrics_sum_cumulative | memory utilization | -0.19 | [-0.33, -0.05] | 1 | Logs |
| ➖ | ddot_metrics_sum_delta | memory utilization | -0.40 | [-0.57, -0.24] | 1 | Logs |
Bounds Checks: ✅ Passed
| perf | experiment | bounds_check_name | replicates_passed | observed_value | links |
|---|---|---|---|---|---|
| ✅ | docker_containers_cpu | simple_check_run | 10/10 | 723 ≥ 26 | |
| ✅ | docker_containers_memory | memory_usage | 10/10 | 272.91MiB ≤ 370MiB | |
| ✅ | docker_containers_memory | simple_check_run | 10/10 | 594 ≥ 26 | |
| ✅ | file_to_blackhole_0ms_latency | memory_usage | 10/10 | 0.18GiB ≤ 1.20GiB | |
| ✅ | file_to_blackhole_0ms_latency | missed_bytes | 10/10 | 0B = 0B | |
| ✅ | file_to_blackhole_1000ms_latency | memory_usage | 10/10 | 0.23GiB ≤ 1.20GiB | |
| ✅ | file_to_blackhole_1000ms_latency | missed_bytes | 10/10 | 0B = 0B | |
| ✅ | file_to_blackhole_100ms_latency | memory_usage | 10/10 | 0.19GiB ≤ 1.20GiB | |
| ✅ | file_to_blackhole_100ms_latency | missed_bytes | 10/10 | 0B = 0B | |
| ✅ | file_to_blackhole_500ms_latency | memory_usage | 10/10 | 0.22GiB ≤ 1.20GiB | |
| ✅ | file_to_blackhole_500ms_latency | missed_bytes | 10/10 | 0B = 0B | |
| ✅ | quality_gate_idle | intake_connections | 10/10 | 3 = 3 | bounds checks dashboard |
| ✅ | quality_gate_idle | memory_usage | 10/10 | 173.23MiB ≤ 175MiB | bounds checks dashboard |
| ✅ | quality_gate_idle_all_features | intake_connections | 10/10 | 2 ≤ 3 | bounds checks dashboard |
| ✅ | quality_gate_idle_all_features | memory_usage | 10/10 | 488.69MiB ≤ 550MiB | bounds checks dashboard |
| ✅ | quality_gate_logs | intake_connections | 10/10 | 3 ≤ 6 | bounds checks dashboard |
| ✅ | quality_gate_logs | memory_usage | 10/10 | 206.05MiB ≤ 220MiB | bounds checks dashboard |
| ✅ | quality_gate_logs | missed_bytes | 10/10 | 0B = 0B | bounds checks dashboard |
| ✅ | quality_gate_metrics_logs | cpu_usage | 10/10 | 356.88 ≤ 2000 | bounds checks dashboard |
| ✅ | quality_gate_metrics_logs | intake_connections | 10/10 | 3 ≤ 6 | bounds checks dashboard |
| ✅ | quality_gate_metrics_logs | memory_usage | 10/10 | 415.73MiB ≤ 475MiB | bounds checks dashboard |
| ✅ | quality_gate_metrics_logs | missed_bytes | 10/10 | 0B = 0B | bounds checks dashboard |
Explanation
Confidence level: 90.00%
Effect size tolerance: |Δ mean %| ≥ 5.00%
Performance changes are noted in the perf column of each table:
- ✅ = significantly better comparison variant performance
- ❌ = significantly worse comparison variant performance
- ➖ = no significant change in performance
A regression test is an A/B test of target performance in a repeatable rig, where "performance" is measured as "comparison variant minus baseline variant" for an optimization goal (e.g., ingress throughput). Due to intrinsic variability in measuring that goal, we can only estimate its mean value for each experiment; we report uncertainty in that value as a 90.00% confidence interval denoted "Δ mean % CI".
For each experiment, we decide whether a change in performance is a "regression" -- a change worth investigating further -- if all of the following criteria are true:
-
Its estimated |Δ mean %| ≥ 5.00%, indicating the change is big enough to merit a closer look.
-
Its 90.00% confidence interval "Δ mean % CI" does not contain zero, indicating that if our statistical model is accurate, there is at least a 90.00% chance there is a difference in performance between baseline and comparison variants.
-
Its configuration does not mark it "erratic".
CI Pass/Fail Decision
✅ Passed. All Quality Gates passed.
- quality_gate_idle, bounds check memory_usage: 10/10 replicas passed. Gate passed.
- quality_gate_idle, bounds check intake_connections: 10/10 replicas passed. Gate passed.
- quality_gate_logs, bounds check intake_connections: 10/10 replicas passed. Gate passed.
- quality_gate_logs, bounds check missed_bytes: 10/10 replicas passed. Gate passed.
- quality_gate_logs, bounds check memory_usage: 10/10 replicas passed. Gate passed.
- quality_gate_idle_all_features, bounds check memory_usage: 10/10 replicas passed. Gate passed.
- quality_gate_idle_all_features, bounds check intake_connections: 10/10 replicas passed. Gate passed.
- quality_gate_metrics_logs, bounds check missed_bytes: 10/10 replicas passed. Gate passed.
- quality_gate_metrics_logs, bounds check cpu_usage: 10/10 replicas passed. Gate passed.
- quality_gate_metrics_logs, bounds check intake_connections: 10/10 replicas passed. Gate passed.
- quality_gate_metrics_logs, bounds check memory_usage: 10/10 replicas passed. Gate passed.
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
Build pipeline has failing jobs for 5c2f805: What to do next?
DetailsSince those jobs are not marked as being allowed to fail, the pipeline will most likely fail. |
Gitlab CI Configuration ChangesModified Jobs.cache .cache:
image: registry.ddbuild.io/ci/datadog-agent-buildimages/linux$CI_IMAGE_LINUX_SUFFIX:$CI_IMAGE_LINUX
needs:
- setup_agent_version
retry: 2
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
variables:
POLICY: pull-push
- if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
variables:
POLICY: pull
stage: deps_fetch
variables:
- KUBERNETES_CPU_REQUEST: 16
? ^
+ KUBERNETES_CPU_REQUEST: 12
? ^go_deps go_deps:
artifacts:
expire_in: 1 day
paths:
- $CI_PROJECT_DIR/modcache.tar.xz
cache:
- key:
files:
- go.mod
- ./**/go.mod
prefix: go_deps_modcache
paths:
- modcache.tar.xz
image: registry.ddbuild.io/ci/datadog-agent-buildimages/linux$CI_IMAGE_LINUX_SUFFIX:$CI_IMAGE_LINUX
needs:
- setup_agent_version
retry: 2
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
variables:
POLICY: pull-push
- if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
variables:
POLICY: pull
script:
- if [ -f modcache.tar.xz ]; then exit 0; fi
- dda inv -- -e deps --verbose
- cd $GOPATH/pkg/mod/cache/ && tar c -I "xz -T${KUBERNETES_CPU_REQUEST}" -f $CI_PROJECT_DIR/modcache.tar.xz
.
stage: deps_fetch
tags:
- arch:amd64
- specific:true
timeout: 35m
variables:
- KUBERNETES_CPU_REQUEST: 16
? ^
+ KUBERNETES_CPU_REQUEST: 12
? ^
KUBERNETES_MEMORY_LIMIT: 16Gi
KUBERNETES_MEMORY_REQUEST: 12Gigo_e2e_deps go_e2e_deps:
artifacts:
expire_in: 1 day
paths:
- $CI_PROJECT_DIR/modcache_e2e.tar.xz
- $CI_PROJECT_DIR/pulumi_plugins.tar.xz
before_script:
- export GITHUB_TOKEN=$(dd-octo-sts token --scope DataDog/datadog-agent --policy
self.gitlab.read)
cache:
- key:
files:
- ./test/new-e2e/go.mod
- .gitlab/.pre/deps_fetch/deps_fetch.yml
prefix: go_e2e_deps_modcache
paths:
- modcache_e2e.tar.xz
- key:
files:
- ./test/new-e2e/go.mod
- .gitlab/.pre/deps_fetch/deps_fetch.yml
prefix: pulumi_plugins
paths:
- pulumi_plugins.tar.xz
id_tokens:
DDOCTOSTS_ID_TOKEN:
aud: dd-octo-sts
image: registry.ddbuild.io/ci/datadog-agent-buildimages/linux$CI_IMAGE_LINUX_SUFFIX:$CI_IMAGE_LINUX
needs:
- setup_agent_version
retry: 2
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
variables:
POLICY: pull-push
- if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
variables:
POLICY: pull
script:
- "if [ ! -f modcache_e2e.tar.xz ]; then\n dda inv -- -e new-e2e-tests.deps\n \
\ tar c -I \"xz -T${KUBERNETES_CPU_REQUEST}\" -f $CI_PROJECT_DIR/modcache_e2e.tar.xz\
\ -C $GOPATH/pkg/mod/cache/ .\nfi\n"
- "if [ ! -f pulumi_plugins.tar.xz ]; then\n # Pre-download Pulumi plugins used\
\ by e2e scenarios and components, should no longer be needed when we move test-infra-definitions\
\ to datadog-agent\n pushd ./test/new-e2e\n PULUMI_CONFIG_PASSPHRASE=dummy pulumi\
\ --non-interactive plugin install\n popd\n tar c -I \"xz -T${KUBERNETES_CPU_REQUEST}\"\
\ -f $CI_PROJECT_DIR/pulumi_plugins.tar.xz -C ~/.pulumi plugins\nfi\n"
stage: deps_fetch
tags:
- arch:amd64
- specific:true
variables:
- KUBERNETES_CPU_REQUEST: 16
? ^
+ KUBERNETES_CPU_REQUEST: 12
? ^go_tools_deps go_tools_deps:
artifacts:
expire_in: 1 day
paths:
- $CI_PROJECT_DIR/modcache_tools.tar.xz
cache:
- key:
files:
- ./**/go.mod
- .gitlab/.pre/deps_fetch/deps_fetch.yml
prefix: go_tools_deps_modcache
paths:
- modcache_tools.tar.xz
image: registry.ddbuild.io/ci/datadog-agent-buildimages/linux$CI_IMAGE_LINUX_SUFFIX:$CI_IMAGE_LINUX
needs:
- setup_agent_version
retry: 2
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
variables:
POLICY: pull-push
- if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
variables:
POLICY: pull
script:
- if [ -f modcache_tools.tar.xz ]; then exit 0; fi
- dda inv -- -e install-tools
- cd $GOPATH && tar c -I "xz -T${KUBERNETES_CPU_REQUEST}" -f $CI_PROJECT_DIR/modcache_tools.tar.xz
$(find bin/ -type f ! -name 'datadog-package') pkg/mod/cache/
stage: deps_fetch
tags:
- arch:amd64
- specific:true
variables:
- KUBERNETES_CPU_REQUEST: 16
? ^
+ KUBERNETES_CPU_REQUEST: 12
? ^go_tools_deps_arm64 go_tools_deps_arm64:
artifacts:
expire_in: 1 day
paths:
- $CI_PROJECT_DIR/modcache_tools_arm64.tar.xz
cache:
- key:
files:
- ./**/go.mod
- .gitlab/.pre/deps_fetch/deps_fetch.yml
prefix: go_tools_deps_modcache_arm64
paths:
- modcache_tools_arm64.tar.xz
image: registry.ddbuild.io/ci/datadog-agent-buildimages/linux$CI_IMAGE_LINUX_SUFFIX:$CI_IMAGE_LINUX
needs:
- setup_agent_version
retry: 2
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
variables:
POLICY: pull-push
- if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH
variables:
POLICY: pull
script:
- if [ -f modcache_tools_arm64.tar.xz ]; then exit 0; fi
- dda inv -- -e install-tools
- cd $GOPATH && tar c -I "xz -T${KUBERNETES_CPU_REQUEST}" -f $CI_PROJECT_DIR/modcache_tools_arm64.tar.xz
$(find bin/ -type f ! -name 'datadog-package') pkg/mod/cache/
stage: deps_fetch
tags:
- arch:arm64
- specific:true
variables:
- KUBERNETES_CPU_REQUEST: 16
? ^
+ KUBERNETES_CPU_REQUEST: 12
? ^Changes Summary
ℹ️ Diff available in the job log. |
|
/merge |
|
View all feedbacks in Devflow UI.
The expected merge time in
|
### What does this PR do? Fixes datadogextension hostname check in the OTel e2e tests, from change #47937. ### Motivation #incident-51351 ### Describe how you validated your changes ### Additional Notes
What does this PR do?
Sets
extensions.datadog.hostnameto the agent resolved hostname in the converter. If hostname resolution fails, a warning is logged and hostname is set to "", allowing the extension to fall back to its own hostname inference.Motivation
The datadog extension uses the configured hostname to tag metadata payloads sent to Datadog. Without this change, some DDOT deployments report different hostnames in Fleet Automation for the collector and the agent.
Describe how you validated your changes
Unit tests and test locally.
Additional Notes