diff --git a/llama_stack/providers/inline/telemetry/meta_reference/config.py b/llama_stack/providers/inline/telemetry/meta_reference/config.py index 67f8cc6ee..12777fa31 100644 --- a/llama_stack/providers/inline/telemetry/meta_reference/config.py +++ b/llama_stack/providers/inline/telemetry/meta_reference/config.py @@ -13,15 +13,20 @@ from llama_stack.distribution.utils.config_dirs import RUNTIME_BASE_DIR class TelemetrySink(str, Enum): - OTEL = "otel" + OTEL_TRACE = "otel_trace" + OTEL_METRIC = "otel_metric" SQLITE = "sqlite" CONSOLE = "console" class TelemetryConfig(BaseModel): - otel_endpoint: str = Field( + otel_trace_endpoint: str = Field( default="http://localhost:4318/v1/traces", - description="The OpenTelemetry collector endpoint URL", + description="The OpenTelemetry collector endpoint URL for traces", + ) + otel_metric_endpoint: str = Field( + default="http://localhost:4318/v1/metrics", + description="The OpenTelemetry collector endpoint URL for metrics", ) service_name: str = Field( default="llama-stack", diff --git a/llama_stack/providers/inline/telemetry/meta_reference/telemetry.py b/llama_stack/providers/inline/telemetry/meta_reference/telemetry.py index 766bc0fc0..cf2f0c82e 100644 --- a/llama_stack/providers/inline/telemetry/meta_reference/telemetry.py +++ b/llama_stack/providers/inline/telemetry/meta_reference/telemetry.py @@ -91,15 +91,16 @@ class TelemetryAdapter(TelemetryDatasetMixin, Telemetry): provider = TracerProvider(resource=resource) trace.set_tracer_provider(provider) _TRACER_PROVIDER = provider - if TelemetrySink.OTEL in self.config.sinks: - otlp_exporter = OTLPSpanExporter( - endpoint=self.config.otel_endpoint, + if TelemetrySink.OTEL_TRACE in self.config.sinks: + span_exporter = OTLPSpanExporter( + endpoint=self.config.otel_trace_endpoint, ) - span_processor = BatchSpanProcessor(otlp_exporter) + span_processor = BatchSpanProcessor(span_exporter) trace.get_tracer_provider().add_span_processor(span_processor) + if TelemetrySink.OTEL_METRIC in self.config.sinks: metric_reader = PeriodicExportingMetricReader( OTLPMetricExporter( - endpoint=self.config.otel_endpoint, + endpoint=self.config.otel_metric_endpoint, ) ) metric_provider = MeterProvider(resource=resource, metric_readers=[metric_reader]) @@ -109,7 +110,7 @@ class TelemetryAdapter(TelemetryDatasetMixin, Telemetry): if TelemetrySink.CONSOLE in self.config.sinks: trace.get_tracer_provider().add_span_processor(ConsoleSpanProcessor()) - if TelemetrySink.OTEL in self.config.sinks: + if TelemetrySink.OTEL_METRIC in self.config.sinks: self.meter = metrics.get_meter(__name__) if TelemetrySink.SQLITE in self.config.sinks: self.trace_store = SQLiteTraceStore(self.config.sqlite_db_path)