From 5adbbb908eb77177294760eba909a46d03e95848 Mon Sep 17 00:00:00 2001 From: Sunil Yadav Date: Wed, 6 May 2026 18:40:27 +0000 Subject: [PATCH] Emit multiline telemetry from DaemonSet heartbeat Adds multilineEnabled and multilineLanguages dimensions to the ContainerLogDaemonSetHeartbeatEvent in source/plugins/go/src/telemetry.go. Previously the multiline telemetry was emitted only from the cAdvisor heartbeat in either CAdvisorMetricsAPIClient.rb (requires fluentd) or cadvisor.go (requires AZMON_RESOURCE_OPTIMIZATION_ENABLED=true). In LOGS_AND_EVENTS_ONLY mode neither emitter runs, so the multiline configuration was never reported in telemetry for that profile. The DaemonSet heartbeat is the only telemetry path that always runs in this mode (it already carries the logsAndEventsOnly dimension), making it the right place to surface the multiline configuration. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- source/plugins/go/src/telemetry.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/source/plugins/go/src/telemetry.go b/source/plugins/go/src/telemetry.go index 7c18c9f53..570fbd200 100644 --- a/source/plugins/go/src/telemetry.go +++ b/source/plugins/go/src/telemetry.go @@ -295,6 +295,15 @@ func SendContainerLogPluginMetrics(telemetryPushIntervalProperty string) { telemetryDimensions["logsAndEventsOnly"] = logsAndEventsOnly } + azmonMultilineEnabled := os.Getenv("AZMON_MULTILINE_ENABLED") + if azmonMultilineEnabled != "" { + telemetryDimensions["multilineEnabled"] = azmonMultilineEnabled + azmonMultilineLanguages := os.Getenv("AZMON_MULTILINE_LANGUAGES") + if azmonMultilineLanguages != "" { + telemetryDimensions["multilineLanguages"] = azmonMultilineLanguages + } + } + isHighLogScaleMode := os.Getenv("IS_HIGH_LOG_SCALE_MODE") if isHighLogScaleMode != "" { telemetryDimensions["isHighLogScaleMode"] = isHighLogScaleMode