Logging
MVX Metrics can log recorder and runtime diagnostic events through MVX Logger.
Logging is enabled when a metrics component receives a log_context.
For example, a runtime can be created with a log context:
runtime = MetricsRuntime(
namespace="example.metrics",
log_context=log_context,
)
Recorders created by this runtime use the runtime log context by default, unless a recorder-specific context is provided.
A recorder can also receive a log context directly:
recorder = AsyncioMetricsRecorder(
"document_storage",
log_context=log_context,
)
If no log_context is provided, recorder/runtime diagnostic logging is disabled.
Recorder logging
AsyncioMetricsRecorder can log public recorder operations and internal recorder infrastructure failures.
Recorder logging is controlled by ready-to-use policy helpers based on AsyncioMetricsRecorderLogPolicyMode.
Recorder log events
AsyncioMetricsRecorder has two kinds of log events:
public operation events produced by
log_invocation;internal infrastructure error events emitted directly by the recorder.
Recorder operation events
These events describe public recorder operations:
Event |
When it is emitted |
|---|---|
|
around recorder startup |
|
around recorder shutdown |
|
when a metric is registered |
|
when metric snapshots are requested |
|
when registered metrics are requested |
register_event() is intentionally not logged as an operation event.
recorder.register_event(event=event)
It is the production hot-path handoff for metric events. Logging every submitted metric event would make recorder diagnostics noisy and would duplicate the metrics pipeline itself.
Recorder infrastructure error events
These events are emitted directly by the recorder when internal processing fails:
Event |
When it is emitted |
|---|---|
|
event dispatching fails inside the recorder dispatcher loop |
|
cleanup task creation fails after dispatcher failure |
|
recorder cleanup fails |
These are recorder infrastructure diagnostics.
They describe failures in recorder processing, not business metric events.
Recorder policy modes
Recorder policies use AsyncioMetricsRecorderLogPolicyMode.
SILENT
NORMAL
INSPECTION
SILENT
: No recorder events are enabled by default.
NORMAL
: Enables ordinary recorder lifecycle, metric registration, and infrastructure-failure diagnostics.
asyncio_metrics_recorder.start
asyncio_metrics_recorder.stop
asyncio_metrics_recorder.register_metric
metrics_recorder.dispatch_error
metrics_recorder.cleanup.task_creation_error
metrics_recorder.cleanup.failed
INSPECTION
: Enables all NORMAL events and additionally enables recorder inspection events.
asyncio_metrics_recorder.get_metric_snapshots
asyncio_metrics_recorder.iter_metrics
Recorder policy helper API
Use asyncio_metrics_recorder_event_policy_config() when you need a PatternLogEventPolicyConfig.
Use asyncio_metrics_recorder_event_policy() when you need a ready-to-use PatternLogEventPolicy.
- mvx.common.metrics.asyncio_metrics_recorder_event_policy_config(*, mode=AsyncioMetricsRecorderLogPolicyMode.NORMAL)
- Return type:
- Parameters:
mode (AsyncioMetricsRecorderLogPolicyMode)
- mvx.common.metrics.asyncio_metrics_recorder_event_policy(*, mode=AsyncioMetricsRecorderLogPolicyMode.NORMAL)
- Return type:
- Parameters:
mode (AsyncioMetricsRecorderLogPolicyMode)
Runtime logging
MetricsRuntime can log runtime lifecycle, recorder management, and runtime inspection calls.
Runtime logging is controlled by ready-to-use policy helpers based on MetricsRuntimeLogPolicyMode.
Runtime log events
MetricsRuntime logs public runtime operations through log_invocation.
These events describe runtime lifecycle, recorder management, and runtime inspection calls.
Event |
When it is emitted |
|---|---|
|
around runtime startup |
|
around runtime shutdown |
|
when a recorder is created by the runtime |
|
when a recorder is stopped without being removed |
|
when a recorder is stopped and removed from the runtime registry |
|
when a recorder is requested by id and absence is an error |
|
when a recorder is requested by id and absence returns |
|
when runtime recorder ids are requested |
Runtime policy modes
Runtime policies use MetricsRuntimeLogPolicyMode.
SILENT
NORMAL
INSPECTION
SILENT
: No runtime events are enabled by default.
NORMAL
: Enables runtime lifecycle and recorder-management events.
metrics_runtime.start
metrics_runtime.shutdown
metrics_runtime.create_recorder
metrics_runtime.stop_recorder
metrics_runtime.stop_and_remove_recorder
INSPECTION
: Enables all NORMAL events and additionally enables runtime inspection events.
metrics_runtime.get_recorder
metrics_runtime.try_get_recorder
metrics_runtime.list_recorder_ids
Runtime policy helper API
Use metrics_runtime_event_policy_config() when you need a PatternLogEventPolicyConfig.
Use metrics_runtime_event_policy() when you need a ready-to-use PatternLogEventPolicy.
- mvx.common.metrics.metrics_runtime_event_policy_config(*, mode=MetricsRuntimeLogPolicyMode.NORMAL)
- Return type:
- Parameters:
mode (MetricsRuntimeLogPolicyMode)
- mvx.common.metrics.metrics_runtime_event_policy(*, mode=MetricsRuntimeLogPolicyMode.NORMAL)
- Return type:
- Parameters:
mode (MetricsRuntimeLogPolicyMode)
Summary
Metrics recorder and runtime logging is enabled through log_context.
Recorder logging and runtime logging have separate event sets and separate policy helpers.
Ready-to-use policies group events into SILENT, NORMAL, and INSPECTION modes.
This lets applications enable useful diagnostics without writing custom event-policy rules immediately.