vector/sinks/statsd/
batch.rs1use vector_lib::event::Metric;
2use vector_lib::stream::batcher::limiter::ItemBatchSize;
3
4const EST_OVERHEAD_LEN: usize = 4;
7
8#[derive(Default)]
9pub(super) struct StatsdBatchSizer;
10
11impl ItemBatchSize<Metric> for StatsdBatchSizer {
12 fn size(&self, item: &Metric) -> usize {
13 item.series().name().name().len()
15 + item.series().name().namespace().map(|s| s.len() + 1).unwrap_or(0)
17 + item.series().tags().map(|t| {
19 t.iter_all().map(|(k, v)| {
20 k.len() + 1 + v.map(|v| v.len()).unwrap_or(0)
21 })
22 .sum()
23 })
24 .unwrap_or(0)
25 + EST_OVERHEAD_LEN
27 }
28}