OpenTelemetry(OTel) Collectors¶
Overview¶
The BIG-IP Next for Kubernetes (Host) OpenTelemetry(OTel) collectors provides a consistent way to receive, process, and export telemetry data - such as CPU, memory, disk, virtual server, and network interface usage from the Traffic Management Microkernel (TMM) Pods. The collectors integrate with third‑party data tools such as Prometheus and can send data to applications like Grafana to show Pod health.
This document provides guidance on installing and configuring the OpenTelemetry(OTel) collectors.
Install the OpenTelemetry(OTel) collector pod using Helm chart¶
Prerequisites¶
Before you set up the OpenTelemetry(OTel) collector pod, make sure you have:
Installed the SPK software.
Installed the SPK Cert Manager.
Procedures¶
You can install OpenTelemetry(OTel) collector through the Helm chart or F5 Lifecycle Operator (FLO).
Note
F5 Lifecycle Operator (FLO) installs automatically and does not require any manual steps. See Install BIG-IP Next for Kubernetes (Host) using FLO.
In a terminal window on your computer, make sure you’re in the release-manifest directory.
Example
$ cd spkinstall
Extract the OpenTelemetry(OTel) collector version.
Example
$ ls -1 tar | grep f5-stats_collector f5-stats_collector-1.0.21-0.0.6.tgz # version of stats-collector
Note
You must use the result to install the stats-collector.
Create SSL/TLS certificates to communicate with the third-party systems such as Prometheus. See Create SSL/TLS certificate
Note
You must create the certificates in the same namespace of OpenTelemetry(OTel) collector pod.
Create the
values.yamlfile for OpenTelemetry(OTel) collector.(Optional) Configure the OpenTelemetry(OTel) collector settings.
Set the Prometheus namespace.
Note
The default Prometheus namespace is removed from the default OpenTelemetry(OTel) setting. You must set the namespace if required.
Using Helm chart
Add
exporters.prometheusparameter in thevalues.yamlfile. Go to the next step.
Using FLO
Open the CNEInstance custom resource.
Go to the
spec.advancedsection.Add
otel.prometheusNamespaceto set the value.Example
apiVersion: k8s.f5.com/v1 kind: CNEInstance metadata: name: cneinstance-sample spec: advanced: otel: prometheusNamespace: "f5-tmm"
From 2.2, the Prometheus address field is added in the
readerssection.readers: - pull: exporter: prometheus: host: 0.0.0.0 port: 8888
Note
The below address field is deprecated.
address: "0.0.0.0:8888"
Add the following information to the
values.yamlfile.enabled: true # Uncomment the below parameters to use custom secret for imageCredentials # global: # imageCredentials: # name: f5ingress-regsecret # name of the secret image: repository: registry.com # By default the prometheus namespace is empty # Uncomment the below parameters to set a namespace within the OTeL configmap (for example: f5-tmm) # exporters: # prometheus: # namespace: f5-tmm
Install the stats collector using the below Helm command.
$ helm install stats-collector <version-of-stats-collector>.tgz \ -f values.yaml
Display of OpenTelemetry(OTel) data¶
When OpenTelemetry(OTel) is enabled, the system creates a Service object that receives OpenTelemetry Protocol(OTLP) gRPC data on TCP port 4317 and forwards it to the OpenTelemetry(OTel) collector Pod on the same port.
Example of OpenTelemetry(OTel) service
Name: otel-collector-svc
Namespace: spk-utilities
IP: 172.30.186.33
Port: otlp-grpc 4317/TCP
Endpoints: 10.128.0.89:4317
The OpenTelemetry(OTel) collector also exposes TCP port 9090 for Prometheus to scrape metrics. After the TMM, Observer, and OpenTelemetry(OTel) Pods start, data collectors such as Prometheus can begin reading statistics from the OpenTelemetry(OTel) collector on port 9090.
See Prometheus and Grafana for more information.
Feedback¶
Provide feedback to improve this document by emailing spkdocs@f5.com.