Skip to content

docs: add Datadog to OpenObserve migration guide#374

Open
gorakhnathy7 wants to merge 4 commits into
mainfrom
datadog-migration
Open

docs: add Datadog to OpenObserve migration guide#374
gorakhnathy7 wants to merge 4 commits into
mainfrom
datadog-migration

Conversation

@gorakhnathy7
Copy link
Copy Markdown
Contributor

Summary

  • New section under docs/migration/migrate-from-datadog-to-openobserve/ (6 pages: overview, architecture & terminology, metrics, traces, logs, dashboards & monitors) covering a full Datadog to OpenObserve migration path
  • The recommended pattern is an OpenTelemetry Collector in front of OpenObserve translating Datadog wire formats (DogStatsD, Datadog APM intake, Datadog Agent series API) into OTLP, so application code does not change
  • Per-signal Collector configs, Datadog Agent repointing snippets, port assignments, and a Datadog to OTel metric-type mapping
  • Includes a query-translation reference for moving Datadog dashboards and monitors to PromQL / SQL, plus a section on exporting the existing Datadog dashboards and monitors via the public API before recreating them in OpenObserve
  • Registered in the migration nav via docs/migration/.pages

Notes for reviewers

  • This PR is scoped to the migration content only. The "OpenObserve vs Datadog" comparison page and the per-page Copy / View / ChatGPT / Claude dropdown ship separately in comparison-and-datadog-pages. That comparison page deep-links into this folder, so once that PR merges its links will resolve only after this PR also merges.
  • mkdocs.yml is unchanged on this branch. The llmstxt plugin's Migration: migration/*.md glob is non-recursive, so until that fix lands (it's in the comparison branch) the new pages here will not appear in the generated llms.txt. Order of merge matters: comparison branch first.
  • Per-host pricing, custom-metric, and span-based billing claims about Datadog reflect their public pricing pages as of this PR's authoring; please flag any that have drifted.
  • The datadog receiver in OTel Collector contrib accepts Agent metric series + APM trace intake on the same HTTP listener. It does not accept the Agent's TCP-framed logs forwarder protocol; that's called out explicitly in logs.md and metrics.md (logs are routed via Fluent Bit / Vector / OpenObserve Collector instead).

Test plan

  • Run mkdocs serve locally; confirm all six pages render without build errors or broken cross-links
  • Walk the metrics page: stand up an OTel Collector with the statsd receiver, send a test DogStatsD packet (echo "test.metric:42|c|#k:v" | nc -w 1 -u localhost 8125), confirm the metric appears in OpenObserve
  • Walk the traces page Option B (Agent on :8126, Collector on :18126): point a dd-trace-instrumented app at the Agent, confirm spans arrive in OpenObserve with service.name populated
  • Walk the logs page: deploy Fluent Bit with the http output pointed at OpenObserve, confirm a stream is created and JSON fields parse as columns
  • Open the dashboards & monitors page; confirm the Datadog to PromQL / SQL translation tables render correctly (the row with the escaped \| was previously breaking the table parse)
  • Confirm the OpenObserve Cloud / Self-Hosted tabs in index.md render as Material tabs, not blockquotes

Gorakh Nath Yadav added 4 commits May 28, 2026 17:36
New section under docs/migration/migrate-from-datadog-to-openobserve/
covering overview, architecture & terminology, metrics, traces, logs,
and dashboards & monitors. Adds the section to the migration nav via
docs/migration/.pages.
- metrics.md: drop broken dogstatsd_forward_port: 8126 example (port 8126
  is APM, not StatsD). Replace with a working dual-write pattern that uses
  a distinct forward port (18125). Remove unused stream-name header from
  the OTLP exporter config. Add a traces pipeline alongside the metrics
  pipeline since dd_url + apm_dd_url cover both signals. Drop the
  logs_dd_url block from the Agent repoint config and redirect log
  migration to the shipper-based path in logs.md
- traces.md: fix port contradiction in the Agent-repoint example. Bind
  the Collector's datadog receiver to 18126 so it can coexist with the
  Agent on 8126, and align the apm_dd_url accordingly. Drop unused
  stream-name header from the OTEL_EXPORTER_OTLP_HEADERS example
- logs.md: replace the broken logs_dd_url repoint with the correct
  guidance to use Fluent Bit or the OpenObserve Collector. The Datadog
  Agent's log forwarder uses a TCP framed protocol that the OTel
  datadog receiver does not accept
- dashboards-and-alerts.md: escape literal | inside a Markdown table
  cell that was breaking the row parse
- index.md: switch the OpenObserve Cloud / Self-Hosted blockquote tabs
  to pymdownx.tabbed (=== "Tab") syntax to match the rest of the repo
The manual "Back to Overview | Previous | Next" lines render as plain
inline text and add maintenance burden on every page reordering. Left
sidebar already provides ordered navigation. Replace with the same
Need Help block used by the comparison pages, pointing to Community
Slack and contact support.
@gorakhnathy7 gorakhnathy7 marked this pull request as ready for review May 29, 2026 15:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant