emit_otel()

Create an OTel export action for use in FinalActions.

Usage

Source

emit_otel(
    *,
    meter_name="pointblank",
    enable_metrics=True,
    enable_tracing=False,
    enable_logging=False,
    meter_provider=None,
    tracer_provider=None,
    logger_provider=None,
    metric_prefix="pb.validation",
    log_level="warning",
    extra_attributes=None
)

Returns a callable that, when invoked as a FinalAction after interrogation, exports validation results as OpenTelemetry metrics.

Parameters

meter_name: str = "pointblank"

Name for the OTel Meter. Defaults to "pointblank".

enable_metrics: bool = True

Emit OTel metrics (counters, gauges, histograms). Default is "True".

enable_tracing: bool = False

Emit OTel trace spans. Default is "False".

enable_logging: bool = False

Emit OTel log records for threshold breaches. Default is "False".

meter_provider: Any | None = None

Custom MeterProvider. If "None", uses the global default.

tracer_provider: Any | None = None

Custom TracerProvider. If "None", uses the global default.

logger_provider: Any | None = None

Custom LoggerProvider. Required when "enable_logging=True".

metric_prefix: str = "pb.validation"

Prefix for all metric instrument names. Default is "pb.validation".

log_level: str = "warning"

Minimum severity level for log emission. One of "warning", "error", "critical". The default is "warning".

extra_attributes: dict[str, str] | None = None
Additional key-value pairs attached to all emitted signals.

Returns

Callable
A callable suitable for use in FinalActions.

Examples

validation = (
    pb.Validate(
        data=df,
        tbl_name="sales",
        final_actions=pb.FinalActions(
            pb.emit_otel(enable_metrics=True, enable_tracing=True),
        ),
    )
    .col_vals_not_null(columns="customer_id")
    .interrogate()
)