Skip to content

observability

Class info

Classes

Name Children Inherits
ObservabilityRegistry
llmling_agent.observability.observability_registry
Simplified registry that configures Logfire for single backend export.

    🛈 DocStrings

    Observability package.

    ObservabilityRegistry

    Simplified registry that configures Logfire for single backend export.

    Source code in src/llmling_agent/observability/observability_registry.py
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    class ObservabilityRegistry:
        """Simplified registry that configures Logfire for single backend export."""
    
        def __init__(self):
            self._configured = False
    
        def configure_observability(self, observability_config: ObservabilityConfig):
            """Configure Logfire for single backend export.
    
            Args:
                observability_config: Configuration for observability
            """
            if not observability_config.enabled or not observability_config.provider:
                logger.debug("Observability disabled or no provider configured")
                return
    
            if self._configured:
                logger.warning("Observability already configured, skipping")
                return
    
            config = observability_config.provider
            if not config.enabled:
                logger.debug("Provider is disabled", provider=config.type)
                return
    
            _setup_otel_environment(config)  # Configure OTEL env variables based on provider
            logfire.configure(
                service_name=config.service_name,
                environment=config.environment,
                console=False,
                send_to_logfire=(config.type == "logfire"),
            )
            logfire.instrument_pydantic_ai()
            logging.basicConfig(handlers=[logfire.LogfireLoggingHandler()])
    
            self._configured = True
            logger.info("Configured observability", provider=config.type)
    

    configure_observability

    configure_observability(observability_config: ObservabilityConfig)
    

    Configure Logfire for single backend export.

    Parameters:

    Name Type Description Default
    observability_config ObservabilityConfig

    Configuration for observability

    required
    Source code in src/llmling_agent/observability/observability_registry.py
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    def configure_observability(self, observability_config: ObservabilityConfig):
        """Configure Logfire for single backend export.
    
        Args:
            observability_config: Configuration for observability
        """
        if not observability_config.enabled or not observability_config.provider:
            logger.debug("Observability disabled or no provider configured")
            return
    
        if self._configured:
            logger.warning("Observability already configured, skipping")
            return
    
        config = observability_config.provider
        if not config.enabled:
            logger.debug("Provider is disabled", provider=config.type)
            return
    
        _setup_otel_environment(config)  # Configure OTEL env variables based on provider
        logfire.configure(
            service_name=config.service_name,
            environment=config.environment,
            console=False,
            send_to_logfire=(config.type == "logfire"),
        )
        logfire.instrument_pydantic_ai()
        logging.basicConfig(handlers=[logfire.LogfireLoggingHandler()])
    
        self._configured = True
        logger.info("Configured observability", provider=config.type)