OpenCensus Python を使用した依存関係の追跡
依存関係は、アプリケーションによって呼び出される外部コンポーネントです。 依存関係データは、OpenCensus Python とそのさまざまな統合を使用して収集されます。 その後、データは Azure Monitor の Application Insights に dependencies
テレメトリとして送信されます。
まず、最新の OpenCensus Python SDK を使用して Python アプリケーションをインストルメント化します。
プロセス内の依存関係
OpenCensus Python SDK for Azure Monitor を使用すると、"プロセス内" の依存関係テレメトリ (アプリケーション内で発生する情報とロジック) を送信できます。 プロセス内の依存関係には、分析で INPROC
として type
フィールドがあります。
from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer
tracer = Tracer(exporter=AzureExporter(connection_string="InstrumentationKey=<your-ikey-here>"), sampler=ProbabilitySampler(1.0))
with tracer.span(name='foo'): # <-- A dependency telemetry item will be sent for this span "foo"
print('Hello, World!')
"requests" 統合を使用した依存関係
OpenCensus の requests
統合を使用して、送信要求を追跡します。
PyPI から opencensus-ext-requests
をダウンロードしてインストールし、トレース統合に追加します。 Python の requests ライブラリを使用して送信された要求が追跡されます。
import requests
from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace import config_integration
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer
config_integration.trace_integrations(['requests']) # <-- this line enables the requests integration
tracer = Tracer(exporter=AzureExporter(connection_string="InstrumentationKey=<your-ikey-here>"), sampler=ProbabilitySampler(1.0))
with tracer.span(name='parent'):
response = requests.get(url='https://www.wikipedia.org/wiki/Rabbit') # <-- this request will be tracked
"httplib" 統合を使用した依存関係
OpenCensus の httplib
統合を使用して送信要求を追跡します。
PyPI から opencensus-ext-httplib
をダウンロードしてインストールし、トレース統合に追加します。 http.client を使用して送信された要求は、Python3 または httplib for Python2 を使用して追跡されます。
import http.client as httplib
from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace import config_integration
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer
config_integration.trace_integrations(['httplib'])
conn = httplib.HTTPConnection("www.python.org")
tracer = Tracer(
exporter=AzureExporter(),
sampler=ProbabilitySampler(1.0)
)
conn.request("GET", "http://www.python.org", "", {})
response = conn.getresponse()
conn.close()
"django" 統合を使用した依存関係
OpenCensus の django
統合を使用して、送信 Diango 要求を追跡します。
Note
追跡される送信 Django 要求は、データベースに対して行われた呼び出しのみです。 Django アプリケーションに対して行われた要求については、受信要求に関する記事を参照してください。
PyPI から opencensus-ext-django
をダウンロードしてインストールし、次の行を Django settings.py
ファイルの MIDDLEWARE
セクションに追加します。
MIDDLEWARE = [
...
'opencensus.ext.django.middleware.OpencensusMiddleware',
]
追加の構成を指定することもできます。詳細については、カスタマイズに関するページを参照してください。
OPENCENSUS = {
'TRACE': {
'SAMPLER': 'opencensus.trace.samplers.ProbabilitySampler(rate=1)',
'EXPORTER': '''opencensus.ext.azure.trace_exporter.AzureExporter(
connection_string="InstrumentationKey=<your-ikey-here>"
)''',
}
}
依存関係を使用する Django サンプル アプリケーションは、ここにある Azure Monitor OpenCensus Python サンプル リポジトリ内にあります。
"mysql" 統合を使用した依存関係
OpenCensus の mysql
統合を使用して、MYSQL 依存関係を追跡します。 この統合は、mysql コネクタ ライブラリをサポートしています。
PyPI から opencensus-ext-mysql
をダウンロードしてインストールし、次の行をコードに追加します。
from opencensus.trace import config_integration
config_integration.trace_integrations(['mysql'])
"pymysql" 統合を使用した依存関係
OpenCensus の pymysql
統合を使用して、PyMySQL 依存関係を追跡します。
PyPI から opencensus-ext-pymysql
をダウンロードしてインストールし、次の行をコードに追加します。
from opencensus.trace import config_integration
config_integration.trace_integrations(['pymysql'])
"postgresql" 統合を使用した依存関係
OpenCensus の postgresql
統合を使用して、PostgreSQL 依存関係を追跡します。 この統合は、psycopg2 ライブラリをサポートしています。
PyPI から opencensus-ext-postgresql
をダウンロードしてインストールし、次の行をコードに追加します。
from opencensus.trace import config_integration
config_integration.trace_integrations(['postgresql'])
"pymongo" 統合を使用した依存関係
OpenCensus の pymongo
統合を使用して、MongoDB 依存関係を追跡します。 この統合は、pymongo ライブラリをサポートしています。
PyPI から opencensus-ext-pymongo
をダウンロードしてインストールし、次の行をコードに追加します。
from opencensus.trace import config_integration
config_integration.trace_integrations(['pymongo'])
"sqlalchemy" 統合を使用した依存関係
OpenCensus の sqlalchemy
統合を使用して、SQLAlchemy を使用した依存関係を追跡します。 この統合により、基になるデータベースに関係なく、sqlalchemy パッケージの使用状況が追跡されます。
from opencensus.trace import config_integration
config_integration.trace_integrations(['sqlalchemy'])