Conversation
41faa56 to
c408cf2
Compare
Static quality checks✅ Please find below the results from static quality gates 31 successful checks with minimal change (< 2 KiB)
On-wire sizes (compressed)
|
c408cf2 to
3c73c00
Compare
Regression DetectorRegression Detector ResultsMetrics dashboard Baseline: 500dcf3 Optimization Goals: ✅ No significant changes detected
|
| perf | experiment | goal | Δ mean % | Δ mean % CI | trials | links |
|---|---|---|---|---|---|---|
| ❌ | docker_containers_cpu | % cpu utilization | +5.13 | [+2.12, +8.14] | 1 | Logs |
Fine details of change detection per experiment
| perf | experiment | goal | Δ mean % | Δ mean % CI | trials | links |
|---|---|---|---|---|---|---|
| ❌ | docker_containers_cpu | % cpu utilization | +5.13 | [+2.12, +8.14] | 1 | Logs |
| ➖ | quality_gate_logs | % cpu utilization | +0.84 | [-0.67, +2.34] | 1 | Logs bounds checks dashboard |
| ➖ | quality_gate_metrics_logs | memory utilization | +0.76 | [+0.53, +0.99] | 1 | Logs bounds checks dashboard |
| ➖ | otlp_ingest_logs | memory utilization | +0.38 | [+0.28, +0.49] | 1 | Logs |
| ➖ | uds_dogstatsd_20mb_12k_contexts_20_senders | memory utilization | +0.31 | [+0.25, +0.36] | 1 | Logs |
| ➖ | ddot_logs | memory utilization | +0.09 | [+0.03, +0.14] | 1 | Logs |
| ➖ | quality_gate_idle_all_features | memory utilization | +0.06 | [+0.02, +0.09] | 1 | Logs bounds checks dashboard |
| ➖ | file_to_blackhole_1000ms_latency | egress throughput | +0.03 | [-0.38, +0.43] | 1 | Logs |
| ➖ | uds_dogstatsd_to_api | ingress throughput | +0.01 | [-0.13, +0.14] | 1 | Logs |
| ➖ | file_to_blackhole_0ms_latency | egress throughput | +0.01 | [-0.50, +0.51] | 1 | Logs |
| ➖ | tcp_dd_logs_filter_exclude | ingress throughput | +0.00 | [-0.10, +0.10] | 1 | Logs |
| ➖ | ddot_metrics_sum_delta | memory utilization | -0.00 | [-0.21, +0.21] | 1 | Logs |
| ➖ | quality_gate_idle | memory utilization | -0.01 | [-0.06, +0.03] | 1 | Logs bounds checks dashboard |
| ➖ | uds_dogstatsd_to_api_v3 | ingress throughput | -0.02 | [-0.14, +0.11] | 1 | Logs |
| ➖ | file_to_blackhole_500ms_latency | egress throughput | -0.02 | [-0.40, +0.37] | 1 | Logs |
| ➖ | file_to_blackhole_100ms_latency | egress throughput | -0.02 | [-0.07, +0.02] | 1 | Logs |
| ➖ | ddot_metrics_sum_cumulativetodelta_exporter | memory utilization | -0.02 | [-0.26, +0.21] | 1 | Logs |
| ➖ | ddot_metrics | memory utilization | -0.12 | [-0.34, +0.11] | 1 | Logs |
| ➖ | ddot_metrics_sum_cumulative | memory utilization | -0.26 | [-0.43, -0.10] | 1 | Logs |
| ➖ | file_tree | memory utilization | -0.37 | [-0.42, -0.31] | 1 | Logs |
| ➖ | otlp_ingest_metrics | memory utilization | -0.37 | [-0.52, -0.21] | 1 | Logs |
| ➖ | docker_containers_memory | memory utilization | -0.37 | [-0.45, -0.30] | 1 | Logs |
| ➖ | tcp_syslog_to_blackhole | ingress throughput | -2.18 | [-2.25, -2.10] | 1 | Logs |
Bounds Checks: ✅ Passed
| perf | experiment | bounds_check_name | replicates_passed | links |
|---|---|---|---|---|
| ✅ | docker_containers_cpu | simple_check_run | 10/10 | |
| ✅ | docker_containers_memory | memory_usage | 10/10 | |
| ✅ | docker_containers_memory | simple_check_run | 10/10 | |
| ✅ | file_to_blackhole_0ms_latency | lost_bytes | 10/10 | |
| ✅ | file_to_blackhole_0ms_latency | memory_usage | 10/10 | |
| ✅ | file_to_blackhole_1000ms_latency | lost_bytes | 10/10 | |
| ✅ | file_to_blackhole_1000ms_latency | memory_usage | 10/10 | |
| ✅ | file_to_blackhole_100ms_latency | lost_bytes | 10/10 | |
| ✅ | file_to_blackhole_100ms_latency | memory_usage | 10/10 | |
| ✅ | file_to_blackhole_500ms_latency | lost_bytes | 10/10 | |
| ✅ | file_to_blackhole_500ms_latency | memory_usage | 10/10 | |
| ✅ | quality_gate_idle | intake_connections | 10/10 | bounds checks dashboard |
| ✅ | quality_gate_idle | memory_usage | 10/10 | bounds checks dashboard |
| ✅ | quality_gate_idle_all_features | intake_connections | 10/10 | bounds checks dashboard |
| ✅ | quality_gate_idle_all_features | memory_usage | 10/10 | bounds checks dashboard |
| ✅ | quality_gate_logs | intake_connections | 10/10 | bounds checks dashboard |
| ✅ | quality_gate_logs | lost_bytes | 10/10 | bounds checks dashboard |
| ✅ | quality_gate_logs | memory_usage | 10/10 | bounds checks dashboard |
| ✅ | quality_gate_metrics_logs | cpu_usage | 10/10 | bounds checks dashboard |
| ✅ | quality_gate_metrics_logs | intake_connections | 10/10 | bounds checks dashboard |
| ✅ | quality_gate_metrics_logs | lost_bytes | 10/10 | bounds checks dashboard |
| ✅ | quality_gate_metrics_logs | memory_usage | 10/10 | 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 intake_connections: 10/10 replicas passed. Gate passed.
- quality_gate_metrics_logs, bounds check memory_usage: 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 lost_bytes: 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_idle, bounds check intake_connections: 10/10 replicas passed. Gate passed.
- quality_gate_idle, bounds check memory_usage: 10/10 replicas passed. Gate passed.
- quality_gate_logs, bounds check intake_connections: 10/10 replicas passed. Gate passed.
- quality_gate_logs, bounds check lost_bytes: 10/10 replicas passed. Gate passed.
- quality_gate_logs, bounds check memory_usage: 10/10 replicas passed. Gate passed.
d968077 to
b8e899a
Compare
aiuto
left a comment
There was a problem hiding this comment.
The module generator is something we should do.
bazel test //... is probably not.
| script: | ||
| - bazel test //bazel/tests/... | ||
| - bazel test //... |
There was a problem hiding this comment.
Let's discuss this as a team first. It is going to get big and complex soon, especially with multiple platforms. It is not always possible to write strict test skipping with target_compatible_with.
There was a problem hiding this comment.
OK. I've been extracting "less disputed" bits into small PRs until we're all back.
b8e899a to
6acf7cc
Compare
bazel deps module consistency enforcementbazel test scope
e5f9dba to
d1864d3
Compare
Gitlab CI Configuration ChangesModified Jobsbazel:test:windows-amd64 bazel:test:windows-amd64:
before_script:
- C:\ci-identities-gitlab-job-client.exe assume-role
id_tokens:
CI_IDENTITIES_GITLAB_ID_TOKEN:
aud: ci-identities
needs: []
rules:
- - if: $SKIP_WINDOWS == "true"
- when: never
- when: on_success
script:
- '$FailFast = @''
$ErrorActionPreference = ''Stop''
$PSNativeCommandUseErrorActionPreference = $true
Set-StrictMode -Version 3.0
''@
Invoke-Expression $FailFast
$Utf8Script = [Text.Encoding]::UTF8.GetString([Text.Encoding]::GetEncoding([Console]::OutputEncoding.CodePage).GetBytes($POWERSHELL_SCRIPT))
$EncodedCommand = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes("$FailFast`n$Utf8Script"))'
- .\tools\ci\docker-run-with-bazel-cache.ps1 --env=CI_IDENTITIES_GITLAB_ID_TOKEN
--volume="${CI_PROJECT_DIR}:$CI_PROJECT_DIR" --workdir="$CI_PROJECT_DIR" "$WINBUILDIMAGE"
powershell -NonInteractive -NoLogo -NoProfile -InputFormat Text -OutputFormat
Text -EncodedCommand $EncodedCommand
stage: source_test
tags:
- windows-v2:2022
timeout: 60m
variables:
ARCH: x64
AWS_SHARED_CREDENTIALS_FILE: ${CI_PROJECT_DIR}\.aws\credentials-by-job-id\${CI_JOB_ID}
BAZELISK_HOME: $XDG_CACHE_HOME/bazelisk
GIT_DEPTH: 2
OVERRIDE_GIT_STRATEGY: clone
- POWERSHELL_SCRIPT: bazel test //bazel/tests/... //rtloader/...
+ POWERSHELL_SCRIPT: bazel test //...
WINBUILDIMAGE: registry.ddbuild.io/ci/datadog-agent-buildimages/windows_ltsc2022_${ARCH}${CI_IMAGE_WIN_LTSC2022_X64_SUFFIX}:${CI_IMAGE_WIN_LTSC2022_X64}
XDG_CACHE_HOME: c:/bzlChanges Summary
ℹ️ Diff available in the job log. |
d1864d3 to
ed34984
Compare
### What does this PR do? This upgrade includes a Windows compatibility fix for batch file line endings (bazel-contrib/bazel-lib#1222), which resolves a cmd parsing bug where GOTO/CALL to labels fails when batch files use non CRLF-only line endings and a label crosses a 512-byte boundary: ```diff > bazel test //deps/openssl3:module_consistency_test [...] ==================== Test output for //deps/openssl3:module_consistency_test: -The system cannot find the batch label specified - compare_files +compare_files +FAIL: files "C:\[...]\bazel-out\[...]\deps\openssl3\openssl3.MODULE.bazel.new" and "C:\[workspace]\deps\openssl3\openssl3.MODULE.bazel" differ. + + +@@//deps/openssl3:openssl3.MODULE.bazel is out of date. To update this file, run: + + bazel run //deps/openssl3:module_consistency +To see differences run: + + diff "C:\[...]\bazel-out\[...]\deps\openssl3\openssl3.MODULE.bazel.new" "C:\[workspace]\deps\openssl3\openssl3.MODULE.bazel" + ================================================================================ ``` Because this now surfaces we'd been generating `*.MODULE.bazel` with OS-specific newlines, the present change fixes it by always issuing UNIX-style newlines: ``` > bazel test //deps/openssl3:module_consistency_test [...] //deps/openssl3:module_consistency_test PASSED in 0.4s ``` ### Motivation Keep up to date and better support colleagues working on Windows. ### Describe how you validated your changes Locally for the time being because we still have very limited test coverage due to #44455 being disputed. ### Additional Notes `bazel_lib` 3.1.0/3.1.1 comes with further improvements, like: - bazel-contrib/bazel-lib#1217 - bazel-contrib/bazel-lib#1220 - bazel-contrib/bazel-lib#1232 Co-authored-by: regis.desgroppes <[email protected]>
1de9de4 to
4bbe0a0
Compare
4bbe0a0 to
7e238ba
Compare
### What does this PR do? - extend `bazel test` scope in CI from `//bazel/tests/...` to `//...`, - fix remaining failures after doing so. ### Motivation The `deps/acl/acl.MODULE.bazel` file was out of sync with its generated version (using `url` instead of `urls`), but this inconsistency was not caught.
7e238ba to
ad896a6
Compare
Files inventory check summaryFile checks results against ancestor b1362953: Results for datadog-agent_7.79.0~devel.git.40.ad896a6.pipeline.103842958-1_amd64.deb:No change detected |
What does this PR do?
bazel testscope in CI from//bazel/tests/...to//...,Motivation
deps/acl/acl.MODULE.bazelfile was out of sync with its generated version (usingurlinstead ofurls), but this inconsistency was not caught:bazel test //bazel/tests/...was missing consistency tests in//deps/**(addressed by Fixbazel test //deps/acl:module_consistency_test#44750 since),//pkg/discovery/module/rust:dd_discovery_testpanicked onassertion failed: result.is_some()(addressed by discovery: Add missing files from sd-agent import #45140 since),Describe how you validated your changes
CI.
Additional Notes
We should make sure
bazel test //...always works, whatever the OS our colleagues are on.