in metricsgenreceiver/receiver.go [212:228]
func (r *MetricsGenReceiver) produceMetricsForInstance(ctx context.Context, currentTime time.Time, scn Scenario, instanceResource pcommon.Resource) int {
r.obsreport.StartMetricsOp(ctx)
metrics := pmetric.NewMetrics()
scn.metricsTemplate.CopyTo(metrics)
resourceMetrics := metrics.ResourceMetrics()
for j := 0; j < resourceMetrics.Len(); j++ {
overrideExistingAttributes(instanceResource, resourceMetrics.At(j).Resource())
}
dp.ForEachDataPoint(&metrics, func(res pcommon.Resource, is pcommon.InstrumentationScope, m pmetric.Metric, dp dp.DataPoint) {
distribution.AdvanceDataPoint(dp, r.rand, m, r.cfg.Distribution)
dp.SetTimestamp(pcommon.NewTimestampFromTime(currentTime))
})
dataPoints := metrics.DataPointCount()
err := r.nextMetrics.ConsumeMetrics(ctx, metrics)
r.obsreport.EndMetricsOp(ctx, metadata.Type.String(), dataPoints, err)
return dataPoints
}