Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

OTLP Metrics Reference

The KMS server pushes metrics to any OpenTelemetry collector via OTLP/gRPC every 30 seconds. No HTTP /metrics endpoint is exposed — metrics are always pushed, never scraped.

For deployment instructions and Grafana setup, see Monitoring Setup. To enable the feature, see Telemetry & Observability.

KMIP Operations

MetricTypeDescriptionLabels
kms.kmip.operations.totalcounterTotal KMIP operations executedoperation
kms.kmip.operations.per_user.totalcounterTotal KMIP operations per useroperation, user
kms.kmip.operation.durationhistogram (s)Duration of each KMIP operationoperation

Users & Permissions

MetricTypeDescriptionLabels
kms.active.usersup-down counterUnique users who issued at least one request
kms.permissions.granted.per_user.totalcounterAccess rights granted, broken down by useruser, permission_type
kms.permissions.granted.totalcounterTotal access rights granted

Database

MetricTypeDescriptionLabels
kms.database.operations.totalcounterDB operations by type and resultoperation, backend, outcome
kms.database.operation.durationhistogram (s)Wall-clock time of each DB calloperation, backend, outcome

Label values:

  • backend: sqlite · postgresql · mysql · redis
  • outcome: success · error

HTTP

MetricTypeDescriptionLabels
kms.http.requests.totalcounterIncoming HTTP requestsmethod, path, status
kms.http.request.durationhistogram (s)HTTP request latencymethod, path, status

path is normalised (e.g. /kmip/2_1, /google_cse/...) to avoid high cardinality from object identifiers.

Server Health

MetricTypeDescriptionLabels
kms.server.uptimecounter (monotonic, s)Seconds elapsed since server start
kms.server.start_timeup-down counterServer start time as Unix timestamp (s)
kms.active.connectionsup-down counterCurrent open HTTP connections
kms.errors.totalcounterErrors categorised by typeerror_type

Objects & Keys

MetricTypeDescriptionLabels
kms.objects.totalgaugeTotal non-destroyed objects in the KMS
kms.keys.active.countgaugeNon-destroyed key objects (SymmetricKey, PrivateKey, PublicKey, SplitKey) across all states: PreActive, Active, Deactivated, Compromised

Both metrics are refreshed every 30 s by the metrics cron task and seeded at server startup.

Cache

MetricTypeDescriptionLabels
kms.cache.operations.totalcounterUnwrap-cache lookupsoperation, result

HSM

MetricTypeDescriptionLabels
kms.hsm.operations.totalcounterHSM operations by type and modeloperation, hsm_model