llama-stack-mirror/llama_stack/core/telemetry/telemetry.py
2025-10-03 12:49:22 -04:00

30 lines
881 B
Python

# 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 abc import abstractmethod
from fastapi import FastAPI
from pydantic import BaseModel
from sqlalchemy import Engine
class TelemetryProvider(BaseModel):
"""
TelemetryProvider standardizes how telemetry is provided to the application.
"""
@abstractmethod
def fastapi_middleware(self, app: FastAPI, *args, **kwargs):
"""
Injects FastAPI middleware that instruments the application for telemetry.
"""
...
@abstractmethod
def sqlalchemy_instrumentation(self, engine: Engine | None = None):
"""
Injects SQLAlchemy instrumentation that instruments the application for telemetry.
"""
...