func SendContainersCpuMemoryToAppInsightsMetrics()

in otelcollector/fluent-bit/src/telemetry.go [458:497]


func SendContainersCpuMemoryToAppInsightsMetrics() {

	var p CadvisorJson
	err := json.Unmarshal(retrieveKsmData(), &p)
	if err != nil {
		message := fmt.Sprintf("Unable to retrieve the unmarshalled Json from Cadvisor- %v\n", err)
		Log(message)
		SendException(message)
	}

	ksmTelemetryTicker := time.NewTicker(time.Second * time.Duration(ksmAttachedTelemetryIntervalSeconds))
	for ; true; <-ksmTelemetryTicker.C {
		for podId := 0; podId < len(p.Pods); podId++ {
			podRefName := strings.TrimSpace(p.Pods[podId].PodRef.PodRefName)
			for containerId := 0; containerId < len(p.Pods[podId].Containers); containerId++ {
				container := p.Pods[podId].Containers[containerId]
				containerName := strings.TrimSpace(container.Name)

				switch containerName {
				case "":
					message := fmt.Sprintf("Container name is missing")
					Log(message)
					continue
				case "ama-metrics-ksm":
					GetAndSendContainerCPUandMemoryFromCadvisorJSON(container, ksmCpuMemoryTelemetryName, "MemKsmRssBytes", podRefName)
				case "targetallocator":
					GetAndSendContainerCPUandMemoryFromCadvisorJSON(container, "taCPUUsage", "taMemRssBytes", podRefName)
				case "config-reader":
					GetAndSendContainerCPUandMemoryFromCadvisorJSON(container, "cnfgRdrCPUUsage", "cnfgRdrMemRssBytes", podRefName)
				case "addon-token-adapter":
					GetAndSendContainerCPUandMemoryFromCadvisorJSON(container, "adnTknAdtrCPUUsage", "adnTknAdtrMemRssBytes", podRefName)
				case "addon-token-adapter-win":
					GetAndSendContainerCPUandMemoryFromCadvisorJSON(container, "adnTknAdtrCPUUsage", "adnTknAdtrMemRssBytes", podRefName)
				case "prometheus-collector":
					GetAndSendContainerCPUandMemoryFromCadvisorJSON(container, "promColCPUUsage", "promColMemRssBytes", podRefName)
				}
			}
		}
	}
}