OTEL Collectors¶
Overview¶
The Service Proxy for Kubernetes (SPK) OpenTelemetry (OTEL) collectors gather metrics and statistics such as CPU, memory, disk, virtual server, and network interface usage from the Controller and Traffic Management Microkernel (TMM) Pods. The OTEL collectors integrate with third-party data collection software such as Prometheus to visualize Pod health using applications such as Grafana.
This document guides you through enabling and configuring the SPK OTEL collectors.
OTEL Pod and container¶
SPK implements two OTEL Collectors; One collector runs as a standalone Pod, gathering metrics and statistics from TMM, and the other collector runs as a sidecar in the Controller Pod, collecting host metrics and statistics directly from the Controller.
Note: The TMM collector is implemented as a separate Pod to optimize 5G application performance.
TMM OTEL Service¶
With OTEL enabled, a new Service object is created to receive data from the TMM Pod on TCP service port 4317, and forward the data to the OTEL collector Pod on the same service port.
Example 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
Fetching OTEL Data¶
Once the SPK Controller, TMM and OTEL Pods become available, data collectors such as Prometheus can begin fetching statistics on TCP service port 9090.
Note: The full list of OTEL statistics can be reviewed here.
OTEL Parameters¶
The table below describes the available f5-stats_collector
parameters.
Important: Modifying any OTEL parameters other than those listed below, may compromise the security of the Kubernetes infrastructure.
Parameter | Description |
---|---|
enabled |
Enables the OTEL collection Pods: true or false (default). |
nodeSelector |
The node selector for pod assignment for the OTEL pods. |
tolerations |
The tolerations of the OTEL pods. |
affinity |
The affinity of the OTEL pods. |
image |
The local repository IP address or hostname. |
Requirements¶
Prior to configuring OTEL, ensure you have:
- Installed the SPK software.
- Installed the SPK Cert Manager.
Procedures¶
Helm parameters¶
The following steps detail the Helm parameters required to enable the OTEL collection Pod, and how to verify the OTEL collectors status.
Note: The OTEL ollectors are disabled by default.
Add the Helm parameters below to the SPK Controller’s Helm values file, and modify the
image.repository
parameter for your internal image registry:f5-stats_collector: enabled: true image: name: opentelemetry-collector repository: "local.registry.com" stats_collector: image: name: opentelemetry-collector repository: "local.registry.com" f5-toda-logging: enabled: true type: stdout fluentd: host: "localhost" tmstats: enabled: true config: image: repository: "local.registry.com" sidecar: image: repository: "local.registry.com"
Continue to the SPK Controller guide.
Pod Status¶
Use these steps to obtain the OTEL Pod status:
Verify the TMM otel-collector Pod is Running:
oc get pods -n spk-ingress | grep otel
In this example, the OTEL Pod is Running.
otel-collector-6d558c946b-8hvz5 1/1 Running
Verify the F5Ingress otel-collector container is Running:
kubectl get pods -n spk-ingress | grep f5ingress
In this example, all 4/4 containers are Running.
f5ingress-f5ingress-5cbc875489-ngt9g 4/4 Running 0
Data collectors can now fetch metrics from the Controller and TMM on service port 9090 in the spk-ingress Project.
Next step¶
The Performance Visualization guide provides a very basic set of steps for integrating the OTEL collectors with Prometheus and Grafana.
Feedback¶
Provide feedback to improve this document by emailing spkdocs@f5.com.