class documentation

Telemetry client for emitting events via pluggable backends.

Class Method register_backend Register a custom backend class.
Method __init__ Initialize a telemetry client.
Method add_context_provider Register a context provider for all events.
Method add_system_context_provider Register a context provider used only with system metadata.
Method capture Capture a telemetry event.
Method extend_context_providers Register multiple context providers.
Method extend_system_context_providers Register multiple system context providers.
Method flush Flush any buffered telemetry events.
Method shutdown Shutdown the backend and flush pending telemetry.
Property config Undocumented
Property is_enabled Undocumented
Property library_name Undocumented
Property library_version Undocumented
Property source_component Undocumented
Method _add_provider Register a provider once while preserving call order.
Method _build_context Build the merged context for an event.
Method _init_backend Initialize the configured backend or fall back to NoopBackend.
Method _merge_context_providers Merge context from providers into the event context.
Class Variable _logged_enabled_notice Undocumented
Instance Variable _backend Undocumented
Instance Variable _base_context Undocumented
Instance Variable _config Undocumented
Instance Variable _context_providers Undocumented
Instance Variable _library_name Undocumented
Instance Variable _library_version Undocumented
Instance Variable _session_id Undocumented
Instance Variable _source_component Undocumented
Instance Variable _system_context_providers Undocumented
@classmethod
def register_backend(cls, name: str, backend_cls: type[TelemetryBackend]):

Register a custom backend class.

Parameters
name:strBackend name used in TelemetryConfig.backend.
backend_cls:type[TelemetryBackend]Backend class instantiated with TelemetryConfig.
def __init__(self, library_name: str, *, source_component: str | None = None, library_version: str | None = None, config: TelemetryConfig | None = None, context_providers: list[ContextProvider] | None = None, system_context_providers: list[SystemContextProvider] | None = None):

Initialize a telemetry client.

Parameters
library_name:strName of the library emitting telemetry, such as "luxonis_ml".
source_component:str | NoneOptional emitter/component name for the event context. If omitted, the library name is reused.
library_version:str | NoneVersion string for the library. If omitted, it is resolved from package metadata when possible.
config:TelemetryConfig | NoneTelemetry configuration to use. If omitted, values are read from environment variables.
context_providers:list[ContextProvider] | NoneCallables that return extra context to attach to every event.
system_context_providers:list[SystemContextProvider] | NoneCallables that return extra context to attach only when system metadata is requested.
def add_context_provider(self, provider: ContextProvider):

Register a context provider for all events.

def add_system_context_provider(self, provider: SystemContextProvider):

Register a context provider used only with system metadata.

def capture(self, event: str, properties: dict[str, Any] | None = None, *, allowlist: set[str] | None = None, include_system_metadata: bool | None = None, distinct_id: str | None = None):

Capture a telemetry event.

Parameters
event:strEvent name, such as "train_started".
properties:dict[str, Any] | NoneOptional event properties. Values are sanitized and redacted before sending.
allowlist:set[str] | NoneIf set, only these property keys are included.
include_system_metadata:bool | NoneWhether to add extended system metadata for this event. If omitted, the config default is used.
distinct_id:str | NoneOptional backend identity override. When omitted, it defaults to the client's ephemeral session identifier.
def extend_context_providers(self, providers: list[ContextProvider] | None):

Register multiple context providers.

def extend_system_context_providers(self, providers: list[SystemContextProvider] | None):

Register multiple system context providers.

def flush(self):

Flush any buffered telemetry events.

def shutdown(self):

Shutdown the backend and flush pending telemetry.

@property
config: TelemetryConfig =

Undocumented

@property
is_enabled: bool =

Undocumented

@property
library_name: str =

Undocumented

@property
library_version: str | None =

Undocumented

@property
source_component: str =

Undocumented

def _add_provider(self, providers: list[ContextProvider] | list[SystemContextProvider], provider: ContextProvider | SystemContextProvider):

Register a provider once while preserving call order.

def _build_context(self, include_system_metadata: bool | None) -> dict[str, Any]:

Build the merged context for an event.

def _init_backend(self) -> TelemetryBackend:

Initialize the configured backend or fall back to NoopBackend.

def _merge_context_providers(self, context: dict[str, Any], providers: list[ContextProvider | SystemContextProvider], error_message: str):

Merge context from providers into the event context.

_logged_enabled_notice: bool =

Undocumented

_backend =

Undocumented

_base_context =

Undocumented

_config =

Undocumented

_context_providers: list[ContextProvider] =

Undocumented

_library_name =

Undocumented

_library_version =

Undocumented

_session_id =

Undocumented

_source_component =

Undocumented

_system_context_providers: list[SystemContextProvider] =

Undocumented