Kubernetes
SUSE Observability
Getting Started with Open Telemetry on Kubernetes
Here is the setup we'll be creating, for an application that needs to be monitored:
The monitored application / workload running in cluster A
The Open Telemetry collector running near the observed application(s), so in cluster A, and sending the data to SUSE Observability
SUSE Observability running in cluster B, or SUSE Cloud Observability

The Open Telemetry collector
First we'll install the OTel (Open Telemetry) collector in cluster A. We configure it to:
Receive data from, potentially many, instrumented applications
Enrich collected data with Kubernetes attributes
Generate metrics for traces
Forward the data to SUSE Observability, including authentication using the API key
Next to that it will also retry sending data when there are connection problems.
Create the namespace and a secret for the API key
We'll install in the open-telemetry
namespace and use the receiver API key generated during installation (see here where to find it):
Configure and install the collector
We install the collector with a Helm chart provided by the Open Telemetry project. Make sure you have the Open Telemetry helm charts repository configured:
Create a otel-collector.yaml
values file for the Helm chart. Here is a good starting point for usage with SUSE Observability, replace <otlp-suse-observability-endpoint:port>
with your OTLP endpoint (see OTLP API for your endpoint) and insert the name for your Kubernetes cluster instead of <your-cluster-name>
:
Use the same cluster name as used for installing the SUSE Observability agent if you also use the SUSE Observability agent with the Kubernetes stackpack. Using a different cluster name will result in an empty traces perspective for Kubernetes components and will overall make correlating information much harder for SUSE Observability and your users.
Now install the collector, using the configuration file:
The collector offers a lot more configuration receivers, processors and exporters, for more details see our collector page. For production usage often large amounts of spans are generated and you will want to start setting up sampling.
Collect telemetry data from your application
The common way to collect telemetry data is to instrument your application using the Open Telemetry SDK's. We've documented some quick start guides for a few languages, but there are many more:
For other languages follow the documentation on opentelemetry.io and make sure to configure the SDK exporter to ship data to the collector you just installed by following these instructions.
View the results
Go to SUSE Observability and make sure the Open Telemetry Stackpack is installed (via the main menu -> Stackpacks).
After a short while and if your pods are getting some traffic you should be able to find them under their service name in the Open Telemetry -> services and service instances overviews. Traces will appear in the trace explorer and in the trace perspective for the service and service instance components. Span metrics and language specific metrics (if available) will become available in the metrics perspective for the components.
If you also have the Kubernetes stackpack installed the instrumented pods will also have the traces available in the trace perspective.
Next steps
You can add new charts to components, for example the service or service instance, for your application, by following our guide. It is also possible to create new monitors using the metrics and setup notifications to get notified when your application is not available or having performance issues.
More info
Last updated