FastAPI интерфейс¶
Logfire будет FastAPI Пользовательские и сторонние инструменты и logfire.instrument_fastapi() Методология.
Монтаж¶
Установите logfire с помощью fastapi extra:
{{ install_logfire(extras=['fastapi']) }}
Использование¶
У нас есть минимальный пример ниже. Пожалуйста, установите Uvicorn, чтобы запустить его:
pip install uvicorn
Вы можете запустить его с python main.py:
import logfire
from fastapi import FastAPI
app = FastAPI()
logfire.configure()
logfire.instrument_fastapi(app)
@app.get("/hello")
async def hello(name: str):
return {"message": f"hello {name}"}
if __name__ == "__main__":
import uvicorn
uvicorn.run(app)
Затем посетите http://localhost: 8000/hello? name = world и проверьте журнал.
Скачать OpenTelemetry FastAPI¶
Сторонний пакет OpenTelemetry FastAPI Instrumentation добавляет диапазон к каждому запросу, который содержит подробные свойства, связанные с HTTP-запросом, такие как полный URL-адрес и пользовательский прокси. Время начала и окончания позволяет увидеть, сколько времени требуется для обработки каждого запроса.
[logfire.instrument_fastapi()][logfire. По умолчанию Logfire. instrument_fastapi] Применяет это обнаружение. Вы можете отключить его, передав use_opentelemetry_instrumentation=False.
logfire.instrument_fastapi() Также принимаются любые дополнительные параметры ключевых слов и передаются в OpenTelemetry FastAPIInstrumentor.instrument_app() Метод. Дополнительные сведения см. в документации.
Интерфейс Logfire: запись конечных параметров и ошибок проверки¶
logfire.instrument_fastapi() выдает для каждого запроса диапазон под названием FastAPI 参数, который показывает время, необходимое FastAPI для анализа и проверки параметров функции конечных точек в запросе и устранения любых зависимостей. По умолчанию диапазон также содержит следующие свойства:
-
values: Сопоставляет имена параметров конечной функции со словарем для разосланных и проверенных значений. -
errors: список ошибок проверки для любых недопустимых входных значений.
Вы можете настроить функцию request_attributes_mapper, передав ее instrument_fastapi. Эта функция будет вызываться с объектом Request или WebSocket и со словарем свойств по умолчанию. Она должна вернуть новый словарь свойств или вернуть None, чтобы задать уровень диапазона "debug", чтобы он был скрыт по умолчанию. Пример:
import logfire
app = ...
def request_attributes_mapper(request, attributes):
if attributes["errors"]:
# Only log validation errors, not valid arguments
return {
"errors": attributes["errors"],
"my_custom_attribute": ...,
}
else:
# Don't log anything for valid requests
return None
logfire.configure()
logfire.instrument_fastapi(app, request_attributes_mapper=request_attributes_mapper)
Внимание
Функция [request_attributes_mapper ][logfire.Logfire.instrument_fastapi(request_attributes_mapper)] не изменяет содержимое 值 или 错误, но она безопасно заменяет их новыми значениями.
Исключить URL-адреса из обнаружения¶
Чтобы избежать отслеживания некоторых URL-адресов, можно указать строку регулярного выражения, разделенного запятыми, которое будет соответствовать полному URL-адресу запроса. Это можно передать:
-
instrument_fastapiНапример, если [excluded_urls][logfire.Logfire.instrument_fastapi(excluded_urls)] Например:logfire.instrument_fastapi(app, excluded_urls='/health') -
Переменная среды
OTEL_PYTHON_FASTAPI_EXCLUDED_URLS. -
Переменная среды
OTEL_PYTHON_EXCLUDED_URLS(это относится и к другим обнаружениям).
Заголовок запроса и ответа¶
本文总阅读量次