Lacak dependensi dengan OpenCensus Python

Catatan

OpenCensus Python SDK tidak digunakan lagi, tetapi Microsoft mendukungnya hingga penghentian pada 30 September 2024. Kami sekarang merekomendasikan penawaran Python berbasis OpenTelemetry dan memberikan panduan migrasi.

Dependensi adalah komponen eksternal yang dipanggil oleh aplikasi Anda. Data dependensi masuk dikumpulkan menggunakan OpenCensus Python dan berbagai integrasinya. Data selanjutnya dikirim ke Application Insights di bawah Azure Monitor sebagai telemetri dependencies.

Pertama, lengkapi aplikasi Python Anda dengan OpenCensus Python SDK terbaru.

Dependensi dalam proses

OpenCensus Python SDK untuk Azure Monitor memungkinkan Anda untuk mengirim telemetri dependensi "dalam proses" (informasi dan logika yang terjadi dalam aplikasi Anda). Dependensi dalam proses akan memiliki type bidang seperti INPROC dalam analitik.

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!')

Dependensi dengan integrasi "permintaan"

Lacak permintaan keluar Anda dengan integrasi requests OpenCensus.

Unduh dan pasangopencensus-ext-requests dari PyPI dan tambahkan ke integrasi jejak. Permintaan yang dikirim menggunakan pustakanpermintaan Python akan dilacak.

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

Dependensi dengan integrasi "httplib"

Lacak permintaan keluar Anda dengan integrasi httplib OpenCensus.

Unduh dan pasangopencensus-ext-httplib dari PyPI dan tambahkan ke integrasi jejak. Permintaan yang dikirim menggunakan http.client untuk Python3 atau httplib untuk Python2 akan dilacak.

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

Ketergantungan dengan integrasi "django"

Lacak permintaan Django keluar Anda dengan integrasi django OpenCensus.

Catatan

Satu-satunya permintaan keluar Django yang dilacak adalah panggilan yang dilakukan ke database. Untuk permintaan yang dibuat ke aplikasi Django, lihat permintaan masuk.

Unduh dan pasang opencensus-ext-djangodari PyPI dan tambahkan baris berikut ke MIDDLEWARE bagian dalam file settings.pyDjango.

MIDDLEWARE = [
    ...
    'opencensus.ext.django.middleware.OpencensusMiddleware',
]

Konfigurasi tambahan dapat disediakan, baca kustomisasi untuk referensi lengkap.

OPENCENSUS = {
    'TRACE': {
        'SAMPLER': 'opencensus.trace.samplers.ProbabilitySampler(rate=1)',
        'EXPORTER': '''opencensus.ext.azure.trace_exporter.AzureExporter(
            connection_string="InstrumentationKey=<your-ikey-here>"
        )''',
    }
}

Anda dapat menemukan aplikasi contoh Django yang dapat menggunakan dependensi di repositori sampel Python OpenCensus Azure Monitor yang terletak di sini.

Dependensi dengan integrasi "mysql"

Lacak dependensi MYSQL Anda dengan integrasi mysql OpenCensus. Integrasi ini mendukung pustaka konektor mysql.

Unduh dan pasangopencensus-ext-mysql dari PyPI dan tambahkan baris berikut untuk kode Anda.

from opencensus.trace import config_integration

config_integration.trace_integrations(['mysql'])

Dependensi dengan integrasi "pymysql"

Lacak dependensi PyMySQL Anda dengan integrasi pymysql OpenCensus.

Unduh dan pasangopencensus-ext-pymysql dari PyPI dan tambahkan baris berikut untuk kode Anda.

from opencensus.trace import config_integration

config_integration.trace_integrations(['pymysql'])

Dependensi dengan integrasi "postgresql"

Lacak dependensi PostgreSQL Anda dengan integrasi postgresql OpenCensus. Integrasi ini mendukung pustaka psycopg2.

Unduh dan pasangopencensus-ext-postgresql dari PyPI dan tambahkan baris berikut untuk kode Anda.

from opencensus.trace import config_integration

config_integration.trace_integrations(['postgresql'])

Dependensi dengan integrasi "pymongo"

Lacak dependensi MongoDB Anda dengan integrasi pymongo OpenCensus. Integrasi ini mendukung pustaka pymongo.

Unduh dan pasangopencensus-ext-pymongo dari PyPI dan tambahkan baris berikut untuk kode Anda.

from opencensus.trace import config_integration

config_integration.trace_integrations(['pymongo'])

Dependensi dengan integrasi "sqlalchemy"

Lacak dependensi Anda menggunakan SQLAlchemy menggunakan integrasi sqlalchemy OpenCensus. Integrasi ini melacak penggunaan paket sqlalchemy, terlepas dari database yang mendasarinya.

from opencensus.trace import config_integration

config_integration.trace_integrations(['sqlalchemy'])

Langkah berikutnya