OpenTelemetry Tracing

Several MATRIXX components support distributed tracing using the Cloud Native Computing Foundation (CNCF) standard for collecting trace information, OpenTelemetry.

Distributed traces record the complete paths that requests take as they propagate through multi-service architectures. Multiple spans are connected to create a trace. This information can then be queried to find out the health of the system, individual components, or individual requests.

The MATRIXX components that support OpenTelemetry are:
  • SBA Gateway (CHF)
  • Kafka CDR Consumer
  • External Diameter Gateway
  • RS Gateway
OpenTelemetry Tracing Process illustrates the OpenTelemetry tracing process for MATRIXX components.
Figure 1. OpenTelemetry Tracing Process
OpenTelemetry Environment Variables describes the OpenTelemetry environment variables that can be used to configure MATRIXX components:
Table 1. OpenTelemetry Environment Variables
Environment Variable Description
OTEL_JAVAAGENT_ENABLED To configure this value in the MATRIXX Helm chart, set global.tracing.enabled to true; the default value is false. When global.tracing.enabled is true, this environment variable is also set to true.
OTEL_SERVICE_NAME When global.tracing.enabled is set to true, specifies the OpenTelemetry service name for the component. Valid values are:
  • chf-proxy
  • kafka-cdr-consumer
  • edgw
  • rsgateway
OTEL_TRACES_SAMPLER The default for this environment variable is parentbased_always_on. For a list of other options for this variable, refer to the OpenTelemetry documentation.
OTEL_TRACES_SAMPLER_ARG This is required when OTEL_TRACES_SAMPLER is set to traceidratio or parentbased_traceidratio. For more information, refer to the OpenTelemetry documentation.
OTEL_TRACES_EXPORTER The default for this environment variable is otlp. For a list of other options for this variable, refer to the OpenTelemetry documentation.
OTEL_EXPORTER_OTLP_ENDPOINT Configure the endpoint for OpenTelemetry. Alternately, configure the global.tracing.opentelemetry.endpoint.(httpSchema|host|grpcPort] Helm chart property.
Kafka CDR Consumer and External Diameter Gateway use their own Helm values files. The configuration parameters list for these two components follows, with service names kafka-cdr-consumer and edgw, respectively:
   - name: "OTEL_SDK_DISABLED"
              value: "false"
            - name: "OTEL_SERVICE_NAME"
              value: {{ .Values.gateway.opentelemetry.serviceName }}
            - name: "OTEL_EXPORTER_OTLP_ENDPOINT"
              value: {{ .Values.gateway.opentelemetry.endPointUrl }}
            - name: "OTEL_RESOURCE_ATTRIBUTES"
              value: "{{ .Values.gateway.opentelemetry.resourceAttributes }}"
            - name: "OTEL_PROPAGATORS"
              value: {{ .Values.gateway.opentelemetry.propagators }}
            - name: "OTEL_TRACES_EXPORTER"
              value: {{ .Values.gateway.opentelemetry.tracesExporter }}
            - name: "OTEL_TRACES_SAMPLER"
              value: {{ .Values.gateway.opentelemetry.tracesSampler }}

For more information about configuring MATRIXX components for distributed tracing, see the discussion about distributed tracing configuration in MATRIXX Configuration.

For more information about environment variables, see the discussion about environment variables and command arguments in MATRIXX Installation and Upgrade.