Not a customer? Click the 'Start a free trial' link to begin a 30-day SaaS trial of our product and to join our community.
Existing Cisco AppDynamics customers should click the 'Sign In' button to authenticate to access the community
on 01-27-2025 09:53 AM
Since its launch in May 2019, the OpenTelemetry (OTel) Project has become one of the most popular open-source projects after Kubernetes®. For newcomers to the observability domain, OpenTelemetry™ provides a standard way to collect telemetry data (metric, logs and traces) from software applications and send it to one or more backends to analyze application performance. The backends can be open source (Jaeger ,Zipkin etc.), commercial (such as Splunk AppDynamics, Splunk Observability) or both.
To enable faster adoption and showcase instrumentation best practices, the OTel community has built a demo application, OpenTelemetry Community Demo. In this blog, I'll show how to configure the OpenTelemetry demo to send Traces data to Splunk AppDynamics for further analysis.
Splunk AppDynamics provides full stack observability of hybrid and on-prem applications and their impact on business performance. In addition to the proprietary ingestion format, AppDynamics also supports OpenTelemetry trace ingestion from various language agents (Java, dotnet, python, golang etc.) giving customers more options in how they want to ingest telemetry data.
OpenTelemetry Community Demo is a simulated version of an eCommerce store selling astronomy equipment. The app consists of 14+ microservices communicating with each other via HTTP or grpc. The microservices are built using a variety of programming languages (Java, Javascript, C#, etc.) and instrumented using OpenTelemetry (auto, manual, or both). The diagram below shows the data flow and programming languages used.
(Image credit: OpenTelemetry Demo contributors.)
In addition to the microservices shown here, the demo app also comes with supporting components such as OpenTelemetry Collector, Grafana, Prometheus, and Jaeger to export and visualize traces, metrics, and so on. The OpenTelemetry Collector is highly configurable. Once exporters for various backends are defined and enabled in the service pipeline, the Collector can be set up to send telemetry data to multiple backends simultaneously. The diagram below shows the OTel demo with supporting components, as well as a dotted line to Splunk AppDynamics, which we will configure in the next section.
processors:
resource:
attributes:
- key: appdynamics.controller.account
action: upsert
value: "from AppD account url > Otel > Configuration > Processor section"
- key: appdynamics.controller.host
action: upsert
value: "from AppD account url > Otel > Configuration > Processor section"
- key: appdynamics.controller.port
action: upsert
value: 443
- key: service.namespace
action: insert
value: otel-demo-local-mac
batch:
timeout: 30s
send_batch_size: 90
exporters:
otlphttp/appdynamics:
endpoint: "from AppD account url > Otel > Configuration > Exporter section"
headers: {"x-api-key": "from AppD account url > Otel > Configuration > API Key"}
service:
pipelines:
traces:
receivers: [otlp]
processors: [transform, resource, batch]
exporters: [otlp, spanmetrics, otlphttp/appdynamics, debug]
The OpenTelemetry Community Demo application is a valuable and safe tool for learning about OpenTelemetry and instrumentation best practices. In this blog, we showed how to configure the demo app to send telemetry data to Splunk AppDynamics. We also explored some key Splunk AppDynamics features such as FlowMap, APM metrics, and an observed increase in error rates via a fault-injection scenario.
Interested in trying this workflow to learn more about OpenTelemetry and Splunk AppDynamics? Go over Splunk AppDynamics OpenTelemetry documentation and Sign up for a free trial of Splunk AppDynamics. Then, clone and deploy the opentelemetry-demo repo and send its telemetry data to Splunk AppDynamics to gain valuable insights.
Thank you! Your submission has been received!
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form