diff --git a/lading_payload/src/dogstatsd.rs b/lading_payload/src/dogstatsd.rs index de983ca75..68ba806d5 100644 --- a/lading_payload/src/dogstatsd.rs +++ b/lading_payload/src/dogstatsd.rs @@ -162,9 +162,8 @@ pub struct Config { /// Number of tags per individual dogstatsd msg a tag is a key-value pair /// separated by a : pub tags_per_msg: ConfRange, - /// Probability between 0 and 1 that a given dogstatsd msg - /// contains multiple values - pub multivalue_pack_probability: f32, + /// Probability that a given dogstatsd msg contains multiple values + pub multivalue_pack_probability: Probability, /// The count of values that will be generated if multi-value is chosen to /// be generated pub multivalue_count: ConfRange, @@ -271,7 +270,7 @@ impl Default for Config { tag_length: ConfRange::Inclusive { min: 3, max: 100 }, tags_per_msg: ConfRange::Inclusive { min: 2, max: 50 }, multivalue_count: ConfRange::Inclusive { min: 2, max: 32 }, - multivalue_pack_probability: 0.08, + multivalue_pack_probability: Probability::try_new(0.08).expect("0.08 is in [0.0, 1.0]"), sampling_range: ConfRange::Inclusive { min: 0.1, max: 1.0 }, sampling_probability: Probability::try_new(0.5).expect("0.5 is in [0.0, 1.0]"), kind_weights: KindWeights::default(), @@ -420,7 +419,7 @@ impl MemberGenerator { tag_length: ConfRange, tags_per_msg: ConfRange, multivalue_count: ConfRange, - multivalue_pack_probability: f32, + multivalue_pack_probability: Probability, sampling: ConfRange, sampling_probability: Probability, kind_weights: KindWeights, diff --git a/lading_payload/src/dogstatsd/metric.rs b/lading_payload/src/dogstatsd/metric.rs index 03754b408..7c96df2eb 100644 --- a/lading_payload/src/dogstatsd/metric.rs +++ b/lading_payload/src/dogstatsd/metric.rs @@ -33,7 +33,7 @@ pub(crate) struct MetricGenerator { pub(crate) timestamp_probability: Probability, pub(crate) templates: Vec, pub(crate) multivalue_count: ConfRange, - pub(crate) multivalue_pack_probability: f32, + pub(crate) multivalue_pack_probability: Probability, pub(crate) sampling: ConfRange, pub(crate) sampling_probability: Probability, pub(crate) num_value_generator: NumValueGenerator, @@ -50,7 +50,7 @@ impl MetricGenerator { num_contexts: usize, name_length: ConfRange, multivalue_count: ConfRange, - multivalue_pack_probability: f32, + multivalue_pack_probability: Probability, sampling: ConfRange, sampling_probability: Probability, metric_weights: &WeightedIndex, @@ -162,7 +162,7 @@ impl<'a> Generator<'a> for MetricGenerator { values.push(value); let prob: f32 = OpenClosed01.sample(&mut rng); - if prob < self.multivalue_pack_probability { + if prob < self.multivalue_pack_probability.get() { let num_desired_values = self.multivalue_count.sample(&mut rng) as usize; for _ in 1..num_desired_values { values.push(self.num_value_generator.generate(&mut rng)?);