OTEL Collectors

Overview

The Cloud-Native Network Functions (CNFs) Open Telemetry (OTEL) collectors gather real-time metrics and statistics from the CNFs Pods such as CPU, memory, and interface usage, as well as traffic processing events for virtual servers, protocol profiles, DoS profiles, DNS profiles and firewall rules. The OTEL collectors integrate with third-party software such as Prometheus and Grafana to store and visualize CNFs Pod performance metrics.

This document guides you through enabling and configuring the CNFs OTEL Collectors.

OTEL Pod and container

CNFs 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.

_images/spk_info.png 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 TMM statistics (tmstats) from the TMM Pod on TCP service port 4317. The Service then forwards the stats to the OTEL collector Pod on the same service port.

Example OTEL Service:

Name:              otel-collector-svc
Namespace:         cnf-gateway
IP:                172.30.186.33
Port:              otlp-grpc  4317/TCP
Endpoints:         10.128.0.89:4317

Fetching OTEL Data

Once the CNFs Controller, TMM and OTEL Pods become available, data collectors such as Prometheus can begin fetching statistics on TCP service port 9090.

_images/spk_info.png Note: The full list of OTEL statistics can be reviewed here.

OTEL Parameters

The table below describes the available f5-stats_collector parameters.

_images/spk_warn.png 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:

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.

_images/spk_info.png Note: The OTEL ollectors are disabled by default.

  1. Add the Helm parameters below to the BIG-IP Controller’s Helm values file, and modify the image.repository parameter for your internal image registry:

    f5-stats_collector:
      enabled: true
      stats_collector:
        image:
          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"
    
  2. Continue to the BIG-IP Controller installation guide to configure and install the CNFs Pods.

  3. Once BIG-IP Controller has been installed, continue to the Pod Status section.

Pod Status

Use these steps to obtain the status of the OTEL Pods:

  1. Verify the TMM otel-collector Pod is Running:

    kubectlget pods -n cnfs-ingress | 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 cnfs-ingress | grep f5ingress
    

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

    f5ingress-f5ingress-5cbc875489-ngt9g   4/4     Running   0
    
  3. Data collectors can now fetch metrics from the Controller and TMM on service port 9090 in the cnfs-ingress Project.

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 cnfdocs@f5.com.

Supplemental