OpenTelemetry pipeline
Overview
The SUSE Observability Agent ships with OpenTelemetry Collector based components that supplement the existing agent components. They cover push-based application telemetry, Prometheus/OpenMetrics scraping, and Kubernetes Custom Resource topology collection without requiring a separately managed collector.
The OTel support in the agent is split into independently toggleable components:
-
Telemetry gateway (
otel.telemetryGateway) — receives metrics and traces pushed over OTLP from application-embedded OpenTelemetry SDKs and forwards them to SUSE Observability. Point your SDKs at thesuse-observability-agent-otel-telemetry-gatewayservice in the agent’s namespace on port4317(gRPC) or4318(HTTP). -
Prometheus / OpenMetrics scraping (
otel.prometheusScraping) — discoversServiceMonitorandPodMonitorCustom Resources, scrapes the targets they describe, and ships the resulting metrics over OTLP. This track is metrics-only; use it for workloads that expose a Prometheus / OpenMetrics endpoint but are not instrumented with an OTel SDK. See Scraping OpenMetrics with ServiceMonitor and PodMonitor for the full how-to. -
K8s resource collector (
otel.k8sResourceCollector) — watches Custom Resource Definitions (CRDs), selected Custom Resource instances, and optional additional Kubernetes resources, then forwards topology logs to SUSE Observability. See K8s resource collector for the full configuration guide.
Default state
The OTel pipeline is disabled by default in the current release. To turn it on, set the master switch in your agent Helm values:
otel:
enabled: true
prometheusScraping:
monitorCrds:
# Leave at the default, false, if the SerivceMonitor and PodMonitor CRDs
# are already managed by another chart (for example kube-prometheus-stack) or
# if you want to install them manually.
enabled: true
|
With the official release of stackpacks 2, the default will flip to |
Opting out (after the default flips)
Once otel.enabled defaults to true, you can opt out at two levels:
-
Disable the entire OTel pipeline (no collector, no telemetry gateway, no scraper):
otel: enabled: false -
Keep OTel enabled but disable individual sub-pipelines. Each track has its own
enabledtoggle:otel: enabled: true telemetryGateway: enabled: false # stop accepting OTLP push from SDKs prometheusScraping: enabled: false # stop scraping ServiceMonitor / PodMonitor targets k8sResourceCollector: enabled: false # stop collecting CRD/CR topology
Resource impact
When enabled, the OTel support can add up to four workloads, depending on which components are turned on:
-
A telemetry gateway OpenTelemetry Collector (when
otel.telemetryGateway.enabled=true) that terminates the OTLP push receiver and forwards metrics and traces to SUSE Observability. -
A scraper OpenTelemetry Collector (when
otel.prometheusScraping.enabled=true) that scrapes the targets selected by the Target Allocator. -
A Target Allocator (when
otel.prometheusScraping.enabled=true) that watchesServiceMonitor/PodMonitorresources and distributes scrape targets across the scraper collectors. -
A k8s resource collector OpenTelemetry Collector (when
otel.k8sResourceCollector.enabled=true) that discovers CRDs and selected Custom Resources.
All workloads have conservative CPU and memory requests / limits that can be tuned in the agent Helm values under otel.telemetryGateway, otel.prometheusScraping.collector, otel.prometheusScraping.targetAllocator, and otel.k8sResourceCollector. Refer to the agent Helm chart values.yaml for the full set of knobs.