KMS.Telemetry (kms v0.1.0)

Copy Markdown View Source

Vendor-neutral telemetry events and metric definitions for KMS.

KMS emits low-cardinality metadata only. Event metadata must not include plaintext, ciphertext, bearer tokens, passwords, factor codes, private keys, or RMK material.

Summary

Functions

Emits a cache lookup event for KMS cache hit/miss/expired tracking.

Emits a factor-attempt event.

Instruments a KMS operation and emits event_prefix ++ [:stop] or [:exception].

Returns vendor-neutral Telemetry.Metrics definitions for KMS events.

Emits the [:kms, :api, :request, :stop] HTTP request event.

Types

event_prefix()

@type event_prefix() :: [atom()]

metadata()

@type metadata() :: map()

Functions

cache_lookup(key, result)

Emits a cache lookup event for KMS cache hit/miss/expired tracking.

factor_attempt(result)

Emits a factor-attempt event.

result should be a low-cardinality atom such as :ok, :invalid, or :rate_limited.

instrument(event_prefix, metadata, fun)

Instruments a KMS operation and emits event_prefix ++ [:stop] or [:exception].

Metadata is sanitized to low-cardinality status/error fields. Do not include secret payloads in metadata.

metrics()

Returns vendor-neutral Telemetry.Metrics definitions for KMS events.

Use these metrics with any Telemetry.Metrics reporter, such as Prometheus or a custom OpenTelemetry bridge.

request_stop(started_at, metadata)

Emits the [:kms, :api, :request, :stop] HTTP request event.