All backup metrics carry labels: snapshot_id, storage_target, machine.
All prune metrics carry labels: storage_target, machine.
Each distinct (snapshot_id, storage_target) is its own series (and its own device
in duplicacy-ha), so multiple backups are
tracked independently. In webhook mode snapshot_id is the last path component of the
report's directory, so two backups on one machine stay apart
unless their directories share a last component (/a/data and /b/data to the same
storage share one series). In log_tail mode it comes from a
DUPLICACY_META snapshot_id=… line, a --- Backup -> … (id) --- section header, or
the SNAPSHOT_ID env var.
Unix timestamp of the last log line parsed (alert if it goes stale)
duplicacy_exporter_backups_seen_total
Counter
Completed backups detected, including any dropped for a missing snapshot_id/storage_target/machine. If this climbs while labelled series stay empty, the exporter is seeing backups it can't label — set SNAPSHOT_ID/MACHINE_NAME.
Only populated when the storage poller is enabled.
Storage metrics carry labels storage_target, machine; snapshot metrics carry
snapshot_id, storage_target, machine.
Metric
Type
Description
duplicacy_storage_total_size_bytes
Gauge
Total size of all chunks in the storage, from duplicacy check. Approximate — reconstructed from Duplicacy's human-readable size formatting (worst case ~0.65% low).
duplicacy_storage_total_chunks
Gauge
Total number of chunks in the storage, from duplicacy check
duplicacy_snapshot_revisions
Gauge
Number of revisions for a snapshot id, from duplicacy list
duplicacy_snapshot_last_revision
Gauge
Highest (latest) revision number for a snapshot id, from duplicacy list
duplicacy_poller_last_success_timestamp_seconds
Gauge
Unix timestamp of the last fully successful poller cycle
duplicacy_poller_errors_total
Counter
Poller errors (missing binary, timeout, or parse failure) across all cycles
The HTTP endpoints (/metrics, /webhook, /health) are on Usage.