func addClusterMetrics()

in remappers/kubernetesmetrics/clustermetrics.go [27:69]


func addClusterMetrics(
	src, out pmetric.MetricSlice,
	_ pcommon.Resource,
	mutator func(pmetric.NumberDataPoint),
) error {
	var timestamp pcommon.Timestamp
	var node_allocatable_memory, node_allocatable_cpu int64

	// iterate all metrics in the current scope and generate the additional Elastic kubernetes integration metrics
	for i := 0; i < src.Len(); i++ {
		metric := src.At(i)
		if metric.Name() == "k8s.node.allocatable_cpu" {
			dp := metric.Gauge().DataPoints().At(0)
			if timestamp == 0 {
				timestamp = dp.Timestamp()
			}
			node_allocatable_cpu = dp.IntValue()
		} else if metric.Name() == "k8s.node.allocatable_memory" {
			dp := metric.Gauge().DataPoints().At(0)
			if timestamp == 0 {
				timestamp = dp.Timestamp()
			}
			node_allocatable_memory = dp.IntValue()
		}
	}

	remappedmetric.Add(out, mutator,
		remappedmetric.Metric{
			DataType:  pmetric.MetricTypeGauge,
			Name:      "kubernetes.node.cpu.allocatable.cores",
			Timestamp: timestamp,
			IntValue:  &node_allocatable_cpu,
		},
		remappedmetric.Metric{
			DataType:  pmetric.MetricTypeGauge,
			Name:      "kubernetes.node.memory.allocatable.bytes",
			Timestamp: timestamp,
			IntValue:  &node_allocatable_memory,
		},
	)

	return nil
}