func addDeviceMetric()

in remappers/hostmetrics/network.go [64:97]


func addDeviceMetric(
	out pmetric.MetricSlice,
	timestamp pcommon.Timestamp,
	mutator func(pmetric.NumberDataPoint),
	name, device, direction string,
	value int64,
) {
	metricsToAdd := map[string]string{
		"system.network.io":      "system.network.%s.bytes",
		"system.network.packets": "system.network.%s.packets",
		"system.network.dropped": "system.network.%s.dropped",
		"system.network.errors":  "system.network.%s.errors",
	}

	metricNetworkES, ok := metricsToAdd[name]
	if !ok {
		return
	}

	finalMutator := remappedmetric.ChainedMutator(
		mutator,
		func(dp pmetric.NumberDataPoint) {
			dp.Attributes().PutStr("system.network.name", device)
		},
	)
	remappedmetric.Add(out, finalMutator,
		remappedmetric.Metric{
			DataType:  pmetric.MetricTypeSum,
			Name:      fmt.Sprintf(metricNetworkES, direction),
			Timestamp: timestamp,
			IntValue:  &value,
		},
	)
}