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