Aracılığıyla paylaş


Python uygulamanız için Azure İzleyici'yı ayarlama

Not

OpenCensus Python SDK'sı kullanımdan kaldırılmıştır, ancak Microsoft 30 Eylül 2024'te kullanımdan kaldırılana kadar bu SDK'yı destekler. Şimdi OpenTelemetry tabanlı Python teklifini öneririz ve geçiş kılavuzu sağlarız.

Azure İzleyici, Python uygulamalarının dağıtılmış izlemeyi, ölçüm toplamayı ve günlüğe kaydedilmesini destekler.

Microsoft'un Python uygulamalarınız için verileri izlemek ve dışarı aktarmak için desteklediği çözüm, Azure İzleyici dışarı aktarıcıları aracılığıyla OpenCensus Python SDK'sı aracılığıyla sağlanır.

Microsoft, desteklenmeyen bir telemetri çözümü olarak Python için başka bir telemetri SDK'sı kullanılmasını önermez.

OpenCensus, OpenTelemetry ile yakınsıyor. OpenTelemetry aşamalı olarak olgunlaşırken OpenCensus'u önermeye devam ediyoruz.

Önkoşullar

Azure aboneliğine ihtiyacınız var. Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir hesap oluşturun.

Not

31 Mart 2025’te izleme anahtarı alımı desteği sona erecektir. İzleme anahtarı alımı çalışmaya devam edecek, ancak artık özellik için güncelleştirme veya destek sağlamayacağız. Yeni özelliklerden yararlanmak için bağlantı dizesi geçiş.

OpenCensus Python SDK'sı ile tanışın

OpenCensus , dağıtılmış izleme, ölçümler ve günlük telemetrisi toplamaya olanak sağlayan bir açık kaynak kitaplık kümesidir. Azure İzleyici dışarı aktarmalarını kullanarak toplanan bu telemetri verilerini Application Insights'a gönderebilirsiniz. Bu makale, izleme verilerinizi Azure İzleyici'ye göndermek üzere Python için OpenCensus ve Azure İzleyici dışarı aktarmalarını ayarlama işleminde size yol gösterir.

Azure İzleyici ihracatçılarıyla OpenCensus Python SDK'sı ile izleme

OpenCensus Azure İzleyici verenlerini yükleyin:

python -m pip install opencensus-ext-azure

SDK, Azure İzleyici'ye farklı türde telemetri göndermek için üç Azure İzleyici vereni kullanır. Bunlar trace, metricsve logs. Bu telemetri türleri hakkında daha fazla bilgi için bkz. Veri platformuna genel bakış. Bu telemetri türlerini üç dışarı aktarma aracı aracılığıyla göndermek için aşağıdaki yönergeleri kullanın.

Telemetri türü eşlemeleri

OpenCensus, aşağıdaki dışarı aktarıcıları Azure İzleyici'de gördüğünüz telemetri türleriyle eşler.

Gözlemlenebilirlik sütunu Azure İzleyici'de telemetri türü Açıklama
Günlükler İzlemeler, özel durumlar, customEvents Günlük telemetrisi, özel durum telemetrisi, olay telemetrisi
Ölçümler customMetrics, performanceCounters Özel ölçüm performans sayaçları
İzleme İstek bağımlılıkları Gelen istekler, giden istekler

Günlükler

  1. İlk olarak, bazı yerel günlük verileri oluşturalım.

    
    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. Aralıktaki her sayı için bir günlük girdisi yayılır.

    Log Entry - 0
    Log Entry - 1
    Log Entry - 2
    Log Entry - 3
    Log Entry - 4
    
  3. Bu günlük verilerini Azure İzleyici'de görmek istiyoruz. Bunu bir ortam değişkeninde belirtebilirsiniz: APPLICATIONINSIGHTS_CONNECTION_STRING. connection_string doğrudan içine AzureLogHandlerde geçirebilirsiniz, ancak bağlantı dizesi sürüm denetimine eklenmemelidir.

    APPLICATIONINSIGHTS_CONNECTION_STRING=<appinsights-connection-string>
    

    Application Insights'a telemetri göndermek için kullanılan ihracatçıların örneğini oluştururken bağlantı dizesi kullanmanızı öneririz. Önceki adımda yer alan kodunuzu aşağıdaki kod örneğine göre değiştirin:

    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. Dışarı aktarma, günlük verilerini Azure İzleyici'ye gönderir. Verileri altında tracesbulabilirsiniz.

    Bu bağlamda, traces ile tracingaynı değildir. Burada, traces kullandığınızda AzureLogHandlerAzure İzleyici'de gördüğünüz telemetri türüne başvurur. Ancak tracing OpenCensus'taki bir kavramı ifade eder ve dağıtılmış izleme ile ilgilidir.

    Not

    Kök günlükçü düzeyiyle warningyapılandırılır. Bu, gönderdiğiniz ve daha az önem derecesine sahip günlüklerin yoksayılacağı ve buna karşılık Azure İzleyici'ye gönderilmeyacağı anlamına gelir. Daha fazla bilgi için günlük belgelerine bakın.

  5. Alanını kullanarak custom_dimensions anahtar sözcük bağımsız değişkeninde extra günlük iletilerinize özel özellikler de ekleyebilirsiniz. Bu özellikler Azure İzleyici'de customDimensions anahtar-değer çiftleri olarak görünür.

    Not

    Bu özelliğin çalışması için alana bir sözlük custom_dimensions geçirmeniz gerekir. Başka bir türde bağımsız değişken geçirirseniz, günlükçü bunları yoksayar.

    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)
    

Not

Application Insights izlemesini kullanmanın bir parçası olarak tanılama verilerini toplar ve Microsoft'a göndeririz. Bu veriler Application Insights'ı çalıştırmamıza ve geliştirmemize yardımcı olur. Temel olmayan veri toplamayı devre dışı bırakma seçeneğiniz vardır. Daha fazla bilgi edinmek için bkz . Application Insights'ta statsbeat.

Django uygulamaları için günlüğe kaydetmeyi yapılandırma

Django uygulamalarınız için önceki gibi uygulama kodunuzda günlüğü açıkça yapılandırabilir veya Django'nun günlük yapılandırmasında belirtebilirsiniz. Bu kod, genellikle settings.pyDjango sitesinin ayarlar yapılandırması için kullandığınız dosyaya gidebilir.

Django ayarlarını yapılandırma hakkında bilgi için bkz . Django ayarları. Günlüğü yapılandırma hakkında daha fazla bilgi için bkz . Django günlüğü.

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"]},
    },
}

Günlükçü'nüzü yapılandırmanızda belirtilen adla aynı ada sahip kullandığınızdan emin olun.

# views.py

import logging
from django.shortcuts import request

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

Özel durum gönderme

OpenCensus Python telemetri verilerini otomatik olarak izlemez ve göndermez exception . Python günlük kitaplığı aracılığıyla AzureLogHandler özel durumlar kullanılarak gönderilir. Normal günlük kaydıyla yaptığınız gibi özel özellikler ekleyebilirsiniz.

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)

Özel durumları açıkça günlüğe kaydetmeniz gerektiğinden, işlenmeyen özel durumların nasıl günlüğe kaydedildiği size bağlı. OpenCensus, bu günlüğün nasıl yapılacağını kısıtlamaz, ancak özel durum telemetrisini açıkça günlüğe kaydetmeniz gerekir.

Olayları gönderme

Bunun yerine kullanarak dışında, telemetriyi gönderdiğiniz gibi telemetri gönderebilirsiniz customEvent trace.AzureEventHandler

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

Örnekleme

OpenCensus'ta örnekleme hakkında bilgi için bkz . OpenCensus'ta Örnekleme.

Günlük bağıntısı

Günlüklerinizi izleme bağlam verileriyle zenginleştirme hakkında bilgi için bkz. OpenCensus Python günlükleri tümleştirmesi.

Telemetriyi değiştirme

İzlenen telemetriyi Azure İzleyici'ye gönderilmeden önce değiştirme hakkında bilgi için bkz. OpenCensus Python telemetri işlemcileri.

Ölçümler

OpenCensus.stats dört toplama yöntemini destekler ancak Azure İzleyici için kısmi destek sağlar:

  • Sayı: Ölçü noktalarının sayısı. Değer kümülatiftir, yalnızca artabilir ve yeniden başlatmada 0'a sıfırlanır.
  • Toplam: Ölçüm noktalarının toplamı. Değer kümülatiftir, yalnızca artabilir ve yeniden başlatmada 0'a sıfırlanır.
  • LastValue: Kaydedilen son değeri tutar ve diğer her şeyi bırakır.
  • Dağıtım: Azure ihracatçısı, ölçüm noktalarının histogram dağıtımını desteklemez.

Toplamayı sayma örneği

  1. İlk olarak, bazı yerel ölçüm verileri oluşturalım. Kullanıcının Enter tuşunu seçme sayısını izlemek için bir ölçüm oluştururuz.

    
    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. Ölçümler birçok kez izlemek için oluşturulur. Her girdide değer artırılır ve ölçüm bilgileri konsolunda görünür. Bilgiler, ölçümün güncelleştirildiği geçerli değeri ve geçerli zaman damgasını içerir.

    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. Değerlerin girilmesi tanıtım amacıyla yararlıdır, ancak ölçüm verilerini Azure İzleyici'ye yaymak istiyoruz. bağlantı dizesi doğrudan ihracatçıya geçirin. Veya bunu bir ortam değişkeninde belirtebilirsiniz: APPLICATIONINSIGHTS_CONNECTION_STRING. Application Insights'a telemetri göndermek için kullanılan ihracatçıların örneğini oluştururken bağlantı dizesi kullanmanızı öneririz. Önceki adımda yer alan kodunuzu aşağıdaki kod örneğine göre değiştirin:

    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. Dışarı aktarma, ölçüm verilerini sabit bir aralıkta Azure İzleyici'ye gönderir. Application Insights arka ucu ölçüm noktalarının 60 saniyelik zaman aralığında toplandığını varsaydıkça bu değeri 60 saniye olarak ayarlamanız gerekir. Tek bir ölçümü izliyoruz, dolayısıyla içerdiği değer ve zaman damgasına sahip bu ölçüm verileri her aralıkta gönderilir. Veriler kümülatiftir, yalnızca artabilir ve yeniden başlatmada 0'a sıfırlanır.

    Verileri altında customMetricsbulabilirsiniz, ancak customMetrics , , valueSumvalueMin, valueMaxve valueStdDev özellikleri valueCountetkin bir şekilde kullanılmaz.

Ölçümlerde özel boyutlar ayarlama

OpenCensus Python SDK'sı kullanarak ölçüm telemetrinize tagsanahtar-değer çiftleri sözlüğü gibi özel boyutlar eklemenize olanak tanır.

  1. Kullanmak istediğiniz etiketleri etiket haritasına ekleyin. Etiket haritası, kullanabileceğiniz tüm kullanılabilir etiketlerin bir tür "havuzu" gibi davranır.

    ...
    tmap = tag_map_module.TagMap()
    tmap.insert("url", "http://example.com")
    ...
    
  2. Belirli Viewbir için, etiket anahtarı aracılığıyla ölçümleri bu görünümle kaydederken kullanmak istediğiniz etiketleri belirtin.

    ...
    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. Ölçüm haritasında kayıt yaparken etiket haritasını kullandığınızdan emin olun. içinde View belirtilen etiket anahtarları, kaydetmek için kullanılan etiket eşlemesinde bulunmalıdır.

    ...
    mmap = stats_recorder.new_measurement_map()
    mmap.measure_int_put(prompt_measure, 1)
    mmap.record(tmap) # <-- pass the tag map in here
    ...
    
  4. tablosunun customMetrics altında, kullanılarak prompt_view yayılan tüm ölçüm kayıtlarının özel boyutları vardır {"url":"http://example.com"}.

  5. Aynı anahtarları kullanarak farklı değerlere sahip etiketler üretmek için, bunlar için yeni etiket eşlemeleri oluşturun.

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

Performans sayaçları

Varsayılan olarak, ölçümleri veren Azure İzleyici'ye bir dizi performans sayacı gönderir. Ölçüm verenin oluşturucusunda bayrağını False olarak ayarlayarak enable_standard_metrics bu özelliği devre dışı bırakabilirsiniz.

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

Şu anda aşağıdaki performans sayaçları gönderilmektedir:

  • Kullanılabilir Bellek (bayt)
  • CPU İşlemciSi Süresi (yüzde)
  • Gelen İstek Oranı (saniye başına)
  • Gelen İstek Ortalama Yürütme Süresi (milisaniye)
  • İşlem CPU Kullanımı (yüzde)
  • İşlem Özel Baytları (bayt)

Bu ölçümleri içinde performanceCountersgörebilmeniz gerekir. Daha fazla bilgi için bkz . Performans sayaçları.

Telemetriyi değiştirme

İzlenen telemetriyi Azure İzleyici'ye gönderilmeden önce değiştirme hakkında bilgi için bkz. OpenCensus Python telemetri işlemcileri.

İzleme

Not

OpenCensus'ta dağıtılmış tracing izlemeyi ifade eder. parametresi Azure İzleyici'ye AzureExporter telemetri gönderirrequests.dependency

  1. İlk olarak yerel olarak bazı izleme verileri oluşturalım. Python IDLE'da veya tercih edilen düzenleyicinizde aşağıdaki kodu girin:

    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. Her girdide, değer kabuğa yazdırılır. OpenCensus Python modülü karşılık gelen bir parçasını SpanDataoluşturur. OpenCensus projesi, bir izlemeyi bir yayma ağacı olarak tanımlar.

    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. Çıkışı görüntülemek tanıtım amacıyla yararlıdır, ancak Azure İzleyici'ye yaymak SpanData istiyoruz. bağlantı dizesi doğrudan ihracatçıya geçirin. Veya bunu bir ortam değişkeninde belirtebilirsiniz: APPLICATIONINSIGHTS_CONNECTION_STRING. Application Insights'a telemetri göndermek için kullanılan ihracatçıların örneğini oluştururken bağlantı dizesi kullanmanızı öneririz. Önceki adımda yer alan kodunuzu aşağıdaki kod örneğine göre değiştirin:

    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. Artık Python betiğini çalıştırdığınızda kabukta yalnızca değer yazdırılıyor. Oluşturulan SpanData , Azure İzleyici'ye gönderilir. Yayılan yayılma verilerini altında dependenciesbulabilirsiniz.

    Giden istekler hakkında daha fazla bilgi için bkz. OpenCensus Python bağımlılıkları. Gelen istekler hakkında daha fazla bilgi için bkz. OpenCensus Python istekleri.

Örnekleme

OpenCensus'ta örnekleme hakkında bilgi için bkz . OpenCensus'ta Örnekleme.

bağıntıyı izleme

İzleme verilerinizdeki telemetri bağıntısı hakkında daha fazla bilgi için bkz. OpenCensus Python telemetri bağıntısı.

Telemetriyi değiştirme

İzlenen telemetriyi Azure İzleyici'ye gönderilmeden önce değiştirme hakkında daha fazla bilgi için bkz. OpenCensus Python telemetri işlemcileri.

Azure İzleyici dışarıyı verenleri yapılandırma

Gösterildiği gibi, OpenCensus'ı destekleyen üç farklı Azure İzleyici dışarı aktarıcısı vardır. Her biri Azure İzleyici'ye farklı türde telemetriler gönderir. Her bir verenin gönderdiği telemetri türlerini görmek için aşağıdaki tabloya bakın.

Her dışarı aktarıcı, oluşturucular aracılığıyla geçirilen yapılandırma için aynı bağımsız değişkenleri kabul eder. Her biri hakkında bilgileri burada görebilirsiniz:

İhracatçı telemetrisi Açıklama
connection_string Azure İzleyici kaynağınıza bağlanmak için kullanılan bağlantı dizesi. üzerinde öncelik instrumentation_keyalır.
credential Azure Active Directory kimlik doğrulaması tarafından kullanılan kimlik bilgisi sınıfı. Aşağıdaki "Kimlik Doğrulaması" bölümüne bakın.
enable_standard_metrics için AzureMetricsExporterkullanılır. Verene performans sayacı ölçümlerini otomatik olarak Azure İzleyici'ye göndermesi için sinyal gönderir. varsayılan değeridir True.
export_interval Dışarı aktarmanın saniye cinsinden sıklığını belirtmek için kullanılır. varsayılan değeridir 15s. Ölçümler için bunu 60 saniye olarak ayarlamanız gerekir, aksi halde ölçüm toplamalarınız ölçüm gezgininde anlamlı olmaz.
grace_period Saniyeler içinde dışarı verenlerin kapatılması için zaman aşımını belirtmek için kullanılır. varsayılan değeridir 5s.
instrumentation_key Azure İzleyici kaynağınıza bağlanmak için kullanılan izleme anahtarı.
logging_sampling_rate ve AzureEventHandleriçin AzureLogHandler kullanılır. Günlükleri/olayları dışarı aktarmak için örnekleme oranı [0,1,0] sağlar. varsayılan değeridir 1.0.
max_batch_size Bir kerede dışarı aktarılan en büyük telemetri boyutunu belirtir.
proxies Azure İzleyici'ye veri göndermek için kullanılacak proxy dizisini belirtir. Daha fazla bilgi için bkz . proxy'ler.
storage_path Yerel depolama klasörünün bulunduğu bir yol (desteklenmeyen telemetri). opencensus-ext-azure v1.0.3 itibarıyla, varsayılan yol işletim sistemi geçici dizini + opencensus-python + your-ikey'dir. v1.0.3'e başlamadan önce varsayılan yol şeklindedir$USER.azure + python-file-name.opencensus + + .
timeout Alma hizmetine telemetri göndermek için ağ zaman aşımını saniyeler içinde belirtir. varsayılan değeridir 10s.

Azure İşlevleri ile tümleştirme

Azure İşlevleri ortamlarda özel telemetri yakalamak için OpenCensus Python Azure İşlevleri uzantısını kullanın. Daha fazla bilgi için Azure İşlevleri Python geliştirici kılavuzuna bakın.

Kimlik doğrulaması (önizleme)

Not

Kimlik doğrulama özelliği v1.1b0'den opencensus-ext-azure itibaren kullanılabilir.

Azure İzleyici verenlerin her biri, Azure Active Directory ile OAuth kimlik doğrulaması aracılığıyla telemetri yüklerini güvenli bir şekilde gönderme yapılandırmasını destekler. Daha fazla bilgi için Kimlik doğrulaması belgelerine bakın.

Sorgularla verilerinizi görüntüleme

Uygulamanızdan gönderilen telemetri verilerini Günlükler (Analiz) sekmesi aracılığıyla görüntüleyebilirsiniz.

Günlükler (Analiz) sekmesinin seçili olduğu Genel Bakış bölmesinin ekran görüntüsü.

Etkin altındaki listede:

  • Azure İzleyici izleme vereni ile gönderilen telemetri için, gelen istekler altında requestsgörünür. Giden veya işlem içi istekler altında dependenciesgörünür.
  • Azure İzleyici ölçümlerini veren ile gönderilen telemetri için, gönderilen ölçümler altında customMetricsgörünür.
  • Azure İzleyici günlükleri dışarı aktarma ile gönderilen telemetri için günlükler altında tracesgörünür. altında exceptionsözel durumlar görüntülenir.

Sorguları ve günlükleri kullanma hakkında daha fazla bilgi için bkz . Azure İzleyici'deki günlükler.

Microsoft Entra ID tabanlı kimlik doğrulamasını yapılandırma ve etkinleştirme

Not

Microsoft Entra kimlik doğrulaması yalnızca Python v2.7, v3.6 ve v3.7 için kullanılabilir. Application Insights OpenCensus Python SDK'sında Microsoft Entra Id desteği, opencensus-ext-azure 1.1b0 beta sürümünden itibaren eklenmiştir.

Not

OpenCensus Python SDK'sı kullanımdan kaldırılmıştır, ancak Microsoft 30 Eylül 2024'te kullanımdan kaldırılana kadar bu SDK'yı destekler. Şimdi OpenTelemetry tabanlı Python teklifini öneririz ve geçiş kılavuzu sağlarız.

Uygun kimlik bilgilerini oluşturma ve bunları Azure İzleyici verenin oluşturucusuna geçirme. bağlantı dizesi kaynağınızın izleme anahtarı ve alım uç noktası ile ayarlandığından emin olun.

OpenCensus Azure İzleyici verenleri bu kimlik doğrulama türlerini destekler. Üretim ortamlarında yönetilen kimlikleri kullanmanızı öneririz.

Sistem tarafından atanan yönetilen kimlik

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

Kullanıcı tarafından atanan yönetilen kimlik

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

Python için OpenCensus hakkında daha fazla bilgi edinin

Sorun giderme

Uygulama konağınızla alma hizmeti arasındaki bağlantıyı test etme

Application Insights SDK'ları ve aracıları, alma uç noktalarımıza REST çağrıları olarak alınabilmek için telemetri gönderir. PowerShell veya curl komutlarından ham REST istemcilerini kullanarak web sunucunuzdan veya uygulama konak makinenizden alma hizmeti uç noktalarına bağlantıyı test edebilirsiniz. Bkz . Azure İzleyici Application Insights'ta eksik uygulama telemetrisi sorunlarını giderme.

Release Notes (Sürüm Notları)

En son sürüm notları için bkz . Python Azure İzleyici Exporter

Hizmet Güncelleştirmelerimiz büyük Application Insights geliştirmelerini de özetler.

Sonraki adımlar

Uyarılar

  • Kullanılabilirliğe genel bakış: Sitenizin web'de görünür olduğundan emin olmak için testler oluşturun.
  • Akıllı tanılama: Bu testler otomatik olarak çalıştığından, bunları ayarlamak için herhangi bir şey yapmanız gerekmez. Uygulamanızda olağan dışı oranda başarısız istek olup olmadığını bildirirler.
  • Ölçüm uyarıları: Bir ölçümün eşiği aşması durumunda sizi uyarmak için uyarılar ayarlayın. Bunları, uygulamanıza kodladığınız özel ölçümlerde ayarlayabilirsiniz.