Framework.Telemetry (Framework v0.5.0)

View Source

Framework telemetry setup and SLO gauge registration.

Implements required SLO gauges:

  • emit_lag_ms (target: p95 < 200ms)
  • replay_lag_ms (target: p99 < 2s)
  • supersedence_rate
  • events_per_sec
  • schema_validation_failures_total

All metrics are exported via OpenTelemetry for observability compliance. Uses supervised GenServer pattern for gauge updates with graceful OTEL fallback.

Summary

Functions

Child spec for adding to supervision tree.

Returns a specification to start this module under a supervisor.

Get current emit lag in milliseconds.

Get current snapshot of all SLO metrics.

Get current replay lag (maximum across all consumers) in milliseconds.

Record events appended for events_per_sec calculation. Called from kernel commit when events are successfully appended.

Record schema validation failure for total count. Called when JSON Schema validation fails at append or replay.

Record supersedence event for rate calculation. Called whenever a :render event supersedes a :navigated event.

Initialize all SLO gauges and telemetry handlers. Called from application startup. Returns child spec for supervision tree.

Start the telemetry GenServer.

Functions

child_spec()

Child spec for adding to supervision tree.

child_spec(init_arg)

Returns a specification to start this module under a supervisor.

See Supervisor.

get_emit_lag_ms()

Get current emit lag in milliseconds.

get_metrics()

Get current snapshot of all SLO metrics.

Returns a map containing current values for all tracked metrics:

  • emit_lag_ms
  • replay_lag_ms
  • events_per_sec
  • supersedence_rate
  • schema_validation_failures_total

get_replay_lag_ms()

Get current replay lag (maximum across all consumers) in milliseconds.

record_events_appended(count)

Record events appended for events_per_sec calculation. Called from kernel commit when events are successfully appended.

record_schema_validation_failure(schema_id, reason)

Record schema validation failure for total count. Called when JSON Schema validation fails at append or replay.

record_supersedence(navigation_id)

Record supersedence event for rate calculation. Called whenever a :render event supersedes a :navigated event.

setup()

Initialize all SLO gauges and telemetry handlers. Called from application startup. Returns child spec for supervision tree.

start_link(opts \\ [])

Start the telemetry GenServer.