ダウンストリーム呼び出しを計測するためのライブラリへのパッチ適用 - AWS X-Ray

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ダウンストリーム呼び出しを計測するためのライブラリへのパッチ適用

ダウンストリーム呼び出しを実装するには、X-Ray SDK for Python を使用して、アプリケーションが使用するライブラリにパッチを適用します。X-Ray SDK for Python では、次のライブラリにパッチを適用できます。

サポートされているライブラリ

  • botocore,boto3— 計測AWS SDK for Python (Boto)クライアント。

  • pynamodb— Amazon DynamoDB クライアントの PynamoDB のバージョンを実装します。

  • aiobotocore,aioboto3— 計測asyncio-実装された Python クライアント用 SDK のバージョン。

  • requests,aiohttp— 実装された高レベルの HTTP クライアント。

  • httplib,http.client— 実装された低レベルの HTTP クライアントおよびそれらを使用する高レベルのライブラリ。

  • sqlite3— 実装された SQLite クライアント。

  • mysql-connector-python— 実装された MySQL クライアント。

  • pg8000— 実装された純粋な Python PostgreSQL インターフェイス。

  • psycopg2— 実装された PostgreSQL データベースアダプター。

  • pymongo— 実装された MongoDB クライアント。

  • pymysql— MySQL と MariaDB の実装された PyMySQL ベースのクライアント。

パッチ適用されたライブラリを使用すると、X-Ray SDK for Python は呼び出しのサブセグメントを作成し、リクエストとレスポンスの情報を記録します。SDK ミドルウェアまたは AWS Lambda のいずれかから、サブセグメントを作成するためにSDK でセグメントを使用できる必要があります。

注記

SQLAlchemy ORM を使用する場合は、SQLAlchemy のセッションクラスとクエリクラスの SDK のバージョンをインポートして、SQL クエリを追加できます。手順については、Use SQLAlchemy ORM を参照してください。

使用可能なすべてのライブラリにパッチを適用するには、aws_xray_sdk.corepatch_all 関数を使用します。httpliburllib などの一部のライブラリでは、patch_all(double_patch=True) を呼び出して二重パッチ適用を有効にすることが必要な場合があります。

例 main.py — サポートされているすべてのライブラリにパッチを適用

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()

単一のライブラリにパッチを適用するには、ライブラリ名のタプルを使用して patch を呼び出します。これを行うには、単一の要素リストを用意する必要があります。

例 main.py — 特定のライブラリにパッチを適用

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)
注記

場合によっては、ライブラリにパッチを適用するために使用するキーがライブラリ名と一致しない場合があります。一部のキーは、1 つまたは複数のライブラリのエイリアスとして機能します。

ライブラリエイリアス

非同期作業のコンテキストのトレース

を使用する場合asyncio統合ライブラリ、または非同期関数のサブセグメントを作成するでは、非同期コンテキストで Python 用 X-Ray SDK も設定する必要があります。をインポートします。AsyncContextクラスを作成し、そのインスタンスを X-Ray レコーダーに渡します。

注記

ウェブフレームワークサポートライブラリ (例: AIOHTTP) は、aws_xray_sdk.core.patcher モジュールで処理することはできません。これらのライブラリは、サポートされているライブラリの patcher カタログに表示されません。

例 main.py — 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)