OTEL Collectors

Overview

The BIG-IP Next for Kubernetes 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.

OTEL pod and container

BIG-IP Next for Kubernetes 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:         f5-utils
IP:                172.30.186.33
Port:              otlp-grpc  4317/TCP
Endpoints:         10.128.0.89:4317

Fetching OTEL Data

Once the BIG-IP Next for Kubernetes 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.

Procedures

Pod Status

Use these steps to obtain the OTEL pod status:

  1. Verify the otel-collector pod is Running:

    kubectl get pods -n f5-utils | grep otel
    

    In this example, the OTEL pod is Running.

    otel-collector-6d558c946b-8hvz5    1/1    Running   
    
  2. Verify the F5Ingress otel-collector container is Running:

    kubectl get pods -n f5-utils | grep f5ingress
    

    In this example, all 8/8 containers are Running.

    spkinstance-sample-f5ingress-5d7bf7749-wk69x   8/8     Running   0 
    
  3. Verify the otel-collector container:

    kubectl -n f5-utils get pod -o="custom-columns=NAME:.metadata.name,INIT-CONTAINERS:.spec.initContainers[*].name,CONTAINERS:.spec.containers[*].name"
    
    NAME                                           INIT-CONTAINERS        CONTAINER
    otel-collector-59ddd8bc8c-pkkvg                <none>                 otel-collector
    
    spkinstance-sample-f5ingress-5d7bf7749-wk69x   <none>                 spkinstance-sample-f5ingress,f5-tmm-pod-manager,f5-k8s-event-subscriber,f5-l4-controller,f5-l7-controller,fluentbit,otel-collector,f5-lic-helper
    
  4. Data collectors can now fetch metrics from the Controller and TMM on service port 9090

SSL/TLS Certificates

To create SSL/TLS certificates for communication with 3rd party such as Prometheus, click here

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.

Supplemental