Migrating to Watchtower
wtctl import reads another product's configuration and maps it onto Watchtower resources.
From | Command | Guide |
|---|---|---|
Datadog monitors, dashboards, log pipelines |
| |
Grafana dashboards and alert rules |
| |
Splunk searches |
| |
VictorOps, Grafana OnCall |
| |
PagerDuty, Opsgenie |
| |
New Relic NRQL policies and dashboards |
| |
Splunk saved-search alerts |
| |
Prometheus rule files and Alertmanager config; Chronosphere |
| |
Sentry, Honeycomb, Dynatrace, Kibana |
| |
Splunk On-Call (VictorOps), Opsgenie (end of sale), Grafana OnCall OSS (frozen) |
| |
Helicone, Traceloop, Galileo (acquired or rebranded) |
|
How every importer behaves:
Dry run by default (datadog, grafana, victorops, grafana-oncall). Add
--applyto write through the API. Each created object is sent withIdempotency-Key: import:<source>:<id>and found again by name, so a second run creates nothing.A report on every run:
--report <prefix>writes<prefix>.jsonand<prefix>.mdwithimported,mapped,unsupported(kind, name, reason) andwarnings. Nothing is dropped silently.The API address and key come from
--api,--key,--project(orWT_API,WT_API_KEY,WT_PROJECT). Vendor keys are read from the environment variable you name, never from a flag value.Imported objects never carry
wt.*attributes; labels with that prefix are dropped.Log queries inside dashboards are translated by the API (
/v1/translate/log-query), so the importer needs the project API even for a dry run.
How imports run (DX-21)
wtctl import <source> --alerts ... --dashboards ... [--apply] and wtctl datasets import <file> upload the export file to POST /v1/projects/{p}/imports and poll GET /v1/projects/{p}/imports/{id}; the mappings run server-side in the notifier's import runner, so the public CLI carries none of them. Export-file sources only (datadog, grafana, newrelic, splunk, promrules, chronosphere, sentry, honeycomb, dynatrace, kibana). The API-pull importers (pagerduty, opsgenie, victorops, grafana-oncall, and Datadog --api-key-env) are not offered by the public CLI yet. Uploads are capped at 10 MiB, stored sealed and deleted when the job ends or after one hour.