기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Python용 X-Ray SDK를 사용하여 사용자 지정 하위 세그먼트 생성하기
하위 세그먼트는 추적의 세그먼트를 확장하여 요청을 처리하기 위해 완료된 작업에 대한 세부 정보를 표시합니다. 계측되는 클라이언트에서 직접 호출할 때마다, X-Ray SDK는 하위 세그먼트 안에 생성된 정보를 기록합니다. 추가 하위 세그먼트를 생성하여 다른 하위 세그먼트를 그룹화하거나, 코드 섹션의 성능을 평가하거나, 주석 및 메타데이터를 기록할 수 있습니다.
하위 세그먼트를 관리하려면 begin_subsegment
및 end_subsegment
메서드를 사용합니다.
예 main.py – 사용자 지정 하위 세그먼트
from aws_xray_sdk.core import xray_recorder
subsegment = xray_recorder.begin_subsegment('annotations')
subsegment.put_annotation('id', 12345)
xray_recorder.end_subsegment()
동기식 함수에 대한 하위 세그먼트를 생성하려면 @xray_recorder.capture
데코레이터를 사용합니다. 하위 세그먼트에 대한 이름을 캡처 함수에 전달하거나 그대로 두고 함수 이름을 사용할 수 있습니다.
예 main.py – 함수 하위 세그먼트
from aws_xray_sdk.core import xray_recorder
@xray_recorder.capture('## create_user')
def create_user():
...
비동기 함수의 경우 @xray_recorder.capture_async
데코레이터를 사용하며, 비동기 컨텍스트를 레코더에 전달합니다.
예 main.py – 비동기 함수 하위 세그먼트
from aws_xray_sdk.core.async_context import AsyncContext
from aws_xray_sdk.core import xray_recorder
xray_recorder.configure(service='my_service', context=AsyncContext())
@xray_recorder.capture_async('## create_user')
async def create_user():
...
async def main():
await myfunc()
하위 세그먼트를 세그먼트 또는 다른 하위 세그먼트 내에서 생성하면 Python용 X-Ray SDK가 해당 하위 세그먼트에 대해 ID를 생성하고 시작 시간 및 종료 시간을 기록합니다.
예 메타데이터가 포함된 하위 세그먼트
"subsegments": [{
"id": "6f1605cd8a07cb70",
"start_time": 1.480305974194E9,
"end_time": 1.4803059742E9,
"name": "Custom subsegment for UserModel.saveUser function",
"metadata": {
"debug": {
"test": "Metadata string from UserModel.saveUser"
}
},