빠른 API 인터페이스¶
로그파이어 의지 빠른 API 사용자 지정 및 타사 도구 및 logfire.instrument_fastapi() 방법.
설치¶
fastapi 추가와 함께 logfire 설치:
{{ 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 계측패키지는 전체 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(이것은 다른 테스트에도 적용됩니다).
요청 및 응답 헤더 캡처¶
本文总阅读量次