func Add()

in remappers/internal/remappedmetric/metric.go [67:106]


func Add(
	ms pmetric.MetricSlice,
	mutator func(dp pmetric.NumberDataPoint),
	metrics ...Metric,
) {
	ms.EnsureCapacity(ms.Len() + len(metrics))

	for _, metric := range metrics {

		if !metric.Valid() {
			continue
		}

		m := ms.AppendEmpty()
		m.SetName(metric.Name)

		var dp pmetric.NumberDataPoint
		switch metric.DataType {
		case pmetric.MetricTypeGauge:
			dp = m.SetEmptyGauge().DataPoints().AppendEmpty()
		case pmetric.MetricTypeSum:
			dp = m.SetEmptySum().DataPoints().AppendEmpty()
		}

		if metric.IntValue != nil {
			dp.SetIntValue(*metric.IntValue)
		} else if metric.DoubleValue != nil {
			dp.SetDoubleValue(*metric.DoubleValue)
		}

		dp.SetTimestamp(metric.Timestamp)
		if metric.StartTimestamp != 0 {
			dp.SetStartTimestamp(metric.StartTimestamp)
		}

		dp.Attributes().EnsureCapacity(minAttributeCapacity)
		dp.Attributes().PutBool(common.OTelRemappedLabel, true)
		mutator(dp)
	}
}