core.otlp.utils

OTLP utility functions for jobmon.

Classes

JobmonOTLPFormatter

Formatter that adds OpenTelemetry span details to jobmon logs.

Functions

get_current_span_details(→ Tuple[Optional[str], ...)

Get details of the current OpenTelemetry span.

add_span_details_processor(→ Dict[str, Any])

Structlog processor to add OpenTelemetry span details to log entries.

Module Contents

core.otlp.utils.get_current_span_details() Tuple[str | None, str | None, str | None]

Get details of the current OpenTelemetry span.

Returns:

Tuple of (span_id, trace_id, parent_span_id) as hex strings, or (None, None, None)

core.otlp.utils.add_span_details_processor(logger: Any, method_name: str, event_dict: Dict[str, Any]) Dict[str, Any]

Structlog processor to add OpenTelemetry span details to log entries.

Parameters:
  • logger – The logger instance (not used, but required by Structlog processor signature).

  • method_name – The logging method name (e.g., “info”, “debug”).

  • event_dict – The event dictionary representing the log entry.

Returns:

The modified event dictionary with OpenTelemetry span details added.

class core.otlp.utils.JobmonOTLPFormatter(fmt=None, datefmt=None, style='%', validate=True, *, defaults=None)

Bases: logging.Formatter

Formatter that adds OpenTelemetry span details to jobmon logs.

Note: For handlers using _JobmonOTLPLoggingHandler, this formatter is not used for OTLP output (handler creates OTLPLogRecord directly). It only affects console/file output.

Initialize the formatter with specified format strings.

Initialize the formatter either with the specified format string, or a default as described above. Allow for specialized date formatting with the optional datefmt argument. If datefmt is omitted, you get an ISO8601-like (or RFC 3339-like) format.

Use a style parameter of ‘%’, ‘{’ or ‘$’ to specify that you want to use one of %-formatting, str.format() ({}) formatting or string.Template formatting in your format string.

Changed in version 3.2: Added the style parameter.

format(record: logging.LogRecord) str

Format log record with OpenTelemetry span details.