in receiver/loadgenreceiver/metrics.go [167:224]
func (ar *metricsGenerator) nextMetrics(next pmetric.Metrics) error {
now := pcommon.NewTimestampFromTime(time.Now())
sample, err := ar.samples.Next()
if err != nil {
return err
}
sample.CopyTo(next)
counter := ar.counter.Add(1)
rm := next.ResourceMetrics()
for i := 0; i < rm.Len(); i++ {
if ar.cfg.Metrics.AddCounterAttr {
rm.At(i).Resource().Attributes().PutInt(counterAttr, counter)
}
for j := 0; j < rm.At(i).ScopeMetrics().Len(); j++ {
for k := 0; k < rm.At(i).ScopeMetrics().At(j).Metrics().Len(); k++ {
smetric := rm.At(i).ScopeMetrics().At(j).Metrics().At(k)
switch smetric.Type() {
case pmetric.MetricTypeGauge:
dps := smetric.Gauge().DataPoints()
for i := 0; i < dps.Len(); i++ {
dps.At(i).SetTimestamp(now)
dps.At(i).SetStartTimestamp(now)
}
case pmetric.MetricTypeSum:
dps := smetric.Sum().DataPoints()
for i := 0; i < dps.Len(); i++ {
dps.At(i).SetTimestamp(now)
dps.At(i).SetStartTimestamp(now)
}
case pmetric.MetricTypeHistogram:
dps := smetric.Histogram().DataPoints()
for i := 0; i < dps.Len(); i++ {
dps.At(i).SetTimestamp(now)
dps.At(i).SetStartTimestamp(now)
}
case pmetric.MetricTypeExponentialHistogram:
dps := smetric.ExponentialHistogram().DataPoints()
for i := 0; i < dps.Len(); i++ {
dps.At(i).SetTimestamp(now)
dps.At(i).SetStartTimestamp(now)
}
case pmetric.MetricTypeSummary:
dps := smetric.Summary().DataPoints()
for i := 0; i < dps.Len(); i++ {
dps.At(i).SetTimestamp(now)
dps.At(i).SetStartTimestamp(now)
}
case pmetric.MetricTypeEmpty:
}
}
}
}
return nil
}