telemetry
arodonata.core.telemetry ¶
Provider-agnostic OpenTelemetry instrumentation, module gating, and attribute sanitization.
apply_trace_modules ¶
Apply module span gating rules ONLY when non-empty rules are provided.
When spec_or_rules is empty ("", None, or {}), this function intentionally does NOT call set_trace_modules({}) so any existing process-global trace rules configured by the host application are preserved.
Source code in src/arodonata/core/telemetry.py
parse_trace_modules ¶
Parse comma-separated module.prefix:on|off rules into a boolean dictionary.
Example
"arodonata:on,arodonata.api.client:off" -> {"arodonata": True, "arodonata.api.client": False}
Source code in src/arodonata/core/telemetry.py
span_attrs ¶
Attach arodonata.<key> attributes to the current recording OpenTelemetry span.
Nonevalues are omitted.- Sensitive keys (
sid,api_key,password,token,secret, etc.) are never recorded. - String values are scrubbed via
redact_sid. - Operates as a zero-overhead no-op when no recording span is active.
Source code in src/arodonata/core/telemetry.py
traced ¶
traced(
func: Callable[P, R] | None = None,
*,
name: str | None = None,
attrs: dict[str, Any] | None = None,
) -> Any
Wrap a function in @arlogi.otel.traced while scrubbing chained __cause__/__context__ exceptions.