diff --git a/docs/docs/distributions/self_hosted_distro/meta-reference-gpu.md b/docs/docs/distributions/self_hosted_distro/meta-reference-gpu.md index 403a31667..6432575b5 100644 --- a/docs/docs/distributions/self_hosted_distro/meta-reference-gpu.md +++ b/docs/docs/distributions/self_hosted_distro/meta-reference-gpu.md @@ -21,7 +21,6 @@ The `llamastack/distribution-meta-reference-gpu` distribution consists of the fo | inference | `inline::meta-reference` | | safety | `inline::llama-guard` | | scoring | `inline::basic`, `inline::llm-as-judge`, `inline::braintrust` | -| telemetry | `inline::meta-reference` | | tool_runtime | `remote::brave-search`, `remote::tavily-search`, `inline::rag-runtime`, `remote::model-context-protocol` | | vector_io | `inline::faiss`, `remote::chromadb`, `remote::pgvector` | diff --git a/docs/docs/distributions/self_hosted_distro/nvidia.md b/docs/docs/distributions/self_hosted_distro/nvidia.md index a6e185442..ea75a2351 100644 --- a/docs/docs/distributions/self_hosted_distro/nvidia.md +++ b/docs/docs/distributions/self_hosted_distro/nvidia.md @@ -16,7 +16,6 @@ The `llamastack/distribution-nvidia` distribution consists of the following prov | post_training | `remote::nvidia` | | safety | `remote::nvidia` | | scoring | `inline::basic` | -| telemetry | `inline::meta-reference` | | tool_runtime | `inline::rag-runtime` | | vector_io | `inline::faiss` | diff --git a/llama_stack/core/configure.py b/llama_stack/core/configure.py index 64473c053..bfa2c6d71 100644 --- a/llama_stack/core/configure.py +++ b/llama_stack/core/configure.py @@ -64,7 +64,7 @@ def configure_api_providers(config: StackRunConfig, build_spec: DistributionSpec if config.apis: apis_to_serve = config.apis else: - apis_to_serve = [a.value for a in Api if a not in (Api.telemetry, Api.inspect, Api.providers)] + apis_to_serve = [a.value for a in Api if a not in (Api.inspect, Api.providers)] for api_str in apis_to_serve: api = Api(api_str) diff --git a/llama_stack/core/datatypes.py b/llama_stack/core/datatypes.py index 10cc87bc2..b376901fd 100644 --- a/llama_stack/core/datatypes.py +++ b/llama_stack/core/datatypes.py @@ -176,6 +176,10 @@ class DistributionSpec(BaseModel): ) +class TelemetryConfig(BaseModel): + enabled: bool = Field(default=False, description="enable or disable telemetry") + + class LoggingConfig(BaseModel): category_levels: dict[str, str] = Field( default_factory=dict, @@ -493,6 +497,8 @@ If not specified, a default SQLite store will be used.""", logging: LoggingConfig | None = Field(default=None, description="Configuration for Llama Stack Logging") + telemetry: TelemetryConfig = Field(default_factory=TelemetryConfig, description="Configuration for telemetry") + server: ServerConfig = Field( default_factory=ServerConfig, description="Configuration for the HTTP(S) server", diff --git a/llama_stack/core/distribution.py b/llama_stack/core/distribution.py index 124eaa02c..0e1f672c3 100644 --- a/llama_stack/core/distribution.py +++ b/llama_stack/core/distribution.py @@ -25,7 +25,7 @@ from llama_stack.providers.datatypes import ( logger = get_logger(name=__name__, category="core") -INTERNAL_APIS = {Api.inspect, Api.providers, Api.prompts, Api.conversations} +INTERNAL_APIS = {Api.inspect, Api.providers, Api.prompts, Api.conversations, Api.telemetry} def stack_apis() -> list[Api]: diff --git a/llama_stack/core/library_client.py b/llama_stack/core/library_client.py index c5dc678dd..1179075cd 100644 --- a/llama_stack/core/library_client.py +++ b/llama_stack/core/library_client.py @@ -48,12 +48,7 @@ from llama_stack.core.utils.config import redact_sensitive_fields from llama_stack.core.utils.context import preserve_contexts_async_generator from llama_stack.core.utils.exec import in_notebook from llama_stack.log import get_logger -from llama_stack.providers.utils.telemetry.tracing import ( - CURRENT_TRACE_CONTEXT, - end_trace, - setup_logger, - start_trace, -) +from llama_stack.providers.utils.telemetry.tracing import CURRENT_TRACE_CONTEXT, end_trace, setup_logger, start_trace from llama_stack.strong_typing.inspection import is_unwrapped_body_param logger = get_logger(name=__name__, category="core") diff --git a/llama_stack/core/resolver.py b/llama_stack/core/resolver.py index 6bc7a36f6..f2d7089a6 100644 --- a/llama_stack/core/resolver.py +++ b/llama_stack/core/resolver.py @@ -26,7 +26,6 @@ from llama_stack.apis.safety import Safety from llama_stack.apis.scoring import Scoring from llama_stack.apis.scoring_functions import ScoringFunctions from llama_stack.apis.shields import Shields -from llama_stack.apis.telemetry import Telemetry from llama_stack.apis.tools import ToolGroups, ToolRuntime from llama_stack.apis.vector_io import VectorIO from llama_stack.apis.version import LLAMA_STACK_API_V1ALPHA @@ -47,6 +46,7 @@ from llama_stack.providers.datatypes import ( Api, BenchmarksProtocolPrivate, DatasetsProtocolPrivate, + InlineProviderSpec, ModelsProtocolPrivate, ProviderSpec, RemoteProviderConfig, @@ -82,7 +82,6 @@ def api_protocol_map(external_apis: dict[Api, ExternalApiSpec] | None = None) -> Api.models: Models, Api.safety: Safety, Api.shields: Shields, - Api.telemetry: Telemetry, Api.datasetio: DatasetIO, Api.datasets: Datasets, Api.scoring: Scoring, @@ -204,9 +203,7 @@ def specs_for_autorouted_apis(apis_to_serve: list[str] | set[str]) -> dict[str, module="llama_stack.core.routers", routing_table_api=info.routing_table_api, api_dependencies=[info.routing_table_api], - # Add telemetry as an optional dependency to all auto-routed providers - optional_api_dependencies=[Api.telemetry], - deps__=([info.routing_table_api.value, Api.telemetry.value]), + deps__=([info.routing_table_api.value]), ), ) } @@ -239,6 +236,24 @@ def validate_and_prepare_providers( key = api_str if api not in router_apis else f"inner-{api_str}" providers_with_specs[key] = specs + # TODO: remove this logic, telemetry should not have providers. + # if telemetry has been enabled in the config initialize our internal impl + # telemetry is not an external API so it SHOULD NOT be auto-routed. + if run_config.telemetry.enabled: + specs = {} + p = InlineProviderSpec( + api=Api.telemetry, + provider_type="inline::meta-reference", + pip_packages=[], + optional_api_dependencies=[Api.datasetio], + module="llama_stack.providers.inline.telemetry.meta_reference", + config_class="llama_stack.providers.inline.telemetry.meta_reference.config.TelemetryConfig", + description="Meta's reference implementation of telemetry and observability using OpenTelemetry.", + ) + spec = ProviderWithSpec(spec=p, provider_type="inline::meta-reference", provider_id="meta-reference") + specs["meta-reference"] = spec + providers_with_specs["telemetry"] = specs + return providers_with_specs @@ -389,6 +404,8 @@ async def instantiate_provider( args = [config, deps] if "policy" in inspect.signature(getattr(module, method)).parameters: args.append(policy) + if "telemetry_enabled" in inspect.signature(getattr(module, method)).parameters and run_config.telemetry: + args.append(run_config.telemetry.enabled) fn = getattr(module, method) impl = await fn(*args) diff --git a/llama_stack/core/routers/__init__.py b/llama_stack/core/routers/__init__.py index a1a8b0144..4463d2460 100644 --- a/llama_stack/core/routers/__init__.py +++ b/llama_stack/core/routers/__init__.py @@ -63,16 +63,17 @@ async def get_auto_router_impl( "eval": EvalRouter, "tool_runtime": ToolRuntimeRouter, } - api_to_deps = { - "inference": {"telemetry": Api.telemetry}, - } if api.value not in api_to_routers: raise ValueError(f"API {api.value} not found in router map") api_to_dep_impl = {} - for dep_name, dep_api in api_to_deps.get(api.value, {}).items(): - if dep_api in deps: - api_to_dep_impl[dep_name] = deps[dep_api] + if run_config.telemetry.enabled: + api_to_deps = { + "inference": {"telemetry": Api.telemetry}, + } + for dep_name, dep_api in api_to_deps.get(api.value, {}).items(): + if dep_api in deps: + api_to_dep_impl[dep_name] = deps[dep_api] # TODO: move pass configs to routers instead if api == Api.inference and run_config.inference_store: diff --git a/llama_stack/core/server/server.py b/llama_stack/core/server/server.py index 69a78e1df..db7584b01 100644 --- a/llama_stack/core/server/server.py +++ b/llama_stack/core/server/server.py @@ -445,7 +445,7 @@ def create_app() -> StackApp: if cors_config: app.add_middleware(CORSMiddleware, **cors_config.model_dump()) - if Api.telemetry in impls: + if config.telemetry.enabled: setup_logger(impls[Api.telemetry]) else: setup_logger(TelemetryAdapter(TelemetryConfig(), {})) diff --git a/llama_stack/distributions/ci-tests/build.yaml b/llama_stack/distributions/ci-tests/build.yaml index a4d920cd6..191d0ae59 100644 --- a/llama_stack/distributions/ci-tests/build.yaml +++ b/llama_stack/distributions/ci-tests/build.yaml @@ -32,8 +32,6 @@ distribution_spec: - provider_type: inline::code-scanner agents: - provider_type: inline::meta-reference - telemetry: - - provider_type: inline::meta-reference post_training: - provider_type: inline::torchtune-cpu eval: diff --git a/llama_stack/distributions/ci-tests/run.yaml b/llama_stack/distributions/ci-tests/run.yaml index 0a8587328..e964c044c 100644 --- a/llama_stack/distributions/ci-tests/run.yaml +++ b/llama_stack/distributions/ci-tests/run.yaml @@ -10,7 +10,6 @@ apis: - post_training - safety - scoring -- telemetry - tool_runtime - vector_io providers: @@ -154,13 +153,6 @@ providers: responses_store: type: sqlite db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/ci-tests}/responses_store.db - telemetry: - - provider_id: meta-reference - provider_type: inline::meta-reference - config: - service_name: "${env.OTEL_SERVICE_NAME:=\u200B}" - sinks: ${env.TELEMETRY_SINKS:=} - otel_exporter_otlp_endpoint: ${env.OTEL_EXPORTER_OTLP_ENDPOINT:=} post_training: - provider_id: torchtune-cpu provider_type: inline::torchtune-cpu diff --git a/llama_stack/distributions/dell/build.yaml b/llama_stack/distributions/dell/build.yaml index acd5d827c..7bc26ca9e 100644 --- a/llama_stack/distributions/dell/build.yaml +++ b/llama_stack/distributions/dell/build.yaml @@ -14,8 +14,6 @@ distribution_spec: - provider_type: inline::llama-guard agents: - provider_type: inline::meta-reference - telemetry: - - provider_type: inline::meta-reference eval: - provider_type: inline::meta-reference datasetio: diff --git a/llama_stack/distributions/dell/dell.py b/llama_stack/distributions/dell/dell.py index afa246d59..88e72688f 100644 --- a/llama_stack/distributions/dell/dell.py +++ b/llama_stack/distributions/dell/dell.py @@ -32,7 +32,6 @@ def get_distribution_template() -> DistributionTemplate: ], "safety": [BuildProvider(provider_type="inline::llama-guard")], "agents": [BuildProvider(provider_type="inline::meta-reference")], - "telemetry": [BuildProvider(provider_type="inline::meta-reference")], "eval": [BuildProvider(provider_type="inline::meta-reference")], "datasetio": [ BuildProvider(provider_type="remote::huggingface"), diff --git a/llama_stack/distributions/dell/run-with-safety.yaml b/llama_stack/distributions/dell/run-with-safety.yaml index 0196f40c3..fa8e63107 100644 --- a/llama_stack/distributions/dell/run-with-safety.yaml +++ b/llama_stack/distributions/dell/run-with-safety.yaml @@ -7,7 +7,6 @@ apis: - inference - safety - scoring -- telemetry - tool_runtime - vector_io providers: @@ -45,13 +44,6 @@ providers: responses_store: type: sqlite db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/dell}/responses_store.db - telemetry: - - provider_id: meta-reference - provider_type: inline::meta-reference - config: - service_name: "${env.OTEL_SERVICE_NAME:=\u200B}" - sinks: ${env.TELEMETRY_SINKS:=} - otel_exporter_otlp_endpoint: ${env.OTEL_EXPORTER_OTLP_ENDPOINT:=} eval: - provider_id: meta-reference provider_type: inline::meta-reference diff --git a/llama_stack/distributions/dell/run.yaml b/llama_stack/distributions/dell/run.yaml index 19b02dc9a..ac6ce22b8 100644 --- a/llama_stack/distributions/dell/run.yaml +++ b/llama_stack/distributions/dell/run.yaml @@ -7,7 +7,6 @@ apis: - inference - safety - scoring -- telemetry - tool_runtime - vector_io providers: @@ -41,13 +40,6 @@ providers: responses_store: type: sqlite db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/dell}/responses_store.db - telemetry: - - provider_id: meta-reference - provider_type: inline::meta-reference - config: - service_name: "${env.OTEL_SERVICE_NAME:=\u200B}" - sinks: ${env.TELEMETRY_SINKS:=} - otel_exporter_otlp_endpoint: ${env.OTEL_EXPORTER_OTLP_ENDPOINT:=} eval: - provider_id: meta-reference provider_type: inline::meta-reference diff --git a/llama_stack/distributions/meta-reference-gpu/build.yaml b/llama_stack/distributions/meta-reference-gpu/build.yaml index 47e782c85..1513742a7 100644 --- a/llama_stack/distributions/meta-reference-gpu/build.yaml +++ b/llama_stack/distributions/meta-reference-gpu/build.yaml @@ -12,8 +12,6 @@ distribution_spec: - provider_type: inline::llama-guard agents: - provider_type: inline::meta-reference - telemetry: - - provider_type: inline::meta-reference eval: - provider_type: inline::meta-reference datasetio: diff --git a/llama_stack/distributions/meta-reference-gpu/meta_reference.py b/llama_stack/distributions/meta-reference-gpu/meta_reference.py index 22b618634..4e4ddef33 100644 --- a/llama_stack/distributions/meta-reference-gpu/meta_reference.py +++ b/llama_stack/distributions/meta-reference-gpu/meta_reference.py @@ -34,7 +34,6 @@ def get_distribution_template() -> DistributionTemplate: ], "safety": [BuildProvider(provider_type="inline::llama-guard")], "agents": [BuildProvider(provider_type="inline::meta-reference")], - "telemetry": [BuildProvider(provider_type="inline::meta-reference")], "eval": [BuildProvider(provider_type="inline::meta-reference")], "datasetio": [ BuildProvider(provider_type="remote::huggingface"), diff --git a/llama_stack/distributions/meta-reference-gpu/run-with-safety.yaml b/llama_stack/distributions/meta-reference-gpu/run-with-safety.yaml index 4acd19b38..3467fffa4 100644 --- a/llama_stack/distributions/meta-reference-gpu/run-with-safety.yaml +++ b/llama_stack/distributions/meta-reference-gpu/run-with-safety.yaml @@ -7,7 +7,6 @@ apis: - inference - safety - scoring -- telemetry - tool_runtime - vector_io providers: @@ -56,13 +55,6 @@ providers: responses_store: type: sqlite db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/meta-reference-gpu}/responses_store.db - telemetry: - - provider_id: meta-reference - provider_type: inline::meta-reference - config: - service_name: "${env.OTEL_SERVICE_NAME:=\u200B}" - sinks: ${env.TELEMETRY_SINKS:=} - otel_exporter_otlp_endpoint: ${env.OTEL_EXPORTER_OTLP_ENDPOINT:=} eval: - provider_id: meta-reference provider_type: inline::meta-reference diff --git a/llama_stack/distributions/meta-reference-gpu/run.yaml b/llama_stack/distributions/meta-reference-gpu/run.yaml index 1d0aa5172..f8546205a 100644 --- a/llama_stack/distributions/meta-reference-gpu/run.yaml +++ b/llama_stack/distributions/meta-reference-gpu/run.yaml @@ -7,7 +7,6 @@ apis: - inference - safety - scoring -- telemetry - tool_runtime - vector_io providers: @@ -46,13 +45,6 @@ providers: responses_store: type: sqlite db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/meta-reference-gpu}/responses_store.db - telemetry: - - provider_id: meta-reference - provider_type: inline::meta-reference - config: - service_name: "${env.OTEL_SERVICE_NAME:=\u200B}" - sinks: ${env.TELEMETRY_SINKS:=} - otel_exporter_otlp_endpoint: ${env.OTEL_EXPORTER_OTLP_ENDPOINT:=} eval: - provider_id: meta-reference provider_type: inline::meta-reference diff --git a/llama_stack/distributions/nvidia/build.yaml b/llama_stack/distributions/nvidia/build.yaml index bc78756d2..8ddd12439 100644 --- a/llama_stack/distributions/nvidia/build.yaml +++ b/llama_stack/distributions/nvidia/build.yaml @@ -10,8 +10,6 @@ distribution_spec: - provider_type: remote::nvidia agents: - provider_type: inline::meta-reference - telemetry: - - provider_type: inline::meta-reference eval: - provider_type: remote::nvidia post_training: diff --git a/llama_stack/distributions/nvidia/nvidia.py b/llama_stack/distributions/nvidia/nvidia.py index b41eea130..a92a2e6f8 100644 --- a/llama_stack/distributions/nvidia/nvidia.py +++ b/llama_stack/distributions/nvidia/nvidia.py @@ -21,7 +21,6 @@ def get_distribution_template(name: str = "nvidia") -> DistributionTemplate: "vector_io": [BuildProvider(provider_type="inline::faiss")], "safety": [BuildProvider(provider_type="remote::nvidia")], "agents": [BuildProvider(provider_type="inline::meta-reference")], - "telemetry": [BuildProvider(provider_type="inline::meta-reference")], "eval": [BuildProvider(provider_type="remote::nvidia")], "post_training": [BuildProvider(provider_type="remote::nvidia")], "datasetio": [ diff --git a/llama_stack/distributions/nvidia/run-with-safety.yaml b/llama_stack/distributions/nvidia/run-with-safety.yaml index 3ee15b7c1..c56d9a7c1 100644 --- a/llama_stack/distributions/nvidia/run-with-safety.yaml +++ b/llama_stack/distributions/nvidia/run-with-safety.yaml @@ -9,7 +9,6 @@ apis: - post_training - safety - scoring -- telemetry - tool_runtime - vector_io providers: @@ -48,13 +47,6 @@ providers: responses_store: type: sqlite db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/nvidia}/responses_store.db - telemetry: - - provider_id: meta-reference - provider_type: inline::meta-reference - config: - service_name: "${env.OTEL_SERVICE_NAME:=\u200B}" - sinks: ${env.TELEMETRY_SINKS:=} - otel_exporter_otlp_endpoint: ${env.OTEL_EXPORTER_OTLP_ENDPOINT:=} eval: - provider_id: nvidia provider_type: remote::nvidia diff --git a/llama_stack/distributions/nvidia/run.yaml b/llama_stack/distributions/nvidia/run.yaml index e947e1e2a..8608ca425 100644 --- a/llama_stack/distributions/nvidia/run.yaml +++ b/llama_stack/distributions/nvidia/run.yaml @@ -9,7 +9,6 @@ apis: - post_training - safety - scoring -- telemetry - tool_runtime - vector_io providers: @@ -43,13 +42,6 @@ providers: responses_store: type: sqlite db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/nvidia}/responses_store.db - telemetry: - - provider_id: meta-reference - provider_type: inline::meta-reference - config: - service_name: "${env.OTEL_SERVICE_NAME:=\u200B}" - sinks: ${env.TELEMETRY_SINKS:=} - otel_exporter_otlp_endpoint: ${env.OTEL_EXPORTER_OTLP_ENDPOINT:=} eval: - provider_id: nvidia provider_type: remote::nvidia diff --git a/llama_stack/distributions/open-benchmark/build.yaml b/llama_stack/distributions/open-benchmark/build.yaml index 6ff4155dc..05acd98e3 100644 --- a/llama_stack/distributions/open-benchmark/build.yaml +++ b/llama_stack/distributions/open-benchmark/build.yaml @@ -16,8 +16,6 @@ distribution_spec: - provider_type: inline::llama-guard agents: - provider_type: inline::meta-reference - telemetry: - - provider_type: inline::meta-reference eval: - provider_type: inline::meta-reference datasetio: diff --git a/llama_stack/distributions/open-benchmark/open_benchmark.py b/llama_stack/distributions/open-benchmark/open_benchmark.py index 1d84512cd..2b7760894 100644 --- a/llama_stack/distributions/open-benchmark/open_benchmark.py +++ b/llama_stack/distributions/open-benchmark/open_benchmark.py @@ -105,7 +105,6 @@ def get_distribution_template() -> DistributionTemplate: ], "safety": [BuildProvider(provider_type="inline::llama-guard")], "agents": [BuildProvider(provider_type="inline::meta-reference")], - "telemetry": [BuildProvider(provider_type="inline::meta-reference")], "eval": [BuildProvider(provider_type="inline::meta-reference")], "datasetio": [ BuildProvider(provider_type="remote::huggingface"), diff --git a/llama_stack/distributions/open-benchmark/run.yaml b/llama_stack/distributions/open-benchmark/run.yaml index ef17a4d3b..067584649 100644 --- a/llama_stack/distributions/open-benchmark/run.yaml +++ b/llama_stack/distributions/open-benchmark/run.yaml @@ -7,7 +7,6 @@ apis: - inference - safety - scoring -- telemetry - tool_runtime - vector_io providers: @@ -76,13 +75,6 @@ providers: responses_store: type: sqlite db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/open-benchmark}/responses_store.db - telemetry: - - provider_id: meta-reference - provider_type: inline::meta-reference - config: - service_name: "${env.OTEL_SERVICE_NAME:=\u200B}" - sinks: ${env.TELEMETRY_SINKS:=} - otel_exporter_otlp_endpoint: ${env.OTEL_EXPORTER_OTLP_ENDPOINT:=} eval: - provider_id: meta-reference provider_type: inline::meta-reference diff --git a/llama_stack/distributions/postgres-demo/build.yaml b/llama_stack/distributions/postgres-demo/build.yaml index e5a5d3b83..063dc3999 100644 --- a/llama_stack/distributions/postgres-demo/build.yaml +++ b/llama_stack/distributions/postgres-demo/build.yaml @@ -11,8 +11,6 @@ distribution_spec: - provider_type: inline::llama-guard agents: - provider_type: inline::meta-reference - telemetry: - - provider_type: inline::meta-reference tool_runtime: - provider_type: remote::brave-search - provider_type: remote::tavily-search diff --git a/llama_stack/distributions/postgres-demo/postgres_demo.py b/llama_stack/distributions/postgres-demo/postgres_demo.py index 354c8bd19..1f3e88b3b 100644 --- a/llama_stack/distributions/postgres-demo/postgres_demo.py +++ b/llama_stack/distributions/postgres-demo/postgres_demo.py @@ -42,7 +42,6 @@ def get_distribution_template() -> DistributionTemplate: "vector_io": [BuildProvider(provider_type="remote::chromadb")], "safety": [BuildProvider(provider_type="inline::llama-guard")], "agents": [BuildProvider(provider_type="inline::meta-reference")], - "telemetry": [BuildProvider(provider_type="inline::meta-reference")], "tool_runtime": [ BuildProvider(provider_type="remote::brave-search"), BuildProvider(provider_type="remote::tavily-search"), @@ -116,17 +115,6 @@ def get_distribution_template() -> DistributionTemplate: ), ) ], - "telemetry": [ - Provider( - provider_id="meta-reference", - provider_type="inline::meta-reference", - config=dict( - service_name="${env.OTEL_SERVICE_NAME:=\u200b}", - sinks="${env.TELEMETRY_SINKS:=console,otel_trace}", - otel_exporter_otlp_endpoint="${env.OTEL_EXPORTER_OTLP_ENDPOINT:=http://localhost:4318/v1/traces}", - ), - ) - ], }, default_models=default_models + [embedding_model], default_tool_groups=default_tool_groups, diff --git a/llama_stack/distributions/postgres-demo/run.yaml b/llama_stack/distributions/postgres-demo/run.yaml index 5a05d0c24..69032becf 100644 --- a/llama_stack/distributions/postgres-demo/run.yaml +++ b/llama_stack/distributions/postgres-demo/run.yaml @@ -4,7 +4,6 @@ apis: - agents - inference - safety -- telemetry - tool_runtime - vector_io providers: @@ -49,13 +48,6 @@ providers: db: ${env.POSTGRES_DB:=llamastack} user: ${env.POSTGRES_USER:=llamastack} password: ${env.POSTGRES_PASSWORD:=llamastack} - telemetry: - - provider_id: meta-reference - provider_type: inline::meta-reference - config: - service_name: "${env.OTEL_SERVICE_NAME:=\u200B}" - sinks: ${env.TELEMETRY_SINKS:=console,otel_trace} - otel_exporter_otlp_endpoint: ${env.OTEL_EXPORTER_OTLP_ENDPOINT:=http://localhost:4318/v1/traces} tool_runtime: - provider_id: brave-search provider_type: remote::brave-search diff --git a/llama_stack/distributions/starter-gpu/build.yaml b/llama_stack/distributions/starter-gpu/build.yaml index 05a2bf180..943c6134d 100644 --- a/llama_stack/distributions/starter-gpu/build.yaml +++ b/llama_stack/distributions/starter-gpu/build.yaml @@ -33,8 +33,6 @@ distribution_spec: - provider_type: inline::code-scanner agents: - provider_type: inline::meta-reference - telemetry: - - provider_type: inline::meta-reference post_training: - provider_type: inline::huggingface-gpu eval: diff --git a/llama_stack/distributions/starter-gpu/run.yaml b/llama_stack/distributions/starter-gpu/run.yaml index 05b88f012..d55e5e4be 100644 --- a/llama_stack/distributions/starter-gpu/run.yaml +++ b/llama_stack/distributions/starter-gpu/run.yaml @@ -10,7 +10,6 @@ apis: - post_training - safety - scoring -- telemetry - tool_runtime - vector_io providers: @@ -154,13 +153,6 @@ providers: responses_store: type: sqlite db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/starter-gpu}/responses_store.db - telemetry: - - provider_id: meta-reference - provider_type: inline::meta-reference - config: - service_name: "${env.OTEL_SERVICE_NAME:=\u200B}" - sinks: ${env.TELEMETRY_SINKS:=} - otel_exporter_otlp_endpoint: ${env.OTEL_EXPORTER_OTLP_ENDPOINT:=} post_training: - provider_id: huggingface-gpu provider_type: inline::huggingface-gpu diff --git a/llama_stack/distributions/starter/build.yaml b/llama_stack/distributions/starter/build.yaml index 2f0cd24fd..c2719d50d 100644 --- a/llama_stack/distributions/starter/build.yaml +++ b/llama_stack/distributions/starter/build.yaml @@ -33,8 +33,6 @@ distribution_spec: - provider_type: inline::code-scanner agents: - provider_type: inline::meta-reference - telemetry: - - provider_type: inline::meta-reference post_training: - provider_type: inline::torchtune-cpu eval: diff --git a/llama_stack/distributions/starter/run.yaml b/llama_stack/distributions/starter/run.yaml index 74bbc6fca..f15be3cc5 100644 --- a/llama_stack/distributions/starter/run.yaml +++ b/llama_stack/distributions/starter/run.yaml @@ -10,7 +10,6 @@ apis: - post_training - safety - scoring -- telemetry - tool_runtime - vector_io providers: @@ -154,13 +153,6 @@ providers: responses_store: type: sqlite db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/starter}/responses_store.db - telemetry: - - provider_id: meta-reference - provider_type: inline::meta-reference - config: - service_name: "${env.OTEL_SERVICE_NAME:=\u200B}" - sinks: ${env.TELEMETRY_SINKS:=} - otel_exporter_otlp_endpoint: ${env.OTEL_EXPORTER_OTLP_ENDPOINT:=} post_training: - provider_id: torchtune-cpu provider_type: inline::torchtune-cpu diff --git a/llama_stack/distributions/starter/starter.py b/llama_stack/distributions/starter/starter.py index 6bee51ff0..f87ebcc5f 100644 --- a/llama_stack/distributions/starter/starter.py +++ b/llama_stack/distributions/starter/starter.py @@ -120,7 +120,6 @@ def get_distribution_template(name: str = "starter") -> DistributionTemplate: BuildProvider(provider_type="inline::code-scanner"), ], "agents": [BuildProvider(provider_type="inline::meta-reference")], - "telemetry": [BuildProvider(provider_type="inline::meta-reference")], "post_training": [BuildProvider(provider_type="inline::torchtune-cpu")], "eval": [BuildProvider(provider_type="inline::meta-reference")], "datasetio": [ diff --git a/llama_stack/distributions/watsonx/build.yaml b/llama_stack/distributions/watsonx/build.yaml index 06349a741..dba1a94e2 100644 --- a/llama_stack/distributions/watsonx/build.yaml +++ b/llama_stack/distributions/watsonx/build.yaml @@ -11,8 +11,6 @@ distribution_spec: - provider_type: inline::llama-guard agents: - provider_type: inline::meta-reference - telemetry: - - provider_type: inline::meta-reference eval: - provider_type: inline::meta-reference datasetio: diff --git a/llama_stack/distributions/watsonx/run.yaml b/llama_stack/distributions/watsonx/run.yaml index 3fc2c9d0e..6b925e180 100644 --- a/llama_stack/distributions/watsonx/run.yaml +++ b/llama_stack/distributions/watsonx/run.yaml @@ -8,7 +8,6 @@ apis: - inference - safety - scoring -- telemetry - tool_runtime - vector_io providers: @@ -41,13 +40,6 @@ providers: responses_store: type: sqlite db_path: ${env.SQLITE_STORE_DIR:=~/.llama/distributions/watsonx}/responses_store.db - telemetry: - - provider_id: meta-reference - provider_type: inline::meta-reference - config: - service_name: "${env.OTEL_SERVICE_NAME:=\u200B}" - sinks: ${env.TELEMETRY_SINKS:=} - otel_exporter_otlp_endpoint: ${env.OTEL_EXPORTER_OTLP_ENDPOINT:=} eval: - provider_id: meta-reference provider_type: inline::meta-reference diff --git a/llama_stack/distributions/watsonx/watsonx.py b/llama_stack/distributions/watsonx/watsonx.py index 645770612..d79aea872 100644 --- a/llama_stack/distributions/watsonx/watsonx.py +++ b/llama_stack/distributions/watsonx/watsonx.py @@ -20,7 +20,6 @@ def get_distribution_template(name: str = "watsonx") -> DistributionTemplate: "vector_io": [BuildProvider(provider_type="inline::faiss")], "safety": [BuildProvider(provider_type="inline::llama-guard")], "agents": [BuildProvider(provider_type="inline::meta-reference")], - "telemetry": [BuildProvider(provider_type="inline::meta-reference")], "eval": [BuildProvider(provider_type="inline::meta-reference")], "datasetio": [ BuildProvider(provider_type="remote::huggingface"), diff --git a/llama_stack/providers/inline/agents/meta_reference/__init__.py b/llama_stack/providers/inline/agents/meta_reference/__init__.py index d5cfd2e5b..91287617a 100644 --- a/llama_stack/providers/inline/agents/meta_reference/__init__.py +++ b/llama_stack/providers/inline/agents/meta_reference/__init__.py @@ -11,7 +11,12 @@ from llama_stack.core.datatypes import AccessRule, Api from .config import MetaReferenceAgentsImplConfig -async def get_provider_impl(config: MetaReferenceAgentsImplConfig, deps: dict[Api, Any], policy: list[AccessRule]): +async def get_provider_impl( + config: MetaReferenceAgentsImplConfig, + deps: dict[Api, Any], + policy: list[AccessRule], + telemetry_enabled: bool = False, +): from .agents import MetaReferenceAgentsImpl impl = MetaReferenceAgentsImpl( @@ -23,7 +28,7 @@ async def get_provider_impl(config: MetaReferenceAgentsImplConfig, deps: dict[Ap deps[Api.tool_groups], deps[Api.conversations], policy, - Api.telemetry in deps, + telemetry_enabled, ) await impl.initialize() return impl diff --git a/llama_stack/providers/registry/agents.py b/llama_stack/providers/registry/agents.py index b246ae062..1845d6f46 100644 --- a/llama_stack/providers/registry/agents.py +++ b/llama_stack/providers/registry/agents.py @@ -36,9 +36,6 @@ def available_providers() -> list[ProviderSpec]: Api.tool_groups, Api.conversations, ], - optional_api_dependencies=[ - Api.telemetry, - ], description="Meta's reference implementation of an agent system that can use tools, access vector databases, and perform complex reasoning tasks.", ), ] diff --git a/llama_stack/providers/registry/telemetry.py b/llama_stack/providers/registry/telemetry.py deleted file mode 100644 index b50b422c1..000000000 --- a/llama_stack/providers/registry/telemetry.py +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright (c) Meta Platforms, Inc. and affiliates. -# All rights reserved. -# -# This source code is licensed under the terms described in the LICENSE file in -# the root directory of this source tree. - - -from llama_stack.providers.datatypes import ( - Api, - InlineProviderSpec, - ProviderSpec, -) - - -def available_providers() -> list[ProviderSpec]: - return [ - InlineProviderSpec( - api=Api.telemetry, - provider_type="inline::meta-reference", - pip_packages=[ - "opentelemetry-sdk", - "opentelemetry-exporter-otlp-proto-http", - ], - optional_api_dependencies=[Api.datasetio], - module="llama_stack.providers.inline.telemetry.meta_reference", - config_class="llama_stack.providers.inline.telemetry.meta_reference.config.TelemetryConfig", - description="Meta's reference implementation of telemetry and observability using OpenTelemetry.", - ), - ] diff --git a/tests/unit/distribution/test_distribution.py b/tests/unit/distribution/test_distribution.py index 91ea6be6f..08a376008 100644 --- a/tests/unit/distribution/test_distribution.py +++ b/tests/unit/distribution/test_distribution.py @@ -161,6 +161,8 @@ class TestProviderRegistry: assert internal_api not in apis, f"Internal API {internal_api} should not be in providable_apis" for api in apis: + if api == Api.telemetry: + continue module_name = f"llama_stack.providers.registry.{api.name.lower()}" try: importlib.import_module(module_name)