[ACTP] add par-control executor channel - #54591
Conversation
Go Package Import DifferencesBaseline: 296059f
|
|
🎯 Code Coverage (details) 🔗 Commit SHA: e2a467e | Docs | View more details | Give us feedback! |
Files inventory check summaryFile checks results against ancestor 296059ff: Results for datadog-agent_7.84.0~devel.git.457.e2a467e.pipeline.132944298-1_amd64.deb:No change detected Results for datadog-iot-agent_7.84.0~devel.git.457.e2a467e.pipeline.132944298-1_amd64.deb:No change detected |
cba69a0 to
e4b2eb6
Compare
Static quality checks❌ Please find below the results from static quality gates Error
Gate failure full details
Static quality gate failures prevent this PR from merging! Successful checksInfo
3 successful checks with minimal change (< 2 KiB)
|
e4b2eb6 to
c02d5f4
Compare
67c8dd2 to
1eb7a41
Compare
1eb7a41 to
0291af5
Compare
c02d5f4 to
c761f51
Compare
Regression DetectorRegression Detector ResultsMetrics dashboard Baseline: c45db9e Optimization Goals: ✅ No significant changes detected
|
| perf | experiment | goal | Δ mean % | Δ mean % CI | trials | links |
|---|---|---|---|---|---|---|
| ➖ | dsd_uds_10mb_3k_timestamped_contexts_memory | memory utilization | +1.07 | [+0.86, +1.29] | 1 | Logs |
| ➖ | quality_gate_idle_all_features | memory utilization | +0.69 | [+0.66, +0.73] | 1 | Logs bounds checks dashboard |
| ➖ | dsd_uds_10mb_3k_timestamped_contexts_cpu | % cpu utilization | +0.64 | [+0.40, +0.89] | 1 | Logs |
| ➖ | quality_gate_idle | memory utilization | +0.46 | [+0.41, +0.50] | 1 | Logs bounds checks dashboard |
| ➖ | quality_gate_security_mean_fs_load | memory utilization | +0.18 | [+0.15, +0.22] | 1 | Logs bounds checks dashboard |
| ➖ | quality_gate_metrics_logs | memory utilization | +0.11 | [-0.12, +0.34] | 1 | Logs bounds checks dashboard |
| ➖ | quality_gate_security_no_fs_load | memory utilization | +0.09 | [+0.01, +0.17] | 1 | Logs bounds checks dashboard |
| ➖ | quality_gate_security_idle | memory utilization | -0.02 | [-0.07, +0.02] | 1 | Logs bounds checks dashboard |
| ➖ | quality_gate_private_action_runner | memory utilization | -0.31 | [-0.43, -0.18] | 1 | Logs bounds checks dashboard |
| ➖ | quality_gate_logs | % cpu utilization | -2.85 | [-3.75, -1.96] | 1 | Logs bounds checks dashboard |
Bounds Checks: ✅ Passed
| perf | experiment | bounds_check_name | replicates_passed | observed_value | links |
|---|---|---|---|---|---|
| ✅ | quality_gate_idle | intake_connections | 10/10 | 4 = 4 | bounds checks dashboard |
| ✅ | quality_gate_idle | memory_usage | 10/10 | 173.97MiB ≤ 178MiB | bounds checks dashboard |
| ✅ | quality_gate_idle | total_bytes_received | 10/10 | 748.11KiB ≤ 819.20KiB | bounds checks dashboard |
| ✅ | quality_gate_idle_all_features | intake_connections | 10/10 | 4 = 4 | bounds checks dashboard |
| ✅ | quality_gate_idle_all_features | memory_usage | 10/10 | 526.43MiB ≤ 538MiB | bounds checks dashboard |
| ✅ | quality_gate_idle_all_features | total_bytes_received | 10/10 | 1.14MiB ≤ 1.25MiB | bounds checks dashboard |
| ✅ | quality_gate_logs | intake_connections | 10/10 | 18 ≤ 40 | bounds checks dashboard |
| ✅ | quality_gate_logs | memory_usage | 10/10 | 215.79MiB ≤ 229MiB | bounds checks dashboard |
| ✅ | quality_gate_logs | missed_bytes | 10/10 | 0B = 0B | bounds checks dashboard |
| ✅ | quality_gate_logs | total_bytes_received | 10/10 | 263.07MiB ≤ 292MiB | bounds checks dashboard |
| ✅ | quality_gate_metrics_logs | cpu_usage | 10/10 | 377.17 ≤ 2000 | bounds checks dashboard |
| ✅ | quality_gate_metrics_logs | intake_connections | 10/10 | 19 ≤ 40 | bounds checks dashboard |
| ✅ | quality_gate_metrics_logs | memory_usage | 10/10 | 421.31MiB ≤ 453MiB | bounds checks dashboard |
| ✅ | quality_gate_metrics_logs | missed_bytes | 10/10 | 0B = 0B | bounds checks dashboard |
| ✅ | quality_gate_metrics_logs | total_bytes_received | 10/10 | 0.94GiB ≤ 1.04GiB | bounds checks dashboard |
| ✅ | quality_gate_private_action_runner | memory_usage | 10/10 | 71.62MiB ≤ 76MiB | bounds checks dashboard |
| ✅ | quality_gate_security_idle | cpu_usage | 10/10 | 28.39 ≤ 100 | bounds checks dashboard |
| ✅ | quality_gate_security_idle | memory_usage | 10/10 | 324.97MiB ≤ 335MiB | bounds checks dashboard |
| ✅ | quality_gate_security_mean_fs_load | cpu_usage | 10/10 | 62.98 ≤ 200 | bounds checks dashboard |
| ✅ | quality_gate_security_mean_fs_load | memory_usage | 10/10 | 307.88MiB ≤ 314MiB | bounds checks dashboard |
| ✅ | quality_gate_security_no_fs_load | cpu_usage | 10/10 | 22.41 ≤ 100 | bounds checks dashboard |
| ✅ | quality_gate_security_no_fs_load | memory_usage | 10/10 | 308.96MiB ≤ 343MiB | 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_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 missed_bytes: 10/10 replicas passed. Gate passed.
- quality_gate_logs, bounds check total_bytes_received: 10/10 replicas passed. Gate passed.
- quality_gate_idle_all_features, bounds check total_bytes_received: 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_private_action_runner, bounds check memory_usage: 10/10 replicas passed. Gate passed.
- quality_gate_security_mean_fs_load, bounds check memory_usage: 10/10 replicas passed. Gate passed.
- quality_gate_security_mean_fs_load, bounds check cpu_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_idle, bounds check total_bytes_received: 10/10 replicas passed. Gate passed.
- quality_gate_security_no_fs_load, bounds check cpu_usage: 10/10 replicas passed. Gate passed.
- quality_gate_security_no_fs_load, bounds check memory_usage: 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 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 total_bytes_received: 10/10 replicas passed. Gate passed.
- quality_gate_metrics_logs, bounds check intake_connections: 10/10 replicas passed. Gate passed.
- quality_gate_security_idle, bounds check cpu_usage: 10/10 replicas passed. Gate passed.
- quality_gate_security_idle, bounds check memory_usage: 10/10 replicas passed. Gate passed.
c761f51 to
98b3ee4
Compare
86f3e34 to
e21877b
Compare
dcb44c0 to
978aa4f
Compare
5bdf5d0 to
45ae99c
Compare
1302fa6 to
f163494
Compare
45ae99c to
17a1a1c
Compare
f163494 to
7ea2b01
Compare
17a1a1c to
89db57e
Compare
7ea2b01 to
37ae126
Compare
f35402d to
a6ec3dd
Compare
0feb052 to
1cb36ea
Compare
a6ec3dd to
71b6183
Compare
06d94dd to
73a64c3
Compare
71b6183 to
6bacac1
Compare
73a64c3 to
7d7201c
Compare
6bacac1 to
d58b2ee
Compare
7d7201c to
3bf6f91
Compare
d58b2ee to
b8ef72e
Compare
3bf6f91 to
f83ca17
Compare
a040f0a to
e13386e
Compare
f83ca17 to
8800d1d
Compare
8800d1d to
e5cbec0
Compare
e13386e to
562b328
Compare
e5cbec0 to
c3e9fbb
Compare
562b328 to
f6514be
Compare
c3e9fbb to
8e2bbae
Compare
f6514be to
026b0c1
Compare
What does this PR do?
Adds the authenticated local gRPC channel between
par-controland the Go executor:ActiveActionsstill reports only running actions;This layer introduces the crate's generated-bindings module and the local transport helpers, since it is the first one that needs executor protos and mTLS. OPMS polling and orchestration remain in later layers.
Validation
Focused Go and Rust tests cover the protocol, key synchronization and idle interaction, transport, and message limits. Proto changes are Bazel-validated because Cargo and Bazel use separate generated bindings.
dda env dev run -- bazel test //pkg/privateactionrunner/par-control:par-control_test //pkg/privateactionrunner/executor:executor_testdda env dev run -- env -u PKG_CONFIG_LIBDIR cargo test -p par-controlStack 5 of 9; based on #54590 and followed by #54592.