GET /metrics. That covers the application tier. Two things it does not cover — licence usage and database health — come from elsewhere, and both are ways a healthy-looking instance can still fail.
Scrape configuration
What is exposed
path carries the matched route (/v2/UserCreate), and anything unmatched is bucketed as other, so cardinality stays bounded no matter what scanners send.
The duration histogram is labelled by
method and path but not by status, so latency cannot be split by response code. Alert on error rate and latency separately.Alert rules
UserGet measured ~15 ms p95 against a fully-loaded 10 M-record vault. Sustained latency several times that usually means the database index no longer fits in RAM — check the cache-hit ratio before adding application instances.
Licence usage
Nothing in/metrics reports how full the vault is. SystemGetSystemStats does:
totalnumrecords / licensemaxrecordscrossing 80%licensefinalexpirationcoming within 30 days
Database health
The benchmarks show that beyond tens of millions of records the database is the limit, not Databunker Pro. Two figures matter, and both come from your provider rather than from Databunker Pro:- Database CPU above 70% — adding application instances will not raise write throughput past this point; size the database up instead.
- Index cache-hit ratio below 97% — the benchmark held ≥97% at every scale. Below that, lookups start reading from disk and detokenisation latency climbs.
Audit trail
The audit trail is a compliance control, not a debug log. Its failure mode is silence, so treat a gap in audit records as an incident rather than a monitoring nuisance — a period of activity with no corresponding audit entries is the signal to look for.Next steps
- Production checklist — the go-live gate that includes these alerts
- Performance and sizing — where the thresholds come from
- Licensing and limits — record caps and expiry behaviour
- Backup and recovery — what to do when an alert turns into an incident