This page describes how to configure your OpenTelemetry Collector to send trace data to the Cisco AppDynamics Distribution of OpenTelemetry Collector.

Before You Begin

The configuration described on this page assumes that:

  • Your services are running in a supported Kubernetes® cluster. See Software Requirements.
  • You have installed Kubernetes and App Service Monitoring using Helm charts. See Install Kubernetes and App Service Monitoring.
  • Your services are instrumented with OpenTelemetry, using an agent or SDK.
  • You have deployed an OpenTelemetry Collector, which your services are sending trace data to.

Error rendering macro 'excerpt-include'

User 'null' does not have permission to view the page.

Prerequisites

Configure Your OpenTelemetry Collector

The following table lists the endpoint values you configure in the exporter section of the OpenTelemetry Collector YAML configuration, depending on whether you want to use a secure connection and the target protocol (HTTP or gRPC). The endpoints use the Collector service in the appdynamics namespace, created by the Kubernetes and App Service Monitoring Helm charts.

EndpointInsecureSecure
gRPChttp://appdynamics-otel-collector-service.appdynamics.svc.cluster.local:4317https://appdynamics-otel-collector-service.appdynamics.svc.cluster.local:4317
HTTPhttp://appdynamics-otel-collector-service.appdynamics.svc.cluster.local:4318https://appdynamics-otel-collector-service.appdynamics.svc.cluster.local:4318

To specify the protocol for the instrumentation agent, set the environment variable OTEL_EXPORTER_OTLP_PROTOCOL=<protocol>. Replace <protocol> with grpchttp/protobuf, and/or http/json. The selected transportation protocol should match the endpoint exposed by the Cisco AppDynamics Distribution of OpenTelemetry Collector. For example, gRPC should use the endpoint with port 4317 and HTTP should use the endpoint with port 4318.

In this OpenTelemetry Collector configuration example, the endpoint is configured to use an insecure connection and the gRPC protocol:

receivers:
  otlp:
    protocols:
      grpc:
      http:

processors:
  batch:

exporters:
  otlp:
    endpoint: http://appdynamics-otel-collector-service.appdynamics.svc.cluster.local:4317

extensions:
  health_check:
  pprof:
  zpages:

service:
  extensions: [health_check,pprof,zpages]
  pipelines:
    traces:
      receivers: [otlp]
      processors: [batch]
      exporters: [otlp]
    metrics:
      receivers: [otlp]
      processors: [batch]
      exporters: [otlp]
    logs:
      receivers: [otlp]
      processors: [batch]
      exporters: [otlp]
YML

For a secure connection, set the endpoint as shown:

- name: OTEL_EXPORTER_OTLP_PROTOCOL
  value: grpc          
- name: OTEL_EXPORTER_OTLP_ENDPOINT
  value: https://appdynamics-otel-collector-service.appdynamics.svc.cluster.local:4317 
CODE
- name: OTEL_EXPORTER_OTLP_PROTOCOL
  value: http/protobuf          
- name: OTEL_EXPORTER_OTLP_ENDPOINT 
  value: https://appdynamics-otel-collector-service.appdynamics.svc.cluster.local:4318  
CODE

For an insecure connection, set the endpoint as shown:

- name: OTEL_EXPORTER_OTLP_PROTOCOL
  value: grpc          
- name: OTEL_EXPORTER_OTLP_ENDPOINT
  value: http://appdynamics-otel-collector-service.appdynamics.svc.cluster.local:4317 
CODE
- name: OTEL_EXPORTER_OTLP_PROTOCOL
  value: http/protobuf          
- name: OTEL_EXPORTER_OTLP_ENDPOINT 
  value: http://appdynamics-otel-collector-service.appdynamics.svc.cluster.local:4318  
CODE

OpenTelemetry™ and Kubernetes® (as applicable) are trademarks of The Linux Foundation®.