Importing from export files
wtctl import <source> --alerts <file> --dashboards <file> [--alertmanager <file>] [--apply] [--report <prefix>]
These importers read export files, so no vendor credentials are sent anywhere. A run is a dry run unless --apply is given and always writes the skip report.
Source |
|
| Mapped to |
|---|---|---|---|
| NerdGraph policies with NRQL conditions | dashboard JSON array |
|
|
| none |
|
| Prometheus rule file | none |
|
|
| none |
|
| triggers array | boards array (listed only) |
|
| Settings 2.0 metric events | dashboards array |
|
| none | saved-objects NDJSON | logs panels via the KQL translator; ingest pipelines listed |
Log pipelines are reported, never imported. Everything not mapped appears under Unsupported with its reason.
Sunset and acquired vendors
Opsgenie (end of sale), Splunk On-Call and Grafana OnCall OSS: see oncall.md.
Chronosphere: Prometheus rules and Grafana dashboards import as above.
Helicone (maintenance mode): export with
npx @helicone/export --format jsonl, thenwtctl import helicone --file export.jsonl --endpoint <gateway> --key <ingestion key>replays each request as agen_aispan (model, tokens, cost, latency, user, properties;--dry-runcounts only). Ids come from the Helicone response id, so a rerun is deduplicated. For new traffic, point the OpenLLMetry or OTLP exporter at the gateway.Traceloop (ServiceNow), Galileo (Splunk Agent Observability): OTLP or OpenLLMetry instrumentation; change the exporter endpoint and key to the Watchtower gateway. OpenLLMetry spans are ingested as is (
crates/wt-llm/src/openllmetry.rs).
sentry-cli
sentry-cli works unchanged against the Sentry-compatible API of a project. Point it at the project and use a project-admin API key (wtk_…, sent as Authorization: Bearer); the org and project names it sends are ignored, the project comes from the URL and the key:
export SENTRY_URL=https://<api host>/v1/projects/<project id>/sentry/
export SENTRY_AUTH_TOKEN=wtk_...
export SENTRY_ORG=any SENTRY_PROJECT=anyCommand | Endpoint | Stored as |
|---|---|---|
|
| release ( |
|
| release commits |
|
| a succeeded deployment (an unknown environment is created) |
|
| minified files and source maps by debug id and release |
|
| ELF, Mach-O, PDB, Breakpad and ProGuard files by debug id |
Uploads go through chunks of 8 MiB (sha1-checked, gzip allowed) and assemble into files of at most 100 MiB, which are parsed and counted against the project's 5 GiB artifact quota like POST /v1/projects/{p}/artifacts. Bundles are zip archives read with bounded entry counts and sizes. Unassembled chunks are deleted after a day. Portable PDBs, IL2CPP line mappings, BCSymbolMaps and source bundles are accepted by the chunk endpoint but refused at assemble with an error state.