Framework.ValidationMetrics (Framework v0.5.0)
View SourceSchema validation metrics tracking for SLO monitoring.
Provides persistent counters for schema validation failures across outbox append operations, replay operations, and schema registry validation.
Uses ETS for fast counter operations with periodic persistence to avoid data loss during restarts.
Features
- Thread-safe counter operations
- Categorized failure tracking by type
- Automatic counter reset for observability windows
- Graceful fallback when ETS unavailable
Summary
Functions
Returns a specification to start this module under a supervisor.
Get validation failures for a specific category.
Get detailed breakdown of validation failures.
Get validation metrics status for health checks.
Get total validation failures across all categories.
Increment schema validation failure counter.
Reset all validation failure counters.
Start the ValidationMetrics GenServer.
Functions
Returns a specification to start this module under a supervisor.
See Supervisor.
Get validation failures for a specific category.
Examples
ValidationMetrics.get_category_failures(:outbox_append_failures)
#=> 42
Get detailed breakdown of validation failures.
Returns map with failure counts by category, schema, and reason for debugging.
Get validation metrics status for health checks.
Get total validation failures across all categories.
Returns the sum of all validation failure counters for SLO monitoring.
Increment schema validation failure counter.
Parameters
- category: Atom identifying the failure type (:outbox_append_failures, :replay_validation_failures, etc.)
- schema_id: String identifying the failing schema
- reason: Atom or string describing the failure reason
Examples
ValidationMetrics.increment_failure(:outbox_append_failures, "user_registration.v1", :invalid_email)
ValidationMetrics.increment_failure(:replay_validation_failures, "navigation.v2", "missing_required_field")
Reset all validation failure counters.
Called periodically to reset counters for observability time windows. Manual reset is also available for testing.
Start the ValidationMetrics GenServer.
Initializes ETS table and schedules periodic counter resets.