Bagikan melalui


Menyiapkan Azure Monitor untuk aplikasi Python Anda

Perhatian

OpenCensus Python SDK dihentikan. Kami merekomendasikan penawaran Python berbasis OpenTelemetry dan memberikan panduan migrasi.

Azure Monitor mendukung pelacakan terdistribusi, pengumpulan metrik, dan pengelogan aplikasi Python.

Solusi Microsoft yang didukung untuk melacak dan mengekspor data untuk aplikasi Python Anda adalah melalui OpenCensus Python SDK melalui pengekspor Azure Monitor.

Microsoft tidak merekomendasikan penggunaan SDK telemetri lain untuk Python sebagai solusi telemetri karena tidak didukung.

OpenCensus terhubung ke OpenTelemetry. Kami terus merekomendasikan OpenCensus sementara OpenTelemetry secara bertahap matang.

Prasyarat

Anda memerlukan langganan Azure. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.

Catatan

Pada tanggal 31 Maret 2025, dukungan untuk penyerapan kunci instrumentasi akan berakhir. Penyerapan kunci instrumentasi akan berjalan terus, namun kami tidak akan lagi menyediakan pembaruan atau dukungan terhadap fitur tersebut. Transisi ke string koneksi untuk memanfaatkan kemampuan baru.

Memperkenalkan OpenCensus Python SDK

OpenCensus adalah sekumpulan pustaka sumber terbuka untuk memungkinkan pengumpulan pelacakan terdistribusi, metrik, dan telemetri pengelogan. Dengan menggunakan pengekspor Azure Monitor, Anda dapat mengirim telemetri yang dikumpulkan ini ke Application Insights. Artikel ini memandu Anda melalui proses menyiapkan pengekspor OpenCensus dan Azure Monitor untuk Python untuk mengirim data pemantauan Anda ke Azure Monitor.

Instrumen dengan SDK OpenCensus Python dengan pengekspor Azure Monitor

Instal pengekspor OpenCensus Azure Monitor:

python -m pip install opencensus-ext-azure

SDK menggunakan tiga pengekspor Azure Monitor untuk mengirim berbagai jenis telemetri ke Azure Monitor. Mereka , trace, metricsdan logs. Untuk informasi selengkapnya tentang jenis telemetri ini, lihat Gambaran umum platform data. Gunakan petunjuk berikut untuk mengirim jenis telemetri ini melalui tiga pengekspor.

Pemetaan jenis telemetri

OpenCensus memetakan pengekspor berikut ke jenis telemetri yang Anda lihat di Azure Monitor.

Pilar pengamatan Jenis telemetri di Azure Monitor Penjelasan
Log Jejak, pengecualian, customEvents Telemetri log, telemetri pengecualian, telemetri peristiwa
Metrik customMetrics, performanceCounters Penghitung performa metrik kustom
Menelusuri Permintaan dependensi Permintaan masuk, permintaan keluar

Log

  1. Pertama, mari buat beberapa data log lokal.

    
    import logging
    
    logger = logging.getLogger(__name__)
    
    def main():
        """Generate random log data."""
        for num in range(5):
            logger.warning(f"Log Entry - {num}")
    
    if __name__ == "__main__":
        main()
    
  2. Entri log dipancarkan untuk setiap angka dalam rentang.

    Log Entry - 0
    Log Entry - 1
    Log Entry - 2
    Log Entry - 3
    Log Entry - 4
    
  3. Kami ingin melihat data log ini ke Azure Monitor. Anda dapat menentukannya dalam variabel lingkungan, APPLICATIONINSIGHTS_CONNECTION_STRING. Anda juga dapat meneruskan connection_string langsung ke AzureLogHandler, tetapi string koneksi tidak boleh ditambahkan ke kontrol versi.

    APPLICATIONINSIGHTS_CONNECTION_STRING=<appinsights-connection-string>
    

    Sebaiknya gunakan string koneksi untuk memberi contoh eksportir yang digunakan untuk mengirim telemetri ke Application Insights. Ubah kode Anda dari langkah sebelumnya berdasarkan sampel kode berikut:

    import logging
    from opencensus.ext.azure.log_exporter import AzureLogHandler
    
    logger = logging.getLogger(__name__)
    logger.addHandler(AzureLogHandler())
    
    # Alternatively manually pass in the connection_string
    # logger.addHandler(AzureLogHandler(connection_string=<appinsights-connection-string>))
    
    """Generate random log data."""
    for num in range(5):
        logger.warning(f"Log Entry - {num}")
    
  4. Pengekspor mengirim data log ke Azure Monitor. Anda dapat menemukan data pada traces.

    Dalam konteks ini, traces tidak sama dengan tracing. Di sini, traces mengacu pada jenis telemetri yang Anda lihat di Azure Monitor saat Anda menggunakan AzureLogHandler. Namun tracing mengacu pada konsep di OpenCensus dan berkaitan dengan pelacakan terdistribusi.

    Catatan

    Pencatat akar dikonfigurasi dengan tingkat warning. Itu berarti log apa pun yang Anda kirim yang memiliki tingkat keparahan lebih sedikit diabaikan, dan pada gilirannya, tidak akan dikirim ke Azure Monitor. Untuk informasi selengkapnya, lihat Dokumentasi pengelogan.

  5. Anda juga dapat menambahkan properti kustom ke pesan log Anda dalam extra argumen kata kunci dengan menggunakan custom_dimensions bidang . Properti ini muncul sebagai pasangan kunci-nilai di customDimensions di Azure Monitor.

    Catatan

    Agar fitur ini berfungsi, Anda perlu meneruskan kamus ke custom_dimensions bidang . Jika Anda meneruskan argumen dari jenis lain, pencatat akan mengabaikannya.

    import logging
    
    from opencensus.ext.azure.log_exporter import AzureLogHandler
    
    logger = logging.getLogger(__name__)
    logger.addHandler(AzureLogHandler())
    # Alternatively manually pass in the connection_string
    # logger.addHandler(AzureLogHandler(connection_string=<appinsights-connection-string>))
    
    properties = {'custom_dimensions': {'key_1': 'value_1', 'key_2': 'value_2'}}
    
    # Use properties in logging statements
    logger.warning('action', extra=properties)
    

Catatan

Sebagai bagian dari penggunaan instrumentasi Application Insights, kami mengumpulkan dan mengirim data diagnostik ke Microsoft. Data ini membantu kami menjalankan dan meningkatkan Application Insights. Anda memiliki opsi untuk menonaktifkan pengumpulan data yang tidak penting. Untuk mempelajari selengkapnya, lihat Statsbeat di Application Insights.

Mengonfigurasi pengelogan untuk aplikasi Django

Anda dapat mengonfigurasi pengelogan secara eksplisit dalam kode aplikasi Anda seperti sebelumnya untuk aplikasi Django Anda, atau Anda dapat menentukannya dalam konfigurasi pengelogan Django. Kode ini dapat masuk ke file apa pun yang Anda gunakan untuk konfigurasi pengaturan situs Django, biasanya settings.py.

Untuk informasi tentang cara mengonfigurasi pengaturan Django, lihat Pengaturan Django. Untuk informasi selengkapnya tentang cara mengonfigurasi pengelogan, lihat Pengelogan Django.

LOGGING = {
    "handlers": {
        "azure": {
            "level": "DEBUG",
            "class": "opencensus.ext.azure.log_exporter.AzureLogHandler",
            "connection_string": "<appinsights-connection-string>",
        },
        "console": {
            "level": "DEBUG",
            "class": "logging.StreamHandler",
            "stream": sys.stdout,
        },
      },
    "loggers": {
        "logger_name": {"handlers": ["azure", "console"]},
    },
}

Pastikan Anda menggunakan pencatat dengan nama yang sama dengan yang ditentukan dalam konfigurasi Anda.

# views.py

import logging
from django.shortcuts import request

logger = logging.getLogger("logger_name")
logger.warning("this will be tracked")

Mengirim pengecualian

OpenCensus Python tidak secara otomatis melacak dan mengirim telemetri exception. Ini dikirim melalui AzureLogHandler dengan menggunakan pengecualian melalui pustaka pengelogan Python. Anda dapat menambahkan properti kustom seperti yang Anda lakukan dengan pengelogan normal.

import logging

from opencensus.ext.azure.log_exporter import AzureLogHandler

logger = logging.getLogger(__name__)
logger.addHandler(AzureLogHandler())
# Alternatively, manually pass in the connection_string
# logger.addHandler(AzureLogHandler(connection_string=<appinsights-connection-string>))

properties = {'custom_dimensions': {'key_1': 'value_1', 'key_2': 'value_2'}}

# Use properties in exception logs
try:
    result = 1 / 0  # generate a ZeroDivisionError
except Exception:
    logger.exception('Captured an exception.', extra=properties)

Karena Anda harus mencatat pengecualian secara eksplisit, terserah Anda cara mencatat pengecualian yang tidak tertangani. OpenCensus tidak menempatkan pembatasan tentang cara melakukan pengelogan ini, tetapi Anda harus secara eksplisit mencatat telemetri pengecualian.

Mengirim aktivitas

Anda dapat mengirim customEvent telemetri dengan cara yang sama persis seperti Anda mengirim trace telemetri, kecuali dengan menggunakan AzureEventHandler sebagai gantinya.

import logging
from opencensus.ext.azure.log_exporter import AzureEventHandler

logger = logging.getLogger(__name__)
logger.addHandler(AzureEventHandler())
# Alternatively manually pass in the connection_string
# logger.addHandler(AzureEventHandler(connection_string=<appinsights-connection-string>))

logger.setLevel(logging.INFO)
logger.info('Hello, World!')

Pengambilan sampel

Untuk informasi tentang pengambilan sampel di OpenCensus, lihat Pengambilan sampel di OpenCensus.

Korelasi log

Untuk informasi tentang cara memperkaya log Anda dengan data konteks pelacakan, lihat Integrasi log OpenCensus Python.

Mengubah telemetri

Untuk detail tentang cara mengubah telemetri terlacak sebelum dikirim ke Azure Monitor, lihat prosesor telemetri OpenCensus Python.

Metrik

OpenCensus.stats mendukung empat metode agregasi tetapi memberikan dukungan parsial untuk Azure Monitor:

  • Count: Jumlah titik pengukuran. Nilainya kumulatif, hanya dapat meningkat, dan mengatur ulang ke 0 saat menghidupkan ulang.
  • Sum: Sejumlah titik pengukuran. Nilainya kumulatif, hanya dapat meningkat, dan mengatur ulang ke 0 saat menghidupkan ulang.
  • LastValue: Menyimpan nilai terakhir yang direkam dan menghilangkan yang lainnya.
  • Distribusi: Pengekspor Azure tidak mendukung distribusi histogram titik pengukuran.

Menghitung contoh agregasi

  1. Pertama, mari buat beberapa data metrik lokal. Kami membuat metrik untuk melacak berapa kali pengguna memilih tombol Enter .

    
    from datetime import datetime
    from opencensus.stats import aggregation as aggregation_module
    from opencensus.stats import measure as measure_module
    from opencensus.stats import stats as stats_module
    from opencensus.stats import view as view_module
    from opencensus.tags import tag_map as tag_map_module
    
    stats = stats_module.stats
    view_manager = stats.view_manager
    stats_recorder = stats.stats_recorder
    
    prompt_measure = measure_module.MeasureInt("prompts",
                                               "number of prompts",
                                               "prompts")
    prompt_view = view_module.View("prompt view",
                                   "number of prompts",
                                   [],
                                   prompt_measure,
                                   aggregation_module.CountAggregation())
    view_manager.register_view(prompt_view)
    mmap = stats_recorder.new_measurement_map()
    tmap = tag_map_module.TagMap()
    
    def main():
        for _ in range(4):
            mmap.measure_int_put(prompt_measure, 1)
            mmap.record(tmap)
            metrics = list(mmap.measure_to_view_map.get_metrics(datetime.utcnow()))
            print(metrics[0].time_series[0].points[0])
    
    if __name__ == "__main__":
        main()
    
  2. Metrik dibuat untuk melacak berkali-kali. Dengan setiap entri, nilainya bertahap dan informasi metrik muncul di konsol. Informasi ini mencakup nilai saat ini dan tanda waktu saat ini ketika metrik diperbarui.

    Point(value=ValueLong(5), timestamp=2019-10-09 20:58:04.930426)
    Point(value=ValueLong(6), timestamp=2019-10-09 20:58:05.170167)
    Point(value=ValueLong(7), timestamp=2019-10-09 20:58:05.438614)
    Point(value=ValueLong(7), timestamp=2019-10-09 20:58:05.834216)
    
  3. Memasukkan nilai sangat membantu untuk tujuan demonstrasi, tetapi kami ingin memancarkan data metrik ke Azure Monitor. Lewati string koneksi Anda langsung ke eksportir. Atau Anda dapat menentukannya dalam variabel lingkungan, APPLICATIONINSIGHTS_CONNECTION_STRING. Sebaiknya gunakan string koneksi untuk memberi contoh eksportir yang digunakan untuk mengirim telemetri ke Application Insights. Ubah kode Anda dari langkah sebelumnya berdasarkan sampel kode berikut:

    from datetime import datetime
    from opencensus.ext.azure import metrics_exporter
    from opencensus.stats import aggregation as aggregation_module
    from opencensus.stats import measure as measure_module
    from opencensus.stats import stats as stats_module
    from opencensus.stats import view as view_module
    from opencensus.tags import tag_map as tag_map_module
    
    stats = stats_module.stats
    view_manager = stats.view_manager
    stats_recorder = stats.stats_recorder
    
    prompt_measure = measure_module.MeasureInt("prompts",
                                               "number of prompts",
                                               "prompts")
    prompt_view = view_module.View("prompt view",
                                   "number of prompts",
                                   [],
                                   prompt_measure,
                                   aggregation_module.CountAggregation())
    view_manager.register_view(prompt_view)
    mmap = stats_recorder.new_measurement_map()
    tmap = tag_map_module.TagMap()
    
    exporter = metrics_exporter.new_metrics_exporter()
    # Alternatively manually pass in the connection_string
    # exporter = metrics_exporter.new_metrics_exporter(connection_string='<appinsights-connection-string>')
    
    view_manager.register_exporter(exporter)
    
    def main():
        for _ in range(10):
            input("Press enter.")
            mmap.measure_int_put(prompt_measure, 1)
            mmap.record(tmap)
            metrics = list(mmap.measure_to_view_map.get_metrics(datetime.utcnow()))
            print(metrics[0].time_series[0].points[0])
    
    if __name__ == "__main__":
        main()
    
  4. Pengekspor mengirim data metrik ke Azure Monitor pada interval tetap. Anda harus menetapkan nilai ini menjadi 60 detik karena backend Application Insights mengasumsikan agregasi titik metrik pada interval waktu 60 detik. Satu metrik dilacak, jadi data metrik ini, dengan nilai dan tanda waktu apa pun yang dikandungnya, dikirim setiap interval. Data bersifat kumulatif, hanya dapat meningkatkan, dan mengatur ulang ke 0 saat menghidupkan ulang.

    Anda dapat menemukan data di bawah customMetrics, tetapi customMetrics properti valueCount, , valueSum, valueMinvalueMax, dan valueStdDev tidak digunakan secara efektif.

Mengatur dimensi kustom dalam metrik

OpenCensus Python SDK memungkinkan Anda menambahkan dimensi kustom ke telemetri metrik Anda dengan menggunakan tags, yang seperti kamus pasangan kunci-nilai.

  1. Sisipkan tag yang ingin Anda gunakan ke dalam peta tag. Peta tag bertindak seperti semacam "kumpulan" dari semua tag yang tersedia yang dapat Anda gunakan.

    ...
    tmap = tag_map_module.TagMap()
    tmap.insert("url", "http://example.com")
    ...
    
  2. Untuk tertentu View, tentukan tag yang ingin Anda gunakan saat merekam metrik dengan tampilan tersebut melalui kunci tag.

    ...
    prompt_view = view_module.View("prompt view",
                                "number of prompts",
                                ["url"], # <-- A sequence of tag keys used to specify which tag key/value to use from the tag map
                                prompt_measure,
                                aggregation_module.CountAggregation())
    ...
    
  3. Pastikan untuk menggunakan peta tag saat Anda merekam di peta pengukuran. Kunci tag yang ditentukan dalam View harus ditemukan di peta tag yang digunakan untuk merekam.

    ...
    mmap = stats_recorder.new_measurement_map()
    mmap.measure_int_put(prompt_measure, 1)
    mmap.record(tmap) # <-- pass the tag map in here
    ...
    
  4. customMetrics Di bawah tabel, semua rekaman metrik yang dipancarkan dengan menggunakan prompt_view memiliki dimensi {"url":"http://example.com"}kustom .

  5. Untuk menghasilkan tag dengan nilai yang berbeda dengan menggunakan kunci yang sama, buat peta tag baru untuk mereka.

    ...
    tmap = tag_map_module.TagMap()
    tmap2 = tag_map_module.TagMap()
    tmap.insert("url", "http://example.com")
    tmap2.insert("url", "https://www.wikipedia.org/wiki/")
    ...
    

Penghitung kinerja

Secara default, pengekspor metrik mengirimkan kumpulan penghitung performa ke Azure Monitor. Anda dapat menonaktifkan kemampuan ini dengan mengatur enable_standard_metrics bendera ke False di konstruktor pengekspor metrik.

...
exporter = metrics_exporter.new_metrics_exporter(
  enable_standard_metrics=False,
  )
...

Penghitung kinerja berikut saat ini dikirim:

  • Memori yang Tersedia (byte)
  • Waktu Prosesor CPU (persentase)
  • Tingkat Permintaan Masuk (per detik)
  • Waktu Eksekusi Rata-Rata Permintaan Masuk (milidetik)
  • Proses Penggunaan CPU (persentase)
  • Proses Byte Privat (byte)

Anda seharusnya dapat melihat metrik ini di performanceCounters. Untuk informasi selengkapnya, lihat Penghitung kinerja.

Mengubah telemetri

Untuk detail tentang cara mengubah telemetri terlacak sebelum dikirim ke Azure Monitor, lihat prosesor telemetri OpenCensus Python.

Menelusuri

Catatan

Di OpenCensus, tracing mengacu pada pelacakan terdistribusi. Parameter AzureExporter mengirim requests dan dependency telemetri ke Azure Monitor.

  1. Pertama, mari buat beberapa data jejak secara lokal. Di Python IDLE, atau editor pilihan Anda, masukkan kode berikut:

    from opencensus.trace.samplers import ProbabilitySampler
    from opencensus.trace.tracer import Tracer
    
    tracer = Tracer(sampler=ProbabilitySampler(1.0))
    
    def main():
        with tracer.span(name="test") as span:
            for value in range(5):
                print(value)
    
    
    if __name__ == "__main__":
        main()
    
  2. Dengan setiap entri, nilai dicetak ke shell. Modul OpenCensus Python menghasilkan bagian yang sesuai dari SpanData. Proyek OpenCensus menentukan jejak sebagai pohon rentang.

    0
    [SpanData(name='test', context=SpanContext(trace_id=8aa41bc469f1a705aed1bdb20c342603, span_id=None, trace_options=TraceOptions(enabled=True), tracestate=None), span_id='15ac5123ac1f6847', parent_span_id=None, attributes=BoundedDict({}, maxlen=32), start_time='2019-06-27T18:21:22.805429Z', end_time='2019-06-27T18:21:44.933405Z', child_span_count=0, stack_trace=None, annotations=BoundedList([], maxlen=32), message_events=BoundedList([], maxlen=128), links=BoundedList([], maxlen=32), status=None, same_process_as_parent_span=None, span_kind=0)]
    1
    [SpanData(name='test', context=SpanContext(trace_id=8aa41bc469f1a705aed1bdb20c342603, span_id=None, trace_options=TraceOptions(enabled=True), tracestate=None), span_id='2e512f846ba342de', parent_span_id=None, attributes=BoundedDict({}, maxlen=32), start_time='2019-06-27T18:21:44.933405Z', end_time='2019-06-27T18:21:46.156787Z', child_span_count=0, stack_trace=None, annotations=BoundedList([], maxlen=32), message_events=BoundedList([], maxlen=128), links=BoundedList([], maxlen=32), status=None, same_process_as_parent_span=None, span_kind=0)]
    2
    [SpanData(name='test', context=SpanContext(trace_id=8aa41bc469f1a705aed1bdb20c342603, span_id=None, trace_options=TraceOptions(enabled=True), tracestate=None), span_id='f3f9f9ee6db4740a', parent_span_id=None, attributes=BoundedDict({}, maxlen=32), start_time='2019-06-27T18:21:46.157732Z', end_time='2019-06-27T18:21:47.269583Z', child_span_count=0, stack_trace=None, annotations=BoundedList([], maxlen=32), message_events=BoundedList([], maxlen=128), links=BoundedList([], maxlen=32), status=None, same_process_as_parent_span=None, span_kind=0)]
    
  3. Melihat output sangat membantu untuk tujuan demonstrasi, tetapi kami ingin memancarkan SpanData ke Azure Monitor. Lewati string koneksi Anda langsung ke eksportir. Atau Anda dapat menentukannya dalam variabel lingkungan, APPLICATIONINSIGHTS_CONNECTION_STRING. Sebaiknya gunakan string koneksi untuk memberi contoh eksportir yang digunakan untuk mengirim telemetri ke Application Insights. Ubah kode Anda dari langkah sebelumnya berdasarkan sampel kode berikut:

    from opencensus.ext.azure.trace_exporter import AzureExporter
    from opencensus.trace.samplers import ProbabilitySampler
    from opencensus.trace.tracer import Tracer
    
    tracer = Tracer(
        exporter=AzureExporter(),
        sampler=ProbabilitySampler(1.0),
    )
    # Alternatively manually pass in the connection_string
    # exporter = AzureExporter(
    #   connection_string='<appinsights-connection-string>',
    #   ...
    # )
    
    def main():
        with tracer.span(name="test") as span:
            for value in range(5):
                print(value)
    
    if __name__ == "__main__":
        main()
    
  4. Sekarang ketika Anda menjalankan skrip Python, hanya nilai yang sedang dicetak di shell. SpanData yang dibuat dikirim ke Azure Monitor. Anda dapat menemukan data rentang yang dikeluarkan di dependencies.

    Untuk informasi selengkapnya tentang permintaan keluar, lihat dependensi OpenCensus Python. Untuk informasi selengkapnya tentang permintaan masuk, lihat permintaan OpenCensus Python.

Pengambilan sampel

Untuk informasi tentang pengambilan sampel di OpenCensus, lihat Pengambilan sampel di OpenCensus.

Korelasi jejak

Untuk informasi selengkapnya tentang korelasi telemetri dalam data pelacakan Anda, lihat Korelasi telemetri OpenCensus Python.

Mengubah telemetri

Untuk detail tentang cara mengubah telemetri terlacak sebelum dikirim ke Azure Monitor, lihat prosesor telemetri OpenCensus Python.

Mengonfigurasi pengekspor Azure Monitor

Seperti yang ditunjukkan, ada tiga pengekspor Azure Monitor berbeda yang mendukung OpenCensus. Masing-masing mengirimkan berbagai jenis telemetri ke Azure Monitor. Untuk melihat jenis telemetri apa yang dikirim setiap pengekspor, lihat tabel berikut ini.

Setiap pengekspor menerima argumen yang sama untuk konfigurasi, melewati konstruktor. Anda dapat melihat informasi tentang masing-masing di sini:

Telemetri pengekspor Deskripsi
connection_string string koneksi digunakan untuk menyambungkan ke sumber daya Azure Monitor Anda. Mengutamakan instrumentation_key.
credential Kelas kredensial yang digunakan oleh autentikasi Azure Active Directory. Lihat bagian "Autentikasi" yang mengikutinya.
enable_standard_metrics Digunakan untuk AzureMetricsExporter. Memberi sinyal kepada pengekspor untuk mengirim metrik penghitung performa secara otomatis ke Azure Monitor. Default ke True.
export_interval Digunakan untuk menentukan frekuensi dalam detik ekspor. Default ke 15s. Untuk metrik, Anda HARUS mengaturnya ke 60 detik atau agregasi metrik Anda tidak masuk akal di penjelajah metrik.
grace_period Digunakan untuk menentukan batas waktu untuk mematikan eksportir dalam hitungan detik. Default ke 5s.
instrumentation_key Kunci instrumentasi yang digunakan untuk menyambungkan ke sumber daya Azure Monitor Anda.
logging_sampling_rate Digunakan untuk AzureLogHandler dan AzureEventHandler. Menyediakan laju pengambilan sampel [0,1,0] guna mengekspor log/peristiwa. Default ke 1.0.
max_batch_size Menentukan ukuran maksimum telemetri yang diekspor sekaligus.
proxies Menentukan urutan proksi yang akan digunakan untuk mengirim data ke Azure Monitor. Untuk informasi selengkapnya, lihat proksi.
storage_path Jalur ke tempat folder penyimpanan lokal berada (telemetri yang tidak tersimpan). Pada opencensus-ext-azure v1.0.3, jalur default adalah direktori temp OS + opencensus-python + your-ikey. Sebelum v1.0.3, jalur defaultnya adalah $USER.azure + python-file-name.opencensus + + .
timeout Menentukan batas waktu jaringan untuk mengirim telemetri ke layanan penyerapan dalam hitung detik. Default ke 10s.

Integrasikan dengan Azure Functions

Untuk mengambil telemetri kustom di lingkungan Azure Functions, gunakan ekstensi OpenCensus Python Azure Functions. Untuk informasi selengkapnya, lihat panduan pengembang Azure Functions Python.

Autentikasi (pratinjau)

Catatan

Fitur autentikasi tersedia mulai dari opencensus-ext-azure v1.1b0.

Masing-masing eksportir Azure Monitor mendukung konfigurasi pengiriman payload telemetri dengan aman melalui autentikasi OAuth dengan Azure Active Directory. Untuk informasi selengkapnya, lihat dokumentasi Autentikasi.

Menampilkan data Anda dengan kueri

Anda dapat menampilkan data telemetri yang dikirim dari aplikasi Anda melalui tab Log (Analitik).

Cuplikan layar panel Gambaran Umum dengan tab Log (Analitik) dipilih.

Dalam daftar padaAktif:

  • Untuk telemetri yang dikirim dengan pengekspor pelacakan Azure Monitor, permintaan masuk muncul di requests. Permintaan keluar atau dalam proses muncul di dependencies.
  • Untuk telemetri yang dikirim dengan pengekspor metrik Azure Monitor, metrik terkirim muncul di customMetrics.
  • Untuk telemetri yang dikirim dengan pengekspor log Azure Monitor, log muncul di traces. Pengecualian muncul di exceptions.

Untuk informasi selengkapnya tentang cara menggunakan kueri dan log, lihat Log di Azure Monitor.

Mengonfigurasi dan mengaktifkan autentikasi berbasis ID Microsoft Entra

Catatan

Autentikasi Microsoft Entra hanya tersedia untuk Python v2.7, v3.6, dan v3.7. Dukungan untuk MICROSOFT Entra ID di Application Insights OpenCensus Python SDK disertakan dimulai dengan versi beta opencensus-ext-azure 1.1b0.

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.

Buat kredensial yang sesuai dan berikan ke konstruktor pengekspor Azure Monitor. Pastikan string koneksi Anda diatur dengan kunci instrumentasi dan titik akhir konsumsi sumber daya Anda.

Eksportir OpenCensus Azure Monitor mendukung jenis autentikasi ini. Sebaiknya gunakan identitas terkelola di lingkungan produksi.

Identitas terkelola yang ditetapkan sistem

from azure.identity import ManagedIdentityCredential

from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer

credential = ManagedIdentityCredential()
tracer = Tracer(
    exporter=AzureExporter(credential=credential, connection_string="InstrumentationKey=<your-instrumentation-key>;IngestionEndpoint=<your-ingestion-endpoint>"),
    sampler=ProbabilitySampler(1.0)
)
...

Identitas terkelola yang ditetapkan pengguna

from azure.identity import ManagedIdentityCredential

from opencensus.ext.azure.trace_exporter import AzureExporter
from opencensus.trace.samplers import ProbabilitySampler
from opencensus.trace.tracer import Tracer

credential = ManagedIdentityCredential(client_id="<client-id>")
tracer = Tracer(
    exporter=AzureExporter(credential=credential, connection_string="InstrumentationKey=<your-instrumentation-key>;IngestionEndpoint=<your-ingestion-endpoint>"),
    sampler=ProbabilitySampler(1.0)
)
...

Pelajari selengkapnya tentang OpenCensus untuk Python

Pemecahan Masalah

Menguji konektivitas antara host aplikasi Anda dan layanan penyerapan

Application Insights SDK dan agen mengirim telemetri untuk diserap sebagai panggilan REST ke titik akhir penyerapan kami. Anda dapat menguji konektivitas dari server web atau komputer host aplikasi Anda ke titik akhir layanan penyerapan dengan menggunakan klien REST mentah dari PowerShell atau perintah curl. Lihat Memecahkan masalah telemetri aplikasi yang hilang di Azure Monitor Application Insights.

Catatan Rilis

Untuk catatan rilis terbaru, lihat Pengekspor Python Azure Monitor

Pembaruan Layanan kami juga meringkas peningkatan Application Insights utama.

Langkah berikutnya

Peringatan

  • Gambaran umum ketersediaan: Buat pengujian untuk memastikan situs Anda terlihat di web.
  • Diagnostik cerdas: Pengujian ini berjalan secara otomatis, jadi Anda tidak perlu melakukan apa pun untuk meyiapkannya. Pengujian memberi tahu Anda jika aplikasi Anda memiliki tingkat permintaan yang gagal yang tidak biasa.
  • Pemberitahuan metrik: Atur pemberitahuan untuk memperingatkan Anda jika metrik melewati ambang batas. Anda dapat mengaturnya di metrik kustom yang Anda kodekan ke dalam aplikasi Anda.