Closed tobz closed 3 weeks ago
Run ID: d49a3418-6a47-4e2a-8f9d-cc13ff16ad1d
Baseline: 7.52.0 Comparison: 7.52.1
Performance changes are noted in the perf column of each table:
Confidence level: 90.00% Effect size tolerance: |Δ mean %| ≥ 5.00%
There were no significant changes in experiment optimization goals at this confidence level and effect size tolerance.
Run ID: f228157b-9ce6-43a2-8cb2-b260057a457e
Baseline: 6a70c394a927a215f047c470d57b5d3f50c64ad6 Comparison: c62120b5511668b3e73e839e789203710f893b09
Performance changes are noted in the perf column of each table:
Confidence level: 90.00% Effect size tolerance: |Δ mean %| ≥ 5.00%
There were no significant changes in experiment optimization goals at this confidence level and effect size tolerance.
experiment | link(s) |
---|---|
dsd_uds_100mb_250k_contexts | [Profiling (ADP)] [Profiling (DSD)] [SMP Dashboard] |
dsd_uds_100mb_3k_contexts | [Profiling (ADP)] [Profiling (DSD)] [SMP Dashboard] |
dsd_uds_100mb_3k_contexts_distributions_only | [Profiling (ADP)] [Profiling (DSD)] [SMP Dashboard] |
dsd_uds_10mb_3k_contexts | [Profiling (ADP)] [Profiling (DSD)] [SMP Dashboard] |
dsd_uds_1mb_3k_contexts | [Profiling (ADP)] [Profiling (DSD)] [SMP Dashboard] |
dsd_uds_1mb_50k_contexts | [Profiling (ADP)] [Profiling (DSD)] [SMP Dashboard] |
dsd_uds_1mb_50k_contexts_memlimit | [Profiling (ADP)] [Profiling (DSD)] [SMP Dashboard] |
dsd_uds_500mb_3k_contexts | [Profiling (ADP)] [Profiling (DSD)] [SMP Dashboard] |
dsd_uds_512kb_3k_contexts | [Profiling (ADP)] [Profiling (DSD)] [SMP Dashboard] |
dsd_uds_50mb_10k_contexts_no_inlining (ADP only) | [Profiling (ADP)] [SMP Dashboard] |
dsd_uds_50mb_10k_contexts_no_inlining_no_allocs (ADP only) | [Profiling (ADP)] [SMP Dashboard] |
Context
In #210, we attempted to "fix" our observed issues with the amount of output data from ADP not matching DSD by changing the bucket width (window duration) from 10 seconds to 15 seconds. This did fix the output data discrepancy, but still wasn't actually correct.
In the Datadog Agent, the bucket width is in fact 10 seconds, while the flush interval is 15 seconds.
Solution
This PR introduces a standalone setting for flush interval -- defaulting to 15 seconds -- to bring this up to snuff. We had to rework a bit of the flush logic to properly account for zero-value counters when we may be flushing multiple buckets, but overall things are a bit simpler (I think, at least) and hopefully easier to understand.
There's still some temporary data structures we use to track our progress and so on, and maybe we can optimize or eliminate needing them in the future... but for now, things work.