Enable OpenTelemetry in the Agent

Agent installation

You must install the SUSE® Observability Agent before enabling the OpenTelemetry pipeline by following the Agent quick start guide

Overview

The SUSE® Observability Agent includes optional OpenTelemetry Collector-based components that supplement its existing collection capabilities - a telemetry gateway for application metrics and traces sent over OTLP, Prometheus/OpenMetrics scraping, and Kubernetes resource topology collection. These components are disabled by default and can be enabled through the Agent Helm values; they cover these use cases without requiring a separately managed collector.

The OTel support in the agent is split into independent components that can be toggled:

  • 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 the suse-observability-agent-otel-telemetry-gateway service in the agent’s namespace on port 4317 (gRPC) or 4318 (HTTP).

  • Prometheus / OpenMetrics scraping (otel.prometheusScraping) — discovers ServiceMonitor and PodMonitor Custom 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.

For use cases that require a separately managed collector, see OpenTelemetry deployment options.

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 also enables the Prometheus / OpenMetrics scraping and K8s resource collector components.

Enabling or disabling components

You can enable or disable individual components in your Agent Helm values. Each component 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 OpenTelemetry components 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 watches ServiceMonitor / PodMonitor resources 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.

Workload CPU and memory requests/limits 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 available settings.