in metricsgenreceiver/receiver.go [160:177]
func (r *MetricsGenReceiver) applyChurn(interval int, simulatedTime time.Time) {
for _, scn := range r.scenarios {
if scn.config.Churn == 0 {
continue
}
startTime := simulatedTime.Format(time.RFC3339)
for i := 0; i < scn.config.Churn; i++ {
id := scn.config.Scale + interval*scn.config.Churn + i
resource, err := metricstmpl.RenderResource(scn.config.Path, id, startTime, scn.config.TemplateVars, r.rand)
if err != nil {
r.settings.Logger.Error("failed to apply churn", zap.Error(err))
} else {
scn.resources[id%len(scn.resources)] = resource
}
}
}
}