https://grafana.com/blog/2024/06/18/translate-datadog-metrics-into-otlp-with-the-opentelemetry-collector-and-grafana-alloy/ Path: Copied! * Products Open source Solutions Learn Docs Company * Downloads Contact us Sign in Create free account Contact us Products All Products Core LGTM Stack Logs powered by Grafana Loki Grafana for visualization Traces powered by Grafana Tempo Metrics powered by Grafana Mimir and Prometheus extend observability Performance & load testing powered by Grafana k6 Continuous profiling powered by Grafana Pyroscope Plugins Connect Grafana to data sources, apps, and more end-to-end solutions Application Observability Monitor application performance Frontend Observability Gain real user monitoring insights Incident Response & Management with Grafana Alerting, Grafana Incident, Grafana OnCall, and Grafana SLO Synthetic Monitoring Powered by Grafana k6 Deploy The Stack Grafana Cloud Fully managed Grafana Enterprise Self-managed Pricing Hint: It starts at FREE Open Source All Open Source Grafana Loki Multi-tenant log aggregation system Grafana Query, visualize, and alert on data Grafana Tempo High-scale distributed tracing backend Grafana Mimir Scalable and performant metrics backend Grafana Pyroscope Scalable continuous profiling backend Grafana Beyla eBPF auto-instrumentation Grafana Faro Frontend application observability web SDK Grafana Alloy OpenTelemetry Collector distribution with Prometheus pipelines Grafana OnCall On-call management Grafana k6 Load testing for engineering teams Prometheus Monitor Kubernetes and cloud native OpenTelemetry Instrument and collect telemetry data Graphite Scalable monitoring for time series data All Community resources Dashboard templates Try out and share prebuilt visualizations Prometheus exporters Get your metrics into Prometheus quickly Solutions All end-to-end solutions Opinionated solutions that help you get there easier and faster Kubernetes Monitoring Get K8s health, performance, and cost monitoring from cluster to container Application Observability Monitor application performance Frontend Observability Gain real user monitoring insights Incident Response & Management Detect and respond to incidents with a simplified workflow monitor infrastructure Out-of-the-box KPIs, dashboards, and alerts for observability Linux Windows Docker Postgres MySQL AWS Kafka Jenkins RabbitMQ MongoDB All monitoring and visualization solutions visualize any data Instantly connect all your data sources to Grafana MongoDB AppDynamics Oracle GitLab Jira Salesforce Splunk Datadog New Relic Snowflake All monitoring and visualization solutions Learn All Learn Stay up to date ObservabilityCON Annual flagship observability conference New ObservabilityCON on the Road Observability roadshow series Story of Grafana 10 years of Grafana Observability Survey 2024 Key findings and results New Blog News, releases, cool stories, and more Events Upcoming in-person and virtual events Success stories By use case, product, and industry Technical learning Documentation All the docs Webinars and videos Demos, webinars, and feature tours Tutorials Step-by-step guides Workshops Free, in-person or online Writers' Toolkit Contribute to technical documentation provided by Grafana Labs Plugin development Visit the Grafana developer portal for tools and resources for extending Grafana with plugins. new Join the community Community Join the Grafana community new Community forums Ask the community for help Community Slack Real-time engagement Grafana Champions Contribute to the community new Community organizers Host local meetups new Docs All Docs Grafana Grafana Mimir Grafana Tempo Grafana Loki Grafana Pyroscope Grafana Alloy Grafana Beyla Grafana Faro Grafana k6 Prometheus Writers' Toolkit Grafana Cloud Grafana OnCall Grafana Incident Grafana SLO Grafana Alerting Grafana Machine Learning Application Observability Grafana Enterprise Grafana Enterprise Logs Grafana Enterprise Metrics Grafana Enterprise Traces Grafana plugins Community plugins Visit documentation Get started Get started with Grafana Build your first dashboard Get started with Grafana Cloud What's new / Release notes Grafana: 11.0 Grafana Loki: 3.0 Grafana Mimir: 2.9 Grafana Pyroscope: 1.6 Grafana Tempo: 2.5 Company All Company Our team Careers We're hiring Events Partnerships Newsroom Contact us Merch Help build the future of open source observability software Open positions Check out the open source projects we support Downloads Sign in Core LGTM Stack Logs powered by Grafana Loki Grafana for visualization Traces powered by Grafana Tempo Metrics powered by Grafana Mimir and Prometheus extend observability Performance & load testing powered by Grafana k6 Continuous profiling powered by Grafana Pyroscope Plugins Connect Grafana to data sources, apps, and more end-to-end solutions Application Observability Monitor application performance Frontend Observability Gain real user monitoring insights Incident Response & Management with Grafana Alerting, Grafana Incident, Grafana OnCall, and Grafana SLO Synthetic Monitoring Powered by Grafana k6 Deploy The Stack Grafana Cloud Fully managed Grafana Enterprise Self-managed Pricing Hint: It starts at FREE Grafana Cloud Free forever plan (Surprise: it's actually useful) * Grafana, of course * 14 day retention * 10k series Prometheus metrics * 500 VUh k6 testing * 50 GB logs, traces, and profiles * 50k frontend sessions * 2232 app o11y host hours * and more cool stuff Create free account No credit card needed, ever. Grafana Loki Multi-tenant log aggregation system Grafana Query, visualize, and alert on data Grafana Tempo High-scale distributed tracing backend Grafana Mimir Scalable and performant metrics backend Grafana Pyroscope Scalable continuous profiling backend Grafana Beyla eBPF auto-instrumentation Grafana Faro Frontend application observability web SDK Grafana Alloy OpenTelemetry Collector distribution with Prometheus pipelines Grafana OnCall On-call management Grafana k6 Load testing for engineering teams Prometheus Monitor Kubernetes and cloud native OpenTelemetry Instrument and collect telemetry data Graphite Scalable monitoring for time series data All Community resources Dashboard templates Try out and share prebuilt visualizations Prometheus exporters Get your metrics into Prometheus quickly end-to-end solutions Opinionated solutions that help you get there easier and faster Kubernetes Monitoring Get K8s health, performance, and cost monitoring from cluster to container Application Observability Monitor application performance Frontend Observability Gain real user monitoring insights Incident Response & Management Detect and respond to incidents with a simplified workflow monitor infrastructure Out-of-the-box KPIs, dashboards, and alerts for observability Linux Windows Docker Postgres MySQL AWS Kafka Jenkins RabbitMQ MongoDB visualize any data Instantly connect all your data sources to Grafana MongoDB AppDynamics Oracle GitLab Jira Salesforce Splunk Datadog New Relic Snowflake All monitoring and visualization solutions Stay up to date ObservabilityCON Annual flagship observability conference New ObservabilityCON on the Road Observability roadshow series Story of Grafana 10 years of Grafana Observability Survey 2024 Key findings and results New Blog News, releases, cool stories, and more Events Upcoming in-person and virtual events Success stories By use case, product, and industry Technical learning Documentation All the docs Webinars and videos Demos, webinars, and feature tours Tutorials Step-by-step guides Workshops Free, in-person or online Writers' Toolkit Contribute to technical documentation provided by Grafana Labs Plugin development Visit the Grafana developer portal for tools and resources for extending Grafana with plugins. new Join the community Community Join the Grafana community new Community forums Ask the community for help Community Slack Real-time engagement Grafana Champions Contribute to the community new Community organizers Host local meetups new Featured Getting started with the Grafana LGTM Stack We'll demo how to get started using the LGTM Stack: Loki for logs, Grafana for visualization, Tempo for traces, and Mimir for metrics. Watch now - Open source Grafana Grafana Mimir Grafana Tempo Grafana Loki Grafana Pyroscope Grafana Alloy Grafana Beyla Grafana Faro Grafana k6 Prometheus Writers' Toolkit Cloud Grafana Cloud Grafana OnCall Grafana Incident Grafana SLO Grafana Alerting Grafana Machine Learning Application Observability Enterprise Grafana Enterprise Grafana Enterprise Logs Grafana Enterprise Metrics Grafana Enterprise Traces Grafana plugins Community plugins Visit documentation Get started Get started with Grafana Build your first dashboard Get started with Grafana Cloud What's new / Release notes Grafana: 11.0 Grafana Loki: 3.0 Grafana Mimir: 2.9 Grafana Pyroscope: 1.6 Grafana Tempo: 2.5 Our team Careers We're hiring Events Partnerships Newsroom Contact us Merch Grot cannot remember your choice unless you click the consent notice at the bottom. Site search Ask Grot - AI Beta (what could go wrong?) [ ] I am Grot. Ask me anything Grot good Grot bad Feedback I'm a beta, not like one of those pretty fighting fish, but like an early test version. So, our vampires, I mean lawyers want you to know that I may get answers wrong. - Go back Feedback Write a short description about your experience with Grot, our AI Beta. Rate your experience (required) Comments (required) [ ] Send Sending... Sent Thank you! Your message has been received! [ ] Blog * All * Community * Culture * Engineering * News * Release [ ] Blog Menu [ ] * All * Community * Culture * Engineering * News * Release Translate Datadog metrics into OTLP with the OpenTelemetry Collector and Grafana Alloy Carrie Edwards Carrie Edwards * 18 Jun, 2024 * 5 min --------------------------------------------------------------------- Today, we are excited to announce that we are releasing new code for the OpenTelemetry Datadog receiver as open source. This code allows users to translate Datadog metric formats into native OTLP format. These metrics can then be sent to any OpenTelemetry-compatible metrics system, whether it's Prometheus, Grafana Mimir, or another backend database. A core value at Grafana Labs is embracing the "big tent" philosophy, demonstrated in the past when we stepped up as reviewers and code co-owners of the Datadog receiver for traces proposed by the OTel community, or when we built the Loki receiver. We believe in empowering our users to make their own choices in their observability strategy. We prioritize interoperability and reducing vendor lock-in, and we are big believers in the value of open source. Our code for the OpenTelemetry Datadog receiver started as a project to support the migration of a large customer. In the spirit of getting working code into as many hands as soon as possible, we have made it available as of today in Grafana Alloy, our distribution of the OpenTelemetry Collector that uniquely provides native pipelines for both OpenTelemetry and Prometheus formats. Based on this codebase, we have submitted the first PR to OpenTelemetry and will work through normal channels to get all of our work merged. As we expect this code to change based on community review and feedback, this feature is marked as experimental in Grafana Alloy. Once our code has been merged into OpenTelemetry's upstream main branch, we will update and release it as stable within Grafana Alloy as well. Translate Datadog metrics to OTLP: how it works Editor's note: Datadog, Prometheus, and OpenTelemetry use different terminology for metric types. In this blog, we are using the OpenTelemetry terminology, unless otherwise noted. Chart of how Datadog metrics translates to OTLP format Datadog's official documentation provides thorough information about their metric types: Count, Gauge, Rate, Histogram and Distribution. The process of translating Count, Gauge, and Rate metric types was relatively straightforward, as each of these can be mapped fairly directly to an OpenTelemetry metric format. Datadog Gauge metrics can be mapped to OpenTelemetry Gauge metrics, and Count and Rate metrics can be mapped to OpenTelemetry Sum metrics (with an adjustment to the value for Rate metrics to factor in the interval). The Datadog Distribution metric type can most closely be mapped to OpenTelemetry's Exponential Histogram metric type. This was a more challenging translation, due to differences in how the bucket boundaries are defined in the two systems. A best-effort translation was implemented to minimize loss of accuracy in the resulting Exponential Histogram. More details about the technical implementations will be featured in a future blog post. From Datadog metrics to Prometheus metrics Once you enable the Datadog receiver, the collector will effectively be working with OpenTelemetry metrics coming from your Datadog-instrumented applications. You could choose from a wide range of collector exporters to write those metrics to specific backends. However, our recommendation is that you use the default OTLP exporter to make your pipeline as OTel native as possible. It is important to note that the OpenTelemetry specification defines two different temporalities. If you intend to write to Prometheus, Mimir OSS, or Grafana Cloud, a processor is required to convert between these temporalities. For such use cases, we have built and contributed an open source processor, known as the deltatocumulative processor. Once OTLP metrics come out of the Datadog receiver and pass through this processor, they're ready for export via the OTLP HTTP exporter to Prometheus's native OTLP endpoint or other systems, such as Grafana Cloud. We plan to publish technical deep dive blogs on the deltatocumulative processor in the future. How to get started translating Datadog metrics to OTLP We expect that the upstream review process will take a few weeks as we coordinate with the OpenTelemetry community. At the same time, we want to enable you to try this out today, so we have included the receiver and the processor in the Grafana Alloy v1.2.0 release candidate. Architecture of OpenTelemetry Datadog receiver used in Grafana Alloy configuration Here's an Alloy configuration example: Copy code to clipboard Copy otelcol.processor.deltatocumulative "example" { max_stale = "5m" max_streams = 10000 output { metrics = [otelcol.processor.batch.example.input] } } otelcol.processor.batch "example" { output { metrics = [otelcol.exporter.otlp.default.input] } } otelcol.receiver.datadog "example" { endpoint = "localhost:4444" output { metrics = [otelcol.processor.deltatocumulative.example.input] } } How to configure Datadog Agent to send data to Alloy You can set up your Datadog Agent to forward Datadog metrics simultaneously to Alloy and Datadog. We recommend this approach for current Datadog users who would like to try this out. Add the following environment variable to your datadog-agent installation where port is the previously configured port for the Datadog receiver. Copy code to clipboard Copy DD_ADDITIONAL_ENDPOINTS='{"http://:": ["grafana-labs"]}' You can also set up your Datadog Agent to forward all your metrics to Alloy by updating the Datadog URL either in the configuration yaml: Copy code to clipboard Copy dd_url: http://: Or by environment variable: Copy code to clipboard Copy DD_DD_URL=http://: For a step-by-step guide, check out our Alloy documentation. Tell us what you think! As always, community feedback is welcome and appreciated! Please file any issues you find with the receiver in the upstream opentelemetry-collector-contrib repository in GitHub. In addition to this new solution for Datadog metrics ingestion, Grafana Labs can help customers automate the migration of their dashboards, alerts, and SLOs from Datadog to Grafana Cloud. These migrations are led by our dedicated Professional Services team and can vastly shorten the amount of time needed to move an organization with a large investment in Datadog to Grafana Cloud. To learn more, reach out to customer support. Grafana Cloud is the easiest way to get started with metrics, logs, traces, dashboards, and more. We have a generous forever-free tier and plans for every use case. Sign up for free now! Tags OpenTelemetry Prometheus Mimir On this page * Translate Datadog metrics to OTLP: how it works * From Datadog metrics to Prometheus metrics * How to get started translating Datadog metrics to OTLP * How to configure Datadog Agent to send data to Alloy * Tell us what you think! Scroll for more Related content Marylia Gutierrez * 17 Jun 2024 * 9 min read How to use OpenTelemetry resource attributes and Grafana Cloud Application Observability to... In this step-by-step post, learn how to collect OpenTelemetry resource attributes and analyze them in Grafana Cloud Application Observability to... Application Observability OpenTelemetry Read more Kamel Djoudi * 23 May 2024 * 13 min read Serverless observability: How to monitor Google Cloud Run with OpenTelemetry and Grafana Cloud Learn how to collect and analyze telemetry data from Google Cloud Run using OpenTelemetry and Application Observability in Grafana Cloud. Application Observability Grafana Cloud OpenTelemetry Read more Ishan Jain * 18 Apr 2024 * 5 min read A guide to scaling OpenTelemetry Collectors across multiple hosts via Ansible Learn how to scale your OpenTelemetry Collector deployment with Ansible to function as both gateways and agents within your observability... Open source OpenTelemetry Monitoring Read more Sign up for Grafana stack updates [ ] [ ] [ ] Subscribe Sorry, an error occurred. Email update@grafana.com for help. Note: By signing up, you agree to be emailed related product-level information. --------------------------------------------------------------------- --------------------------------------------------------------------- * Grafana * Overview * Deployment options * Plugins * Dashboards * Products * Grafana Cloud * Grafana Cloud Status * Grafana Enterprise Stack * Grafana Cloud Application Observability * Grafana Cloud Frontend Observability * Grafana Cloud IRM * Grafana Cloud k6 * Grafana Cloud Logs * Grafana Cloud Metrics * Grafana Cloud Profiles * Grafana Cloud Synthetic Monitoring * Grafana Cloud Traces * Grafana SLO * Open Source * Grafana * Grafana Loki * Grafana Mimir * Grafana OnCall * Grafana Tempo * Grafana Agent * Grafana Alloy * Grafana k6 * Prometheus * Grafana Faro * Grafana Pyroscope * Grafana Beyla * OpenTelemetry * Grafana Tanka * Graphite * GitHub * Learn * Grafana Labs blog * Documentation * Downloads * Community * Community forums * Community Slack * Grafana Champions * Community organizers * ObservabilityCON * GrafanaCON * The Golden Grot Awards * Successes * Workshops * Videos * OSS vs Cloud * Load testing * Company * * The team * Press * Careers * * Partnerships * Contact * Getting help * Merch --------------------------------------------------------------------- Grafana Cloud Status Legal and Security Terms of Service Privacy Policy Trademark Policy Copyright 2024 (c) Grafana Labs Grafana Labs uses cookies for the normal operation of this website. Learn more. Got it!