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:

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.

  1. In a terminal window on your computer, make sure you’re in the release-manifest directory.

    Example

    $ cd spkinstall
    
  2. 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.

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

  4. Create the values.yaml file for OpenTelemetry(OTel) collector.

  5. (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

        1. Add exporters.prometheus parameter in the values.yaml file. Go to the next step.

      • Using FLO

        1. Open the CNEInstance custom resource.

        2. Go to the spec.advanced section.

        3. Add otel.prometheusNamespace to 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 readers section.

      readers:
        - pull:
            exporter:
              prometheus:
                host: 0.0.0.0
                port: 8888
      

      Note

      The below address field is deprecated.

      address: "0.0.0.0:8888"
      
  6. Add the following information to the values.yaml file.

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

Supplemental