in remappers/hostmetrics/disk.go [61:99]
func addDiskMetric(
metric pmetric.Metric,
out pmetric.MetricSlice,
mutator func(pmetric.NumberDataPoint),
multiplier int64,
) error {
metricDiskES, ok := metricsToAdd[metric.Name()]
if !ok {
return fmt.Errorf("unexpected metric name: %s", metric.Name())
}
dps := metric.Sum().DataPoints()
for i := 0; i < dps.Len(); i++ {
dp := dps.At(i)
if device, ok := dp.Attributes().Get("device"); ok {
direction, _ := dp.Attributes().Get("direction")
newM := remappedmetric.Metric{
DataType: pmetric.MetricTypeSum,
Name: fmt.Sprintf(metricDiskES, direction.Str()),
Timestamp: dp.Timestamp(),
}
switch dp.ValueType() {
case pmetric.NumberDataPointValueTypeInt:
v := dp.IntValue() * multiplier
newM.IntValue = &v
case pmetric.NumberDataPointValueTypeDouble:
v := dp.DoubleValue() * float64(multiplier)
newM.DoubleValue = &v
}
remappedmetric.Add(out, remappedmetric.ChainedMutator(
mutator,
func(dp pmetric.NumberDataPoint) {
dp.Attributes().PutStr("system.diskio.name", device.Str())
},
), newM)
}
}
return nil
}