Konfigurowanie usługi Azure Monitor dla aplikacji w języku Python

Usługa Azure Monitor obsługuje śledzenie rozproszone, zbieranie metryk i rejestrowanie aplikacji języka Python.

Obsługiwane przez firmę Microsoft rozwiązanie do śledzenia i eksportowania danych dla aplikacji języka Python odbywa się za pośrednictwem zestawu SDK języka Python OpenCensus za pośrednictwem eksporterów usługi Azure Monitor.

Wszystkie inne zestawy SDK telemetrii dla języka Python nie są obsługiwane i nie są zalecane przez firmę Microsoft do użycia jako rozwiązanie telemetryczne.

Biblioteka OpenCensus jest zbieżna z usługą OpenTelemetry. Nadal zalecamy korzystanie z warstwy OpenCensus, podczas gdy funkcja OpenTelemetry stopniowo dojrzała.

Uwaga

Dostępna jest wersja zapoznawcza oferty języka Python opartej na protokole OpenTelemetry . Aby dowiedzieć się więcej, zobacz Omówienie usługi OpenTelemetry.

Wymagania wstępne

Potrzebna jest subskrypcja platformy Azure. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Uwaga

31 marca 2025 r. zostanie zakończone świadczenie pomocy technicznej dla pozyskiwania klucza instrumentacji. Pozyskiwanie klucza instrumentacji będzie nadal działać, ale nie będziemy już zapewniać aktualizacji ani obsługi funkcji. Przejście do parametrów połączenia w celu skorzystania z nowych możliwości.

Wprowadzenie do zestawu OpenCensus Python SDK

OpenCensus to zestaw bibliotek typu open source, które umożliwiają zbieranie rozproszonych śledzenia, metryk i rejestrowania danych telemetrycznych. Korzystając z eksporterów usługi Azure Monitor, możesz wysłać te zebrane dane telemetryczne do usługi Application Insights. W tym artykule przedstawiono proces konfigurowania eksporterów OpenCensus i Azure Monitor dla języka Python w celu wysyłania danych monitorowania do usługi Azure Monitor.

Instrumentowanie za pomocą zestawu OpenCensus Python SDK za pomocą eksporterów usługi Azure Monitor

Zainstaluj eksporterów openCensus usługi Azure Monitor:

python -m pip install opencensus-ext-azure

Zestaw SDK używa trzech eksporterów usługi Azure Monitor do wysyłania różnych typów danych telemetrycznych do usługi Azure Monitor. traceSą to , metricsi logs. Aby uzyskać więcej informacji na temat tych typów danych telemetrycznych, zobacz Omówienie platformy danych. Skorzystaj z poniższych instrukcji, aby wysłać te typy telemetrii za pośrednictwem trzech eksporterów.

Mapowania typów telemetrii

Biblioteka OpenCensus mapuje następujących eksporterów na typy danych telemetrycznych widocznych w usłudze Azure Monitor.

Filar obserwacji Typ telemetrii w usłudze Azure Monitor Wyjaśnienie
Dzienniki Ślady, wyjątki, niestandardoweEvents Rejestrowanie telemetrii, telemetrii wyjątków, telemetria zdarzeń
Metryki customMetrics, performanceCounters Niestandardowe liczniki wydajności metryk
Śledzenie Zależności żądań Żądania przychodzące, żądania wychodzące

Dzienniki

  1. Najpierw wygenerujmy dane dziennika lokalnego.

    import logging
    
    logger = logging.getLogger(__name__)
    
    def valuePrompt():
        line = input("Enter a value: ")
        logger.warning(line)
    
    def main():
        while True:
            valuePrompt()
    
    if __name__ == "__main__":
        main()
    
  2. Kod stale prosi o podanie wartości do wprowadzenia. Wpis dziennika jest emitowany dla każdej wprowadzonej wartości.

    Enter a value: 24
    24
    Enter a value: 55
    55
    Enter a value: 123
    123
    Enter a value: 90
    90
    
  3. Wprowadzanie wartości jest przydatne do celów demonstracyjnych, ale chcemy emitować dane dziennika do usługi Azure Monitor. Przekaż parametry połączenia bezpośrednio do eksportera. Możesz też określić ją w zmiennej środowiskowej . APPLICATIONINSIGHTS_CONNECTION_STRING Zalecamy użycie parametrów połączenia do utworzenia wystąpienia eksporterów, które są używane do wysyłania danych telemetrycznych do usługi Application Insights. Zmodyfikuj kod z poprzedniego kroku na podstawie następującego przykładu kodu:

    import logging
    from opencensus.ext.azure.log_exporter import AzureLogHandler
    
    logger = logging.getLogger(__name__)
    
    # TODO: replace the all-zero GUID with your instrumentation key.
    logger.addHandler(AzureLogHandler(
        connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000')
    )
    # You can also instantiate the exporter directly if you have the environment variable
    # `APPLICATIONINSIGHTS_CONNECTION_STRING` configured
    # logger.addHandler(AzureLogHandler())
    
    def valuePrompt():
        line = input("Enter a value: ")
        logger.warning(line)
    
    def main():
        while True:
            valuePrompt()
    
    if __name__ == "__main__":
        main()
    
  4. Eksporter wysyła dane dziennika do usługi Azure Monitor. Dane można znaleźć w obszarze traces.

    W tym kontekście traces nie jest to samo co tracing. traces W tym miejscu odwołuje się do typu danych telemetrycznych, które będą widoczne w usłudze Azure Monitor podczas korzystania z usługi AzureLogHandler. Ale tracing odnosi się do koncepcji w OpenCensus i odnosi się do rozproszonego śledzenia.

    Uwaga

    Główny rejestrator jest skonfigurowany z poziomem warning. Oznacza to, że wszystkie wysyłane dzienniki o mniejszej ważności są ignorowane, a z kolei nie będą wysyłane do usługi Azure Monitor. Aby uzyskać więcej informacji, zobacz dokumentację dotyczącą rejestrowania.

  5. Właściwości niestandardowe można również dodać do komunikatów dziennika w argumencie słowa kluczowego extracustom_dimensions przy użyciu pola . Te właściwości są wyświetlane jako pary klucz-wartość w usłudze customDimensions Azure Monitor.

    Uwaga

    Aby ta funkcja działała, należy przekazać słownik do custom_dimensions pola. Jeśli przekażesz argumenty dowolnego innego typu, rejestrator je zignoruje.

    import logging
    
    from opencensus.ext.azure.log_exporter import AzureLogHandler
    
    logger = logging.getLogger(__name__)
    # TODO: replace the all-zero GUID with your instrumentation key.
    logger.addHandler(AzureLogHandler(
        connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000')
    )
    
    properties = {'custom_dimensions': {'key_1': 'value_1', 'key_2': 'value_2'}}
    
    # Use properties in logging statements
    logger.warning('action', extra=properties)
    

Uwaga

W ramach instrumentacji usługi Application Insights zbieramy i wysyłamy dane diagnostyczne do firmy Microsoft. Te dane pomagają nam uruchamiać i ulepszać usługę Application Insights. Istnieje możliwość wyłączenia zbierania danych nieistotnych. Aby dowiedzieć się więcej, zobacz Statystykibeat w usłudze Application Insights.

Konfigurowanie rejestrowania dla aplikacji Django

Rejestrowanie można skonfigurować jawnie w kodzie aplikacji, tak jak poprzednie dla aplikacji Django, lub określić je w konfiguracji rejestrowania Django. Ten kod może przejść do dowolnego pliku używanego na potrzeby konfiguracji ustawień platformy Django. Aby uzyskać informacje na temat konfigurowania ustawień platformy Django, zobacz Ustawienia platformy Django. Aby uzyskać więcej informacji na temat konfigurowania rejestrowania, zobacz Rejestrowanie Django.

LOGGING = {
    "handlers": {
        "azure": {
            "level": "DEBUG",
        "class": "opencensus.ext.azure.log_exporter.AzureLogHandler",
            "instrumentation_key": "<your-ikey-here>",
         },
        "console": {
            "level": "DEBUG",
            "class": "logging.StreamHandler",
            "stream": sys.stdout,
         },
      },
    "loggers": {
        "logger_name": {"handlers": ["azure", "console"]},
    },
}

Upewnij się, że używasz rejestratora o takiej samej nazwie, jak określona w konfiguracji.

import logging

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

Wysyłanie wyjątków

Biblioteka OpenCensus w języku Python nie śledzi i wysyła exception danych telemetrycznych. Jest ona wysyłana AzureLogHandler przy użyciu wyjątków za pośrednictwem biblioteki rejestrowania języka Python. Możesz dodać właściwości niestandardowe, takie jak w przypadku normalnego rejestrowania.

import logging

from opencensus.ext.azure.log_exporter import AzureLogHandler

logger = logging.getLogger(__name__)
# TODO: replace the all-zero GUID with your instrumentation key.
logger.addHandler(AzureLogHandler(
    connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000')
)

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)

Ponieważ należy jawnie rejestrować wyjątki, należy rejestrować nieobsługiwane wyjątki. Funkcja OpenCensus nie nakłada ograniczeń dotyczących sposobu rejestrowania, ale należy jawnie rejestrować dane telemetryczne wyjątków.

Wysyłanie zdarzeń

Dane telemetryczne można wysyłać customEvent w taki sam sposób, jak dane trace telemetryczne, z wyjątkiem użycia zamiast tego AzureEventHandler .

import logging

from opencensus.ext.azure.log_exporter import AzureEventHandler

logger = logging.getLogger(__name__)
logger.addHandler(AzureEventHandler(connection_string='InstrumentationKey=<your-instrumentation_key-here>'))
logger.setLevel(logging.INFO)
logger.info('Hello, World!')

Próbkowanie

Aby uzyskać informacje na temat próbkowania w usłudze OpenCensus, zobacz Próbkowanie w usłudze OpenCensus.

Korelacja dzienników

Aby uzyskać informacje na temat wzbogacania dzienników za pomocą danych kontekstu śledzenia, zobacz Integracja dzienników języka Python z biblioteką OpenCensus.

Modyfikowanie telemetrii

Aby uzyskać informacje na temat modyfikowania śledzonych danych telemetrycznych przed wysłaniem ich do usługi Azure Monitor, zobacz OpenCensus Python telemetrii procesorów.

Metryki

Plik OpenCensus.stats obsługuje cztery metody agregacji, ale zapewnia częściową obsługę usługi Azure Monitor:

  • Liczba: liczba punktów pomiaru. Wartość jest skumulowana, może być zwiększana tylko i resetuje wartość 0 po ponownym uruchomieniu.
  • Suma: Suma punktów pomiaru. Wartość jest skumulowana, może być zwiększana tylko i resetuje wartość 0 po ponownym uruchomieniu.
  • LastValue: utrzymuje ostatnią zarejestrowaną wartość i spada wszystkie inne elementy.
  • Rozkład: Rozkład histogramu punktów miary. Ta metoda nie jest obsługiwana przez eksportera platformy Azure.

Przykład agregacji zliczaj

  1. Najpierw wygenerujmy dane metryk lokalnych. Utworzymy metrykę, aby śledzić liczbę wybraną przez użytkownika klawisz 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 prompt():
        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])
    
    def main():
        while True:
            prompt()
    
    if __name__ == "__main__":
        main()
    
  2. Uruchomienie kodu wielokrotnie monituje o wybranie klawisza Enter. Metryka jest tworzona w celu śledzenia liczby wybranych wartości Enter . Po każdym wpisie wartość jest zwiększana, a informacje o metryce są wyświetlane w konsoli programu . Informacje obejmują bieżącą wartość i bieżącą sygnaturę czasową po zaktualizowaniu metryki.

    Press enter.
    Point(value=ValueLong(5), timestamp=2019-10-09 20:58:04.930426)
    Press enter.
    Point(value=ValueLong(6), timestamp=2019-10-09 20:58:06.570167)
    Press enter.
    Point(value=ValueLong(7), timestamp=2019-10-09 20:58:07.138614)
    
  3. Wprowadzanie wartości jest przydatne w celach demonstracyjnych, ale chcemy emitować dane metryk do usługi Azure Monitor. Przekaż parametry połączenia bezpośrednio do eksportera. Możesz też określić ją w zmiennej środowiskowej APPLICATIONINSIGHTS_CONNECTION_STRING. Zalecamy użycie parametrów połączenia w celu utworzenia wystąpienia eksporterów używanych do wysyłania danych telemetrycznych do usługi Application Insights. Zmodyfikuj kod z poprzedniego kroku na podstawie następującego przykładu kodu:

    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()
    
    # TODO: replace the all-zero GUID with your instrumentation key.
    exporter = metrics_exporter.new_metrics_exporter(
        connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000')
    # You can also instantiate the exporter directly if you have the environment variable
    # `APPLICATIONINSIGHTS_CONNECTION_STRING` configured
    # exporter = metrics_exporter.new_metrics_exporter()
    
    view_manager.register_exporter(exporter)
    
    def prompt():
        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])
    
    def main():
        while True:
            prompt()
    
    if __name__ == "__main__":
        main()
    
  4. Eksporter wysyła dane metryk do usługi Azure Monitor w stałym interwale. Wartość domyślna to co 15 sekund. Aby zmodyfikować interwał eksportu, przekaż jako export_interval parametr w sekundach do new_metrics_exporter(). Śledzimy jedną metrykę, więc te dane metryk, z dowolną wartością i sygnaturą czasową, która zawiera, są wysyłane co interwał. Wartość jest skumulowana, może tylko zwiększyć i resetuje wartość 0 po ponownym uruchomieniu.

    Dane można znaleźć w obszarze customMetrics, ale customMetrics właściwości valueCount, valueSum, valueMin, valueMaxi valueStdDev nie są skutecznie używane.

Ustawianie wymiarów niestandardowych w metrykach

Zestaw SDK języka Python OpenCensus umożliwia dodawanie niestandardowych wymiarów do telemetrii metryk przy użyciu polecenia tags, które są jak słownik par klucz-wartość.

  1. Wstaw tagi, których chcesz użyć do mapy tagów. Mapa tagów działa jak rodzaj "puli" wszystkich dostępnych tagów, których można użyć.

    ...
    tmap = tag_map_module.TagMap()
    tmap.insert("url", "http://example.com")
    ...
    
  2. W przypadku określonego Viewelementu określ tagi, których chcesz użyć podczas rejestrowania metryk w tym widoku za pomocą klucza tagu.

    ...
    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. Pamiętaj, aby użyć mapy tagów podczas rejestrowania na mapie miary. Klucze tagów określone w elemecie View muszą znajdować się na mapie tagów używanej do rejestrowania.

    ...
    mmap = stats_recorder.new_measurement_map()
    mmap.measure_int_put(prompt_measure, 1)
    mmap.record(tmap) # <-- pass the tag map in here
    ...
    
  4. customMetrics W tabeli wszystkie rekordy metryk emitowane przy użyciu prompt_view będą miały wymiary {"url":"http://example.com"}niestandardowe.

  5. Aby wygenerować tagi o różnych wartościach przy użyciu tych samych kluczy, utwórz dla nich nowe mapy tagów.

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

Liczniki wydajności

Domyślnie eksporter metryk wysyła zestaw liczników wydajności do usługi Azure Monitor. Tę funkcję można wyłączyć, ustawiając flagę enable_standard_metrics na False w konstruktorze eksportera metryk.

...
exporter = metrics_exporter.new_metrics_exporter(
  enable_standard_metrics=False,
  connection_string='InstrumentationKey=<your-instrumentation-key-here>')
...

Obecnie są wysyłane następujące liczniki wydajności:

  • Dostępna pamięć (bajty)
  • Czas procesora CPU (procent)
  • Częstotliwość żądań przychodzących (na sekundę)
  • Średni czas wykonania żądania przychodzącego (milisekundy)
  • Przetwarzanie użycia procesora CPU (procent)
  • Przetwarzanie bajtów prywatnych (bajtów)

Te metryki powinny być widoczne w pliku performanceCounters. Aby uzyskać więcej informacji, zobacz Liczniki wydajności.

Modyfikowanie danych telemetrycznych

Aby uzyskać informacje na temat modyfikowania śledzonych danych telemetrycznych przed wysłaniem ich do usługi Azure Monitor, zobacz OpenCensus Python telemetrii procesorów.

Śledzenie

Uwaga

W pliku tracing OpenCensus odnosi się do śledzenia rozproszonego. Parametr AzureExporter wysyła requests i dependency telemetria do usługi Azure Monitor.

  1. Najpierw wygenerujmy dane śledzenia lokalnie. W języku Python IDLE lub wybranym edytorze wprowadź następujący kod:

    from opencensus.trace.samplers import ProbabilitySampler
    from opencensus.trace.tracer import Tracer
    
    tracer = Tracer(sampler=ProbabilitySampler(1.0))
    
    def valuePrompt():
        with tracer.span(name="test") as span:
            line = input("Enter a value: ")
            print(line)
    
    def main():
        while True:
            valuePrompt()
    
    if __name__ == "__main__":
        main()
    
  2. Uruchomienie kodu wielokrotnie monituje o wprowadzenie wartości. Po każdym wpisie wartość jest drukowana w powłoce. Moduł OpenCensus języka Python generuje odpowiedni element .SpanData Projekt OpenCensus definiuje ślad jako drzewo rozpiętości.

    Enter a value: 4
    4
    [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)]
    Enter a value: 25
    25
    [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)]
    Enter a value: 100
    100
    [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. Wprowadzanie wartości jest przydatne w celach demonstracyjnych, ale chcemy emitować SpanData do usługi Azure Monitor. Przekaż parametry połączenia bezpośrednio do eksportera. Możesz też określić ją w zmiennej środowiskowej APPLICATIONINSIGHTS_CONNECTION_STRING. Zalecamy użycie parametrów połączenia w celu utworzenia wystąpienia eksporterów używanych do wysyłania danych telemetrycznych do usługi Application Insights. Zmodyfikuj kod z poprzedniego kroku na podstawie następującego przykładu kodu:

    from opencensus.ext.azure.trace_exporter import AzureExporter
    from opencensus.trace.samplers import ProbabilitySampler
    from opencensus.trace.tracer import Tracer
    
    # TODO: replace the all-zero GUID with your instrumentation key.
    tracer = Tracer(
        exporter=AzureExporter(
            connection_string='InstrumentationKey=00000000-0000-0000-0000-000000000000'),
        sampler=ProbabilitySampler(1.0),
    )
    # You can also instantiate the exporter directly if you have the environment variable
    # `APPLICATIONINSIGHTS_CONNECTION_STRING` configured
    # exporter = AzureExporter()
    
    def valuePrompt():
        with tracer.span(name="test") as span:
            line = input("Enter a value: ")
            print(line)
    
    def main():
        while True:
            valuePrompt()
    
    if __name__ == "__main__":
        main()
    
  4. Teraz po uruchomieniu skryptu języka Python nadal powinien zostać wyświetlony monit o wprowadzenie wartości, ale tylko wartość jest drukowana w powłoce. Utworzony SpanData element jest wysyłany do usługi Azure Monitor. Emitowane dane można znaleźć w obszarze dependencies.

    Aby uzyskać więcej informacji na temat żądań wychodzących, zobacz OpenCensus Python dependencies (Zależności języka Python OpenCensus). Aby uzyskać więcej informacji na temat żądań przychodzących, zobacz OpenCensus Python requests (Żądania języka Python OpenCensus).

Próbkowanie

Aby uzyskać informacje na temat próbkowania w usłudze OpenCensus, zobacz Próbkowanie w pliku OpenCensus.

Korelacja śledzenia

Aby uzyskać więcej informacji na temat korelacji telemetrii w danych śledzenia, zobacz OpenCensus Python telemetria korelacji.

Modyfikowanie danych telemetrycznych

Aby uzyskać więcej informacji na temat modyfikowania śledzonych danych telemetrycznych przed wysłaniem ich do usługi Azure Monitor, zobacz OpenCensus Python telemetrii procesorów.

Konfigurowanie eksporterów usługi Azure Monitor

Jak pokazano, istnieją trzy różne eksportery usługi Azure Monitor, które obsługują usługę OpenCensus. Każdy z nich wysyła różne typy danych telemetrycznych do usługi Azure Monitor. Aby zobaczyć, jakie typy telemetrii wysyła każdy eksporter, zobacz poniższą tabelę.

Każdy eksporter akceptuje te same argumenty konfiguracji, przekazywane przez konstruktory. Informacje o każdej z nich można wyświetlić tutaj:

Telemetria eksportera Opis
connection_string Parametry połączenia używane do nawiązywania połączenia z zasobem usługi Azure Monitor. Przejmie priorytet nad instrumentation_key.
credential Klasa poświadczeń używana przez uwierzytelnianie usługi Azure Active Directory. Zobacz sekcję "Uwierzytelnianie", która jest poniżej.
enable_standard_metrics Służy do obsługi AzureMetricsExporter. Wysyła sygnały eksportera do automatycznego wysyłania metryk licznika wydajności do usługi Azure Monitor. Wartość domyślna to True.
export_interval Służy do określania częstotliwości eksportowania w sekundach. Wartość domyślna to 15s.
grace_period Służy do określania limitu czasu zamknięcia eksporterów w sekundach. Wartość domyślna to 5s.
instrumentation_key Klucz instrumentacji używany do nawiązywania połączenia z zasobem usługi Azure Monitor.
logging_sampling_rate Używany dla AzureLogHandler i AzureEventHandler. Zapewnia częstotliwość próbkowania [0,1,0] na potrzeby eksportowania dzienników/zdarzeń. Wartość domyślna to 1.0.
max_batch_size Określa maksymalny rozmiar danych telemetrycznych eksportowanych jednocześnie.
proxies Określa sekwencję serwerów proxy do użycia do wysyłania danych do usługi Azure Monitor. Aby uzyskać więcej informacji, zobacz serwery proxy.
storage_path Ścieżka do miejsca, w którym istnieje lokalny folder magazynu (niesprawne dane telemetryczne). opencensus-ext-azure Od wersji 1.0.3 domyślna ścieżka to katalog tymczasowy systemu operacyjnego + + opencensus-pythonyour-ikey . Przed 1.0.3 domyślną ścieżką jest $USER.azure + python-file-name.opencensus + + .
timeout Określa limit czasu sieci do wysyłania danych telemetrycznych do usługi pozyskiwania w sekundach. Wartość domyślna to 10s.

Integracja z Azure Functions

Aby przechwytywać niestandardowe dane telemetryczne w środowiskach Azure Functions, użyj rozszerzenia OpenCensus python Azure Functions. Aby uzyskać więcej informacji, zobacz przewodnik dewelopera Azure Functions Python.

Uwierzytelnianie (wersja zapoznawcza)

Uwaga

Funkcja uwierzytelniania jest dostępna od opencensus-ext-azure wersji 1.1b0.

Każdy eksporter usługi Azure Monitor obsługuje konfigurację bezpiecznego wysyłania ładunków telemetrycznych za pośrednictwem uwierzytelniania OAuth w usłudze Azure Active Directory. Aby uzyskać więcej informacji, zobacz dokumentację uwierzytelniania.

Wyświetlanie danych za pomocą zapytań

Dane telemetryczne wysyłane z aplikacji można wyświetlić za pomocą karty Dzienniki (analiza).

Zrzut ekranu przedstawiający okienko Przegląd z wybraną kartą Dzienniki (analiza).

Na liście w obszarze Aktywne:

  • W przypadku danych telemetrycznych wysyłanych za pomocą eksportera śledzenia usługi Azure Monitor żądania przychodzące są wyświetlane w obszarze requests. Żądania wychodzące lub w procesie są wyświetlane w obszarze dependencies.
  • W przypadku telemetrii wysłanej za pomocą eksportera metryk usługi Azure Monitor metryki są wyświetlane w obszarze customMetrics.
  • W przypadku danych telemetrycznych wysyłanych za pomocą eksportera dzienników usługi Azure Monitor dzienniki są wyświetlane w obszarze traces. Wyjątki są wyświetlane w obszarze exceptions.

Aby uzyskać więcej informacji na temat używania zapytań i dzienników, zobacz Dzienniki w usłudze Azure Monitor.

Dowiedz się więcej o usłudze OpenCensus dla języka Python

Rozwiązywanie problemów

Testowanie łączności między hostem aplikacji a usługą pozyskiwania

Zestawy SDK usługi Application Insights i agenci wysyłają dane telemetryczne, aby uzyskać pozyskane jako wywołania REST do naszych punktów końcowych pozyskiwania. Możesz przetestować łączność z serwera internetowego lub maszyny hosta aplikacji do punktów końcowych usługi pozyskiwania przy użyciu nieprzetworzonych klientów REST z poziomu programu PowerShell lub poleceń curl. Zobacz Rozwiązywanie problemów z brakującą telemetrią aplikacji w usłudze Azure Monitor Application Insights.

Następne kroki

Alerty

  • Testy dostępności: Utwórz testy, aby upewnić się, że Twoja witryna jest widoczna w sieci Web.
  • Inteligentne diagnostyki: Te testy są uruchamiane automatycznie, więc nie trzeba wykonywać żadnych czynności, aby je skonfigurować. Ta funkcja powiadomi Cię, jeśli w aplikacji występuje nietypowa liczba nieudanych żądań.
  • Alerty dotyczące metryk: ustaw alerty, aby wyświetlić ostrzeżenie, jeśli metryka przekroczy próg. Możesz je ustawić dla metryk niestandardowych, które zakodujesz w aplikacji.