콘텐츠로 이동

빠른 API 인터페이스

로그파이어 의지 빠른 API 사용자 지정 및 타사 도구 및 logfire.instrument_fastapi() 방법.

설치

fastapi 추가와 함께 logfire 설치:

{{ install_logfire(extras=['fastapi']) }}

사용법

아래에 최소한의 예가 있습니다. 실행하려면Uvicorn를 설치하십시오.

pip install uvicorn

사용할 수 있습니다 python main.py 실행:

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 계측패키지는 전체 URL 및 사용자 에이전트와 같은 HTTP 요청에 대한 자세한 속성을 포함하는 각 요청에 스팬을 추가합니다. 시작 시간과 종료 시간을 통해 각 요청을 처리하는 데 걸리는 시간을 확인할 수 있습니다.

[logfire.instrument_fastapi()][logfire]. 기본적으로 Logfire입니다. ity_pasapi]가 이 탐지를 적용합니다.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 스팬 레벨을 기본적으로 숨기도록 "디버그"로 설정합니다. 예를 들어:

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(이것은 다른 테스트에도 적용됩니다).

요청 및 응답 헤더 캡처


本文总阅读量次