Menghasilkan subsegment kustom dengan X-Ray SDK for Python - AWS X-Ray

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menghasilkan subsegment kustom dengan X-Ray SDK for Python

Subsegmen memperpanjang segmen penelusuran dengan detail tentang pekerjaan yang dilakukan untuk melayani permintaan. Setiap kali Anda melakukan panggilan dengan klien berinstrumen, X-Ray tersebut mencatat informasi yang dihasilkan dalam subsegmen. Anda dapat membuat subsegment tambahan untuk mengelompokkan subsegment lain, untuk mengukur performa bagian kode, atau untuk mencatat anotasi dan metadata.

Untuk mengelola subsegment, gunakan metode begin_subsegment dan end_subsegment.

contoh main.py - Subsegmen kustom
from aws_xray_sdk.core import xray_recorder subsegment = xray_recorder.begin_subsegment('annotations') subsegment.put_annotation('id', 12345) xray_recorder.end_subsegment()

Untuk membuat subsegmen untuk fungsi sinkron, gunakan dekorator @xray_recorder.capture. Anda dapat melewati nama untuk subsegment ke fungsi capture atau meninggalkannya agar menggunakan nama fungsi.

contoh main.py - Fungsi subsegmen
from aws_xray_sdk.core import xray_recorder @xray_recorder.capture('## create_user') def create_user(): ...

Untuk fungsi asynchronous, gunakan dekorator @xray_recorder.capture_async, dan lewati konteks async untuk mencatat.

contoh main.py - fungsi asynchronous subsegmen
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()

Ketika Anda membuat subsegmen dalam segmen atau subsegmen lain, X-Ray SDK for Python membuat ID untuknya dan mencatat waktu mulai dan waktu akhir.

contoh Subsegmen dengan metadata
"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" } },