Jido.Observe.EventContract
(Jido v2.0.0)
View Source
Minimal helpers for validating custom telemetry event contracts.
Downstream packages can use this module to enforce stable required keys for metadata and measurements before emitting namespaced events.
Summary
Functions
Validates event metadata and measurements against required keys.
Validates that measurements contain all required keys.
Validates that metadata contains all required keys.
Types
@type event_error() :: {:invalid_event_contract, %{ event: event_prefix(), missing_metadata_keys: required_keys(), missing_measurement_keys: required_keys() }}
@type event_prefix() :: [atom()]
@type measurements_error() :: {:missing_measurement_keys, required_keys()}
@type metadata_error() :: {:missing_metadata_keys, required_keys()}
@type required_keys() :: [key()]
Functions
@spec validate_event(event_prefix(), map(), map(), keyword()) :: {:ok, %{event: event_prefix(), measurements: map(), metadata: map()}} | {:error, event_error()}
Validates event metadata and measurements against required keys.
Options
:required_metadata- Required metadata keys.:required_measurements- Required measurement keys.
@spec validate_measurements(map(), required_keys()) :: {:ok, map()} | {:error, measurements_error()}
Validates that measurements contain all required keys.
@spec validate_metadata(map(), required_keys()) :: {:ok, map()} | {:error, metadata_error()}
Validates that metadata contains all required keys.