diff --git a/libdd-trace-stats/benches/span_concentrator_bench.rs b/libdd-trace-stats/benches/span_concentrator_bench.rs index cad2e55404..908db5164a 100644 --- a/libdd-trace-stats/benches/span_concentrator_bench.rs +++ b/libdd-trace-stats/benches/span_concentrator_bench.rs @@ -47,6 +47,7 @@ pub fn criterion_benchmark(c: &mut Criterion) { now, vec![], vec!["db_name".into(), "bucket_s3".into()], + 2, ); let mut spans = vec![]; for trace_id in 1..100 { diff --git a/libdd-trace-stats/src/span_concentrator/mod.rs b/libdd-trace-stats/src/span_concentrator/mod.rs index 1ad0ba8b24..118fbb98a3 100644 --- a/libdd-trace-stats/src/span_concentrator/mod.rs +++ b/libdd-trace-stats/src/span_concentrator/mod.rs @@ -74,11 +74,13 @@ impl SpanConcentrator { /// - `now` the current system time, used to define the oldest bucket /// - `span_kinds_stats_computed` list of span kinds eligible for stats computation /// - `peer_tags_keys` list of keys considered as peer tags for aggregation + /// - `buffer_len` number of buckets to keep when flushing pub fn new( bucket_size: Duration, now: SystemTime, span_kinds_stats_computed: Vec, peer_tag_keys: Vec, + buffer_len: usize, ) -> SpanConcentrator { SpanConcentrator { bucket_size: bucket_size.as_nanos() as u64, @@ -87,7 +89,7 @@ impl SpanConcentrator { system_time_to_unix_duration(now).as_nanos() as u64, bucket_size.as_nanos() as u64, ), - buffer_len: 2, + buffer_len, span_kinds_stats_computed, peer_tag_keys, } diff --git a/libdd-trace-stats/src/span_concentrator/tests.rs b/libdd-trace-stats/src/span_concentrator/tests.rs index 3f4f8c05df..fc46549949 100644 --- a/libdd-trace-stats/src/span_concentrator/tests.rs +++ b/libdd-trace-stats/src/span_concentrator/tests.rs @@ -100,7 +100,7 @@ fn assert_counts_equal(expected: Vec, actual: Vec