roastcoffea.backends.base

Abstract base class for metrics backends.

This module defines the interface that all backend implementations must follow.

Classes

AbstractMetricsBackend()

Abstract base class for metrics collection backends.

class roastcoffea.backends.base.AbstractMetricsBackend[source]

Bases: ABC

Abstract base class for metrics collection backends.

Backends are responsible for interfacing with different executors (Dask, TaskVine, etc.) to collect resource usage and performance metrics.

abstractmethod start_tracking(interval)[source]

Start tracking worker resources.

Parameters:

interval (float) – Sampling interval in seconds.

Return type:

None

abstractmethod stop_tracking()[source]

Stop tracking and return collected data.

Returns:

Tracking data including worker counts, memory, CPU, etc.

Return type:

dict[str, Any]

abstractmethod create_span(name)[source]

Create a performance span for fine metrics collection.

Parameters:

name (str) – Name of the span (e.g., “coffea-processing”).

Returns:

Span context manager.

Return type:

Any

abstractmethod get_span_metrics(span_id)[source]

Extract metrics from a span.

Parameters:

span_id (Any) – Span identifier.

Returns:

Span metrics (cumulative_worker_metrics format with tuple keys).

Return type:

dict[tuple[str, …], Any]

abstractmethod supports_fine_metrics()[source]

Check if this backend supports fine-grained metrics.

Returns:

True if fine metrics (Dask Spans or equivalent) are available.

Return type:

bool