Migrate from Datadog

Step-by-step guide to switch your observability to Qorrelate

Why Migrate?

💰
60-80% Cost Savings

Transparent pricing with no host-based fees

🔓
No Vendor Lock-in

100% OpenTelemetry native

🤖
AI-First

MCP integration for AI assistants

This guide walks you through migrating from Datadog to Qorrelate. The process typically takes 1-2 weeks for most teams, with minimal disruption to your monitoring.

Migration Support

Need help with your migration? Contact us for personalized migration assistance and a cost comparison analysis.

Feature Comparison

Feature Datadog Qorrelate
Logs ✓ ✓
Metrics ✓ ✓
APM / Traces ✓ ✓
Session Replay ✓ (RUM) ✓
Dashboards ✓ ✓ (Perses)
Alerts ✓ ✓
Service Map ✓ ✓
AI Assistant ✓ (Bits AI) ✓ (MCP for any AI)
OpenTelemetry Native Partial ✓ 100%
Self-Hosted Option ✗ ✓
Transparent Pricing ✗ ✓

Planning Your Migration

Before starting, gather this information:

Migration Checklist

  • List of services sending data to Datadog
  • Current dashboards to recreate
  • Active alerts and their thresholds
  • Notification channels (Slack, PagerDuty, etc.)
  • Custom metrics and their cardinality
  • Log volume per day (GB)

Recommended Approach

We recommend a parallel run approach: send data to both Datadog and Qorrelate for 1-2 weeks before fully cutting over. This lets you validate data accuracy and build confidence.

Set Up Qorrelate Account

  1. Create your Qorrelate account
  2. Create an organization for your team
  3. Generate an API key in Settings → API Keys
  4. Note your Organization ID from Settings → General

Replace Datadog Agent with OpenTelemetry

Replace the Datadog Agent with the OpenTelemetry Collector. The OTel Collector can send data to both Datadog and Qorrelate during your parallel run.

Kubernetes

# otel-collector-values.yaml
mode: daemonset

config:
  receivers:
    otlp:
      protocols:
        grpc:
          endpoint: 0.0.0.0:4317
        http:
          endpoint: 0.0.0.0:4318

  exporters:
    # Send to Qorrelate
    otlphttp/qorrelate:
      endpoint: https://qorrelate.io
      headers:
        Authorization: "Bearer YOUR_API_KEY"
        X-Organization-Id: "YOUR_ORG_ID"
    
    # Keep sending to Datadog during migration (optional)
    datadog:
      api:
        key: "${DD_API_KEY}"

  service:
    pipelines:
      traces:
        receivers: [otlp]
        exporters: [otlphttp/qorrelate, datadog]  # Remove datadog after migration
      metrics:
        receivers: [otlp]
        exporters: [otlphttp/qorrelate, datadog]
      logs:
        receivers: [otlp]
        exporters: [otlphttp/qorrelate, datadog]

Docker / VM

# Download the OTel Collector
curl -LO https://github.com/open-telemetry/opentelemetry-collector-releases/releases/download/v0.91.0/otelcol-contrib_0.91.0_linux_amd64.tar.gz
tar -xzf otelcol-contrib_0.91.0_linux_amd64.tar.gz

# Run with config
./otelcol-contrib --config otel-config.yaml

Update Application Instrumentation

If you're using the Datadog SDK, switch to OpenTelemetry SDK. Here's a Python example:

# Before (Datadog)
from ddtrace import tracer

# After (OpenTelemetry)
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter

provider = TracerProvider()
provider.add_span_processor(BatchSpanProcessor(
    OTLPSpanExporter(endpoint="https://qorrelate.io/v1/traces",
                     headers={"Authorization": "Bearer YOUR_API_KEY"})
))
trace.set_tracer_provider(provider)

Migrate Dashboards

Recreate your key dashboards in Qorrelate. Start with your most important dashboards first.

AI-Assisted Dashboard Creation

Use the MCP integration to have your AI assistant create dashboards:

"Create a dashboard showing request rate, error rate, and P99 latency for the checkout service"

Common Dashboard Queries

Metric Datadog Query PromQL (Qorrelate)
Request Rate sum:http.requests{*}.as_rate() sum(rate(http_requests_total[5m]))
Error Rate % sum:http.errors{*}/sum:http.requests{*}*100 100*sum(rate(http_requests_total{status=~"5.."}[5m]))/sum(rate(http_requests_total[5m]))
P99 Latency p99:http.request.duration{*} histogram_quantile(0.99, sum(rate(http_request_duration_seconds_bucket[5m])) by (le))
CPU Usage avg:system.cpu.user{*} avg(rate(process_cpu_seconds_total[5m])) * 100

Migrate Alerts

Recreate your critical alerts in Qorrelate. Keep Datadog alerts active during the parallel run period.

Alert Conversion Examples

Datadog: High Error Rate

avg(last_5m):sum:http.errors{service:api}/sum:http.requests{service:api} > 0.05

Qorrelate Equivalent:

{
  "name": "High Error Rate - API",
  "type": "metric",
  "condition": {
    "query": "sum(rate(http_requests_total{service=\"api\",status=~\"5..\"}[5m])) / sum(rate(http_requests_total{service=\"api\"}[5m]))",
    "operator": ">",
    "threshold": 0.05,
    "for": "5m"
  }
}

Notification Channel Mapping

  • Datadog Slack integration → Qorrelate Slack integration
  • Datadog PagerDuty integration → Qorrelate PagerDuty integration
  • Datadog email → Qorrelate email notifications
  • Datadog webhooks → Qorrelate webhooks

Validate & Cutover

Validation Checklist

  • All services sending data to Qorrelate
  • Dashboards showing correct data
  • Alerts triggering correctly (test with intentional threshold breach)
  • Notifications reaching correct channels
  • Team members can access and use Qorrelate
  • Query performance is acceptable

Complete the Cutover

  1. Remove Datadog exporter from OTel Collector config
  2. Disable Datadog alerts
  3. Uninstall Datadog agents
  4. Cancel Datadog subscription

Congratulations!

You've successfully migrated to Qorrelate. Enjoy your cost savings and vendor-free observability!

Query Mapping Reference

Common Datadog queries and their PromQL equivalents:

Datadog PromQL
avg:metric{*} avg(metric)
sum:metric{*} sum(metric)
max:metric{*} max(metric)
metric{tag:value} metric{tag="value"}
.as_rate() rate(metric[5m])
.rollup(avg, 60) avg_over_time(metric[1m])
p99:metric histogram_quantile(0.99, ...)

Cost Savings Calculator

Estimate your savings by comparing your current Datadog bill to Qorrelate pricing.

Typical Savings Examples

$2,400
Monthly savings
50 hosts, 100GB logs/day
$12,000
Monthly savings
200 hosts, 500GB logs/day
$45,000
Monthly savings
500 hosts, 2TB logs/day

See detailed pricing →