-
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
[NDM] Move validation to profiledefinition #32377
Conversation
Regression DetectorRegression Detector ResultsMetrics dashboard Baseline: 8903391 Optimization Goals: ✅ No significant changes detected
|
perf | experiment | goal | Δ mean % | Δ mean % CI | trials | links |
---|---|---|---|---|---|---|
➖ | quality_gate_logs | % cpu utilization | +1.73 | [-1.38, +4.83] | 1 | Logs |
➖ | uds_dogstatsd_to_api_cpu | % cpu utilization | +0.51 | [-0.38, +1.41] | 1 | Logs |
➖ | file_to_blackhole_1000ms_latency | egress throughput | +0.33 | [-0.45, +1.11] | 1 | Logs |
➖ | quality_gate_idle | memory utilization | +0.07 | [+0.04, +0.11] | 1 | Logs bounds checks dashboard |
➖ | file_to_blackhole_0ms_latency_http2 | egress throughput | +0.02 | [-0.83, +0.88] | 1 | Logs |
➖ | quality_gate_idle_all_features | memory utilization | +0.01 | [-0.05, +0.08] | 1 | Logs bounds checks dashboard |
➖ | tcp_dd_logs_filter_exclude | ingress throughput | -0.00 | [-0.01, +0.01] | 1 | Logs |
➖ | file_to_blackhole_300ms_latency | egress throughput | -0.01 | [-0.64, +0.62] | 1 | Logs |
➖ | file_to_blackhole_0ms_latency | egress throughput | -0.01 | [-0.87, +0.85] | 1 | Logs |
➖ | uds_dogstatsd_to_api | ingress throughput | -0.02 | [-0.30, +0.26] | 1 | Logs |
➖ | file_to_blackhole_0ms_latency_http1 | egress throughput | -0.03 | [-0.85, +0.79] | 1 | Logs |
➖ | file_to_blackhole_100ms_latency | egress throughput | -0.05 | [-0.74, +0.63] | 1 | Logs |
➖ | tcp_syslog_to_blackhole | ingress throughput | -0.13 | [-0.20, -0.07] | 1 | Logs |
➖ | file_to_blackhole_1000ms_latency_linear_load | egress throughput | -0.18 | [-0.65, +0.28] | 1 | Logs |
➖ | file_to_blackhole_500ms_latency | egress throughput | -0.19 | [-0.96, +0.59] | 1 | Logs |
➖ | file_tree | memory utilization | -0.69 | [-0.75, -0.62] | 1 | Logs |
Bounds Checks: ✅ Passed
perf | experiment | bounds_check_name | replicates_passed | links |
---|---|---|---|---|
✅ | file_to_blackhole_0ms_latency | lost_bytes | 10/10 | |
✅ | file_to_blackhole_0ms_latency | memory_usage | 10/10 | |
✅ | file_to_blackhole_0ms_latency_http1 | lost_bytes | 10/10 | |
✅ | file_to_blackhole_0ms_latency_http1 | memory_usage | 10/10 | |
✅ | file_to_blackhole_0ms_latency_http2 | lost_bytes | 10/10 | |
✅ | file_to_blackhole_0ms_latency_http2 | memory_usage | 10/10 | |
✅ | file_to_blackhole_1000ms_latency | memory_usage | 10/10 | |
✅ | file_to_blackhole_1000ms_latency_linear_load | 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_300ms_latency | lost_bytes | 10/10 | |
✅ | file_to_blackhole_300ms_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 | |
✅ | quality_gate_logs | lost_bytes | 10/10 | |
✅ | quality_gate_logs | memory_usage | 10/10 |
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_logs, bounds check intake_connections: 10/10 replicas passed. Gate passed.
- quality_gate_logs, bounds check memory_usage: 10/10 replicas passed. Gate passed.
- quality_gate_logs, bounds check lost_bytes: 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_idle, bounds check memory_usage: 10/10 replicas passed. Gate passed.
- quality_gate_idle, bounds check intake_connections: 10/10 replicas passed. Gate passed.
559c10d
to
cb59f4f
Compare
34e4594
to
64080b5
Compare
Go Package Import DifferencesBaseline: 8903391
|
cb59f4f
to
5eb73f1
Compare
64080b5
to
c88650d
Compare
5eb73f1
to
28f19d7
Compare
c88650d
to
8fb5800
Compare
28f19d7
to
fb93723
Compare
1a0d81b
to
3bb9abc
Compare
Test changes on VMUse this command from test-infra-definitions to manually test this PR changes on a VM: inv aws.create-vm --pipeline-id=54799570 --os-family=ubuntu Note: This applies to commit 26b9452 |
Uncompressed package size comparisonComparison with ancestor Diff per package
Decision✅ Passed |
fb93723
to
a9c9690
Compare
4cfd5d7
to
c14af61
Compare
a9c9690
to
c44547d
Compare
c14af61
to
4445f53
Compare
c44547d
to
6d430ba
Compare
4445f53
to
5b6dfdd
Compare
6d430ba
to
d78d965
Compare
5b6dfdd
to
4dbd9dd
Compare
d78d965
to
115f247
Compare
4dbd9dd
to
b9417ae
Compare
115f247
to
45b6003
Compare
6934484
to
0ceacc9
Compare
edfeef9
to
1898a32
Compare
0ceacc9
to
b85ef4a
Compare
1898a32
to
c9da16e
Compare
b85ef4a
to
d3ecf15
Compare
c9da16e
to
6636fde
Compare
ef83331
to
bccf7bd
Compare
bccf7bd
to
26b9452
Compare
/merge |
Devflow running:
|
What does this PR do?
This moves some validation code out of the snmp check's internal package and into the shared profiledefinition package, so that it can be used by other packages.
It also adds a CLI tool to validate and normalize profiles.
Motivation
We need to be able to load and normalize profiles in code that won't live in the snmp internals.
https://datadoghq.atlassian.net/browse/NDMII-2360
Describe how you validated your changes
The check behavior doesn't change; tests pass and local agent runs are unchanged.