linter: remove dead exclusion rules from .golangci.yml#49907
linter: remove dead exclusion rules from .golangci.yml#49907gh-worker-dd-mergequeue-cf854d[bot] merged 2 commits intomainfrom
Conversation
The `unnecessary conversion` exclusion appeared twice in .golangci.yml. Remove the duplicate; the remaining entry at line 375 (with its comment) is sufficient.
Remove several exclusion rules that no longer serve any purpose: - `eventContext`, `(*DatadogLogger).changeLogLevel`, `defaultRetryDuration`, `defaultRetries`: suppressed `unused` warnings for symbols that no longer exist in the codebase (or in the case of `changeLogLevel`, the method moved to a different type during a refactor). - `pem.Encode` errcheck exclusion: the file that motivated this (test/integration/utils/certificates.go) was deleted in #39772. All remaining live `pem.Encode` call sites already check or explicitly ignore the error. - `exported const APIName` revive exclusion: the constant no longer exists in `pkg/serverless/trace/inferredspan/`; the file is also already globally excluded via the paths list, making this rule doubly redundant. Also update the stale comment on the `io.WriteString` errcheck exclusion whose originating file (tools/dep_tree_resolver/go_deps.go) was deleted in #22067 — the rule is still live, covering writes to http.ResponseWriter.
Files inventory check summaryFile checks results against ancestor 0da860ec: Results for datadog-agent_7.80.0~devel.git.221.e6eb278.pipeline.109825008-1_amd64.deb:No change detected |
Regression DetectorRegression Detector ResultsMetrics dashboard Baseline: b3132ad Optimization Goals: ✅ No significant changes detected
|
| perf | experiment | goal | Δ mean % | Δ mean % CI | trials | links |
|---|---|---|---|---|---|---|
| ➖ | docker_containers_cpu | % cpu utilization | +2.70 | [-0.36, +5.77] | 1 | Logs |
Fine details of change detection per experiment
| perf | experiment | goal | Δ mean % | Δ mean % CI | trials | links |
|---|---|---|---|---|---|---|
| ➖ | docker_containers_cpu | % cpu utilization | +2.70 | [-0.36, +5.77] | 1 | Logs |
| ➖ | quality_gate_logs | % cpu utilization | +1.88 | [+0.25, +3.50] | 1 | Logs bounds checks dashboard |
| ➖ | otlp_ingest_metrics | memory utilization | +1.33 | [+1.18, +1.48] | 1 | Logs |
| ➖ | uds_dogstatsd_20mb_12k_contexts_20_senders | memory utilization | +0.30 | [+0.25, +0.34] | 1 | Logs |
| ➖ | ddot_metrics_sum_delta | memory utilization | +0.29 | [+0.12, +0.47] | 1 | Logs |
| ➖ | quality_gate_idle_all_features | memory utilization | +0.28 | [+0.25, +0.32] | 1 | Logs bounds checks dashboard |
| ➖ | tcp_syslog_to_blackhole | ingress throughput | +0.20 | [+0.04, +0.36] | 1 | Logs |
| ➖ | ddot_metrics_sum_cumulativetodelta_exporter | memory utilization | +0.13 | [-0.10, +0.37] | 1 | Logs |
| ➖ | file_tree | memory utilization | +0.06 | [+0.02, +0.11] | 1 | Logs |
| ➖ | ddot_metrics | memory utilization | +0.04 | [-0.15, +0.23] | 1 | Logs |
| ➖ | file_to_blackhole_500ms_latency | egress throughput | +0.03 | [-0.37, +0.42] | 1 | Logs |
| ➖ | ddot_metrics_sum_cumulative | memory utilization | +0.02 | [-0.14, +0.18] | 1 | Logs |
| ➖ | file_to_blackhole_0ms_latency | egress throughput | +0.02 | [-0.48, +0.52] | 1 | Logs |
| ➖ | tcp_dd_logs_filter_exclude | ingress throughput | +0.00 | [-0.11, +0.11] | 1 | Logs |
| ➖ | uds_dogstatsd_to_api_v3 | ingress throughput | -0.00 | [-0.21, +0.20] | 1 | Logs |
| ➖ | file_to_blackhole_100ms_latency | egress throughput | -0.01 | [-0.11, +0.09] | 1 | Logs |
| ➖ | uds_dogstatsd_to_api | ingress throughput | -0.02 | [-0.22, +0.19] | 1 | Logs |
| ➖ | file_to_blackhole_1000ms_latency | egress throughput | -0.07 | [-0.50, +0.36] | 1 | Logs |
| ➖ | docker_containers_memory | memory utilization | -0.08 | [-0.18, +0.02] | 1 | Logs |
| ➖ | quality_gate_idle | memory utilization | -0.11 | [-0.16, -0.06] | 1 | Logs bounds checks dashboard |
| ➖ | ddot_logs | memory utilization | -0.36 | [-0.42, -0.30] | 1 | Logs |
| ➖ | otlp_ingest_logs | memory utilization | -0.38 | [-0.48, -0.29] | 1 | Logs |
| ➖ | quality_gate_metrics_logs | memory utilization | -0.57 | [-0.83, -0.32] | 1 | Logs bounds checks dashboard |
Bounds Checks: ✅ Passed
| perf | experiment | bounds_check_name | replicates_passed | observed_value | links |
|---|---|---|---|---|---|
| ✅ | docker_containers_cpu | simple_check_run | 10/10 | 691 ≥ 26 | |
| ✅ | docker_containers_memory | memory_usage | 10/10 | 241.70MiB ≤ 370MiB | |
| ✅ | docker_containers_memory | simple_check_run | 10/10 | 721 ≥ 26 | |
| ✅ | file_to_blackhole_0ms_latency | memory_usage | 10/10 | 0.16GiB ≤ 1.20GiB | |
| ✅ | file_to_blackhole_0ms_latency | missed_bytes | 10/10 | 0B = 0B | |
| ✅ | file_to_blackhole_1000ms_latency | memory_usage | 10/10 | 0.21GiB ≤ 1.20GiB | |
| ✅ | file_to_blackhole_1000ms_latency | missed_bytes | 10/10 | 0B = 0B | |
| ✅ | file_to_blackhole_100ms_latency | memory_usage | 10/10 | 0.17GiB ≤ 1.20GiB | |
| ✅ | file_to_blackhole_100ms_latency | missed_bytes | 10/10 | 0B = 0B | |
| ✅ | file_to_blackhole_500ms_latency | memory_usage | 10/10 | 0.19GiB ≤ 1.20GiB | |
| ✅ | file_to_blackhole_500ms_latency | missed_bytes | 10/10 | 0B = 0B | |
| ✅ | quality_gate_idle | intake_connections | 10/10 | 3 ≤ 4 | bounds checks dashboard |
| ✅ | quality_gate_idle | memory_usage | 10/10 | 141.74MiB ≤ 147MiB | bounds checks dashboard |
| ✅ | quality_gate_idle_all_features | intake_connections | 10/10 | 3 ≤ 4 | bounds checks dashboard |
| ✅ | quality_gate_idle_all_features | memory_usage | 10/10 | 465.62MiB ≤ 495MiB | bounds checks dashboard |
| ✅ | quality_gate_logs | intake_connections | 10/10 | 3 ≤ 6 | bounds checks dashboard |
| ✅ | quality_gate_logs | memory_usage | 10/10 | 182.26MiB ≤ 195MiB | bounds checks dashboard |
| ✅ | quality_gate_logs | missed_bytes | 10/10 | 0B = 0B | bounds checks dashboard |
| ✅ | quality_gate_metrics_logs | cpu_usage | 10/10 | 353.57 ≤ 2000 | bounds checks dashboard |
| ✅ | quality_gate_metrics_logs | intake_connections | 10/10 | 4 ≤ 6 | bounds checks dashboard |
| ✅ | quality_gate_metrics_logs | memory_usage | 10/10 | 411.80MiB ≤ 430MiB | 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_metrics_logs, bounds check memory_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 cpu_usage: 10/10 replicas passed. Gate passed.
- quality_gate_metrics_logs, bounds check missed_bytes: 10/10 replicas passed. Gate 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_idle_all_features, bounds check intake_connections: 10/10 replicas passed. Gate passed.
- quality_gate_idle_all_features, bounds check memory_usage: 10/10 replicas passed. Gate passed.
- quality_gate_logs, bounds check memory_usage: 10/10 replicas passed. Gate passed.
- quality_gate_logs, bounds check missed_bytes: 10/10 replicas passed. Gate passed.
- quality_gate_logs, bounds check intake_connections: 10/10 replicas passed. Gate passed.
What does this PR do?
Removes several dead or redundant exclusion rules from
.golangci.yml:Duplicate rule (cosmetic):
unnecessary conversionexclusion that appeared twice.Dead
unusedsuppressions (task #10):`eventContext` is unused— symbol no longer exists in the codebase.`(*DatadogLogger).changeLogLevel` is unused—changeLogLevelmoved to*loggerPointerduring a refactor; the original type no longer has this method.`defaultRetryDuration` is unused— symbol no longer exists.`defaultRetries` is unused— symbol is used; the linter wouldn't fire on it regardless.Dead errcheck exclusion:
pem.Encode— the file that motivated this (test/integration/utils/certificates.go) was deleted in Remove theagent_integration_testsGitLab job as it doesn’t run any useful test anymore #39772. All remaining livepem.Encodecall sites already check or explicitly ignore the error.Dead revive exclusion:
exported const APIName— the constant no longer exists inpkg/serverless/trace/inferredspan/; the file is also already globally excluded via thepathslist.Stale comment fix:
io.WriteStringerrcheck exclusion — its originating file (tools/dep_tree_resolver/go_deps.go) was deleted in Clean unused file, task and module #22067. The rule itself is kept as it still covers unchecked writes tohttp.ResponseWriter.Motivation
Dead exclusions accumulate noise in the config and make it harder to reason about which rules are actively suppressing real violations.
Describe how you validated your changes
Ran
dda inv linter.go— 0 issues.Additional Notes
Part of a broader linter configuration cleanup pass.