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.
Enable OTel pipeline
The OTel pipeline is disabled by default. 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 ServiceMonitor and PodMonitor CRDs
# are already managed by another chart (for example kube-prometheus-stack) or
# if you want to install them manually.
enabled: true
This will also enable the Prometheus / OpenMetrics scraping and K8s resource collector components.
Enabling/disabling components
You can enable or disable individual sub-pipelines. Each components has its own enabled toggle:
otel:
enabled: true
telemetryGateway:
enabled: true # accept 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.