Pustaka patching ke instrumen panggilan hilir - AWS X-Ray

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

Pustaka patching ke instrumen panggilan hilir

Untuk instrumen panggilan hilir, gunakan X-Ray SDK for Python untuk patch pustaka yang menggunakan aplikasi Anda. X-Ray SDK for Python dapat patch pustaka berikut.

Pustaka Didukung
  • botocore, boto3 – Instrumen AWS SDK for Python (Boto) klien.

  • pynamodb – Versi PynamoDB Instrumen dari klien Amazon DynamoDB.

  • aiobotocore, aioboto3 – Instrumen asyncio-versi terintegrasi dari klien SDK for Python.

  • requests, aiohttp – Instrumen klien HTTP tingkat tinggi.

  • httplib, http.client – Instrumen klien HTTP tingkat rendah dan pustaka tingkat yang lebih tinggi yang menggunakannya.

  • sqlite3 – Instrumen klien SQLite.

  • mysql-connector-python – Instrumen klien MySQL.

  • pg8000 – Instrumen antarmuka Pure-Python PostgreSQL.

  • psycopg2 – Adaptor basis data Instrumen PostgreSQL.

  • pymongo – Instrumen klien MongoDB.

  • pymysql— InstrumenPyMyKlien berbasis SQL untuk MySQL dan MariaDB.

Ketika Anda menggunakan pustaka yang dipatch, X-Ray SDK for Python membuat subsegmen untuk panggilan dan catatan informasi dari permintaan dan respons. Segmen harus tersedia untuk SDK untuk membuat subsegmen, baik dari SDK middleware atau dari AWS Lambda.

catatan

Jika Anda menggunakan SQLAlchemy ORM, Anda dapat instrumen kueri SQL Anda dengan mengimpor versi SDK dari sesi SQLAlchemy dan kueri kelas. Lihat Gunakan SQLAlchemy ORM untuk instruksi.

Untuk patch semua pustaka yang tersedia, gunakan fungsi patch_all di aws_xray_sdk.core. Beberapa pustaka, seperti httplib dan urllib, mungkin perlu mengaktifkan patch ganda dengan memanggil patch_all(double_patch=True).

contoh main.py - Patch semua pustaka yang didukung
import boto3 import botocore import requests import sqlite3 from aws_xray_sdk.core import xray_recorder from aws_xray_sdk.core import patch_all patch_all()

Untuk patch sebuah pustaka tunggal, hubungi patch dengan tupel dari nama pustaka. Untuk mencapai hal ini, Anda perlu menyediakan daftar elemen tunggal.

contoh main.py - Patch pustaka tertentu
import boto3 import botocore import requests import mysql-connector-python from aws_xray_sdk.core import xray_recorder from aws_xray_sdk.core import patch libraries = (['botocore']) patch(libraries)
catatan

Dalam beberapa kasus, kunci yang Anda gunakan untuk patch pustaka tidak cocok dengan nama pustaka. Beberapa kunci berfungsi sebagai alias untuk satu atau lebih pustaka.

Alias Pustaka

Menelusuri konteks untuk pekerjaan asynchronous

Untuk pustaka terintegrasi asyncio, atau untuk membuat subsegment bagi fungsi asynchronous, Anda juga harus mengonfigurasi X-Ray SDK for Python dengan konteks async. Mengimpor kelas AsyncContext dan lulus instans nya untuk pencatat X-Ray.

catatan

Pustaka dukungan kerangka kerja web, seperti AIOHTTP, tidak ditangani melalui modul aws_xray_sdk.core.patcher. Mereka tidak akan muncul dalam katalog patcher dari pustaka yang didukung.

contoh main.py – Patch aioboto3
import asyncio import aioboto3 import requests 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()) from aws_xray_sdk.core import patch libraries = (['aioboto3']) patch(libraries)