Skip to main content
Squasher does not accept Datadog’s own data formats. You move logs, traces, and metrics to OpenTelemetry, and errors to a Squasher SDK. While you move, Datadog monitor alerts can open incidents in Squasher.

What moves and what does not

Run both tools side by side

Leave the Datadog Agent and tracers in place while you add Squasher:
  • Copy the logs. Run an OpenTelemetry Collector next to the Agent. It reads the same log files and sends a copy to Squasher. Datadog keeps its data.
  • Forward monitor alerts. Connect Datadog monitor alerts. Each alert opens an incident in Squasher, so responders can use Squasher incidents before you move the monitors.

Send logs from Datadog Agent hosts

The Datadog Agent sends logs in Datadog’s format, and Squasher does not accept it. Run the OpenTelemetry Collector (the otelcol-contrib build) on the same hosts, and let it read the same files.
1

Configure the Collector

otel-collector-config.yaml
json_parser reads JSON log lines and takes the severity from their level field. Squasher opens issues for lines at error or fatal. Lines without a severity are stored, but they do not open issues.
2

Start the Collector

Set SQUASHER_API_KEY in the Collector’s environment, then start it:
3

Check the logs

Write one error line to the log file. Select Logs in the Squasher sidebar to see the line, then select Issues to see the issue that it opened.

Send logs over HTTP

Squasher has no endpoint for the Datadog HTTP intake. If your code or a shipper posts logs to Datadog over HTTP, post them to the Squasher HTTP API instead:
The body can be one event, an array of events, or newline-delimited JSON with Content-Type: application/x-ndjson. Map the Datadog fields like this:
An event without level counts as an error, so it can open an issue. Set level on every event, or Squasher opens issues for ordinary log lines.
Squasher reads the levels fatal, critical, error, warning, warn, info, and debug. It treats any other value as info.

Switch traces to OpenTelemetry

Replace dd-trace with the OpenTelemetry SDK for your language, and send its data to Squasher:
OTLP requests do not need the project ID. See OpenTelemetry for each language.

Move alerts and on-call

  1. Keep Datadog monitor alerts connected while both tools run.
  2. Recreate HTTP and SSL checks as uptime monitors, and log or metric thresholds as query monitors. See Status monitoring.
  3. Recreate the notification channels as destinations and routes: Slack, email, Telegram, webhook, or PagerDuty.
  4. Recreate the on-call rotations: select On-call in the sidebar, then Create schedule. See On-call.
Squasher does not call or text responders, and it has no escalation policies. To keep phone paging, send Squasher incidents to PagerDuty.

Check parity

Compare the two tools for at least one week that includes a deploy:
  • The number of error lines per service each hour.
  • The top issues in Squasher against the top errors in Datadog Error Tracking.
  • The service, environment, and host values on the events.
  • One test alert from each new monitor, sent to the same channel as the Datadog alert.

Turn off Datadog

  1. Turn off the Datadog monitors after the Squasher monitors have fired correctly.
  2. Remove the Datadog alert connector in Squasher.
  3. Stop the Datadog Agent on each host, and remove dd-trace from your services.

Next steps

OpenTelemetry

Send logs, traces, and metrics from any language.

Datadog monitor alerts

Open Squasher incidents from Datadog monitors.

Add monitors

Replace Datadog Synthetics and monitors.

Set up on-call

Recreate your rotations in Squasher.