OpenTelemetry
OpenTelemetry is an industry standard for collecting telemetry data from your applications. It provides a set of APIs, libraries, agents, and instrumentation to capture distributed traces and metrics from your applications.
OpenTelemetry Operator
Section titled “OpenTelemetry Operator”FLOW platform uses the Kubernetes OpenTelemetry Operator to deploy the OpenTelemetry Collector and the OpenTelemetry Instrumentation.
OpenTelemetry Instrumentation is automatically deployed to your namespace. It offers two options to configure the OpenTelemetry Instrumentation:
Collector
Section titled “Collector”The OpenTelemetry Collector is responsible for receiving, processing, and exporting telemetry data. It can receive data from multiple sources, process it, and export it to multiple destinations. FLOW provides a managed OpenTelemetry Collector that is automatically deployed on the platform.
FLOW provides two types of collectors:
- Generic
- Splunk - as a sidecar, see OpenTelemetry with Splunk
Instrumentation
Section titled “Instrumentation”We offer two Instrumentation configurations:
- http-protobuf
- grpc
They inject the SDK and/or environment variables into your application, to send telemetry data to the OpenTelemetry Collector either via the http-protobuf protocol or the gRPC protocol. Depending on the support in the SDK, you can choose the appropriate instrumentation.
Instrumentation with the OpenTelemetry SDK
Section titled “Instrumentation with the OpenTelemetry SDK”When instrumenting with the SDK, you need to know which SDK to use. This depends on the programming language of your application. The OpenTelemetry SDK is available for the following languages:
- java
- nodejs
- python
- dotnet
- go
Add annotation instrumentation.opentelemetry.io/inject-[name-of-sdk]: [name-of-instrumentation] to your pod template.
Inject with environment variables only
Section titled “Inject with environment variables only”If your applications is already instrumented with the OpenTelemetry SDK, you can inject the OpenTelemetry environment variables only.
Service Name
Section titled “Service Name”In order to recognize the service in the OpenTelemetry Collector, you need to set the service name as an environment variable in your application. We recommend you append the logical service name with the name of the namespace.
