Package Config¶
Package-specific observability configuration that respects parent settings.
This module provides configuration that: 1. Never overrides global OTEL configuration 2. Reads package-specific environment variables 3. Provides sensible defaults that work with any parent setup 4. Allows runtime enable/disable of features 5. Supports multiple verbosity levels
Classes¶
- class arshai.observability.package_config.ObservabilityLevel(value)[source]¶
-
Package observability levels.
- OFF = 'OFF'¶
- ERROR = 'ERROR'¶
- INFO = 'INFO'¶
- DEBUG = 'DEBUG'¶
- class arshai.observability.package_config.PackageObservabilityConfig(**data)[source]¶
Bases:
IDTOLLM-friendly observability configuration for Arshai package.
This configuration is designed to be a well-behaved OTEL citizen: - Never creates or configures OTEL providers/exporters - Respects parent application’s OTEL setup - Uses package-specific environment variables - Provides runtime control over telemetry features
-
level:
ObservabilityLevel¶
- classmethod from_environment()[source]¶
Create configuration from package-specific environment variables.
Uses ARSHAI_TELEMETRY_* environment variables to avoid conflicts with parent application’s OTEL configuration.
- Return type:
- Returns:
PackageObservabilityConfig instance
- is_provider_enabled(provider)[source]¶
Check if observability is enabled for a specific LLM provider.
- configure_provider(provider, enabled=None, **kwargs)[source]¶
Create a new config with provider-specific settings.
- Parameters:
- Return type:
- Returns:
New PackageObservabilityConfig instance
- with_level(level)[source]¶
Create a new config with different observability level.
- Parameters:
level (
ObservabilityLevel) – New observability level- Return type:
- Returns:
New PackageObservabilityConfig instance
- disable_all()[source]¶
Create a new config with all observability disabled.
- Return type:
- Returns:
New PackageObservabilityConfig instance with everything disabled
- model_config: ClassVar[ConfigDict] = {'allow_mutation': False, 'arbitrary_types_allowed': True, 'smart_union': True, 'validate_assignment': True}¶
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
-
level:
- class arshai.observability.package_config.SpanKind(value)[source]¶
-
Phoenix-compatible span kinds.
Based on Phoenix documentation: https://arize.com/docs/phoenix/tracing/how-to-tracing/setup-tracing/instrument-python
- CHAIN = 'CHAIN'¶
- LLM = 'LLM'¶
- TOOL = 'TOOL'¶
- RETRIEVER = 'RETRIEVER'¶
- EMBEDDING = 'EMBEDDING'¶
- AGENT = 'AGENT'¶
- RERANKER = 'RERANKER'¶
- GUARDRAIL = 'GUARDRAIL'¶
- EVALUATOR = 'EVALUATOR'¶