Настройка Azure Monitor для приложения Python

Azure Monitor поддерживает распределенную трассировку, сбор показателей и ведение журнала приложений Python.

Поддерживаемое корпорацией Майкрософт решение для отслеживания и экспорта данных для ваших приложений Python осуществляется через Opencensus Python SDK с помощью экспортеров Azure Monitor.

Любые другие SDK телеметрии для Python НЕ ПОДДЕРЖИВАЮТСЯ и НЕ рекомендуются корпорацией Майкрософт для использования в качестве решения для телеметрии.

Возможно, вы заметили, что OpenCensus превращается в OpenTelemetry. Однако мы по-прежнему рекомендуем OpenCensus, пока OpenTelemetry находится на стадии доработки.

Примечание

Доступна предварительная версия предложения Python на основе опентелеметри . Подробнее.

Предварительные требования

  • Подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.
  • Установка Python. В этой статье используется Python версии 3.7.0, хотя другие версии, скорее всего, могут работать с небольшими изменениями. Пакет SDK для Опенценсус Python поддерживает только Python v 2.7 и v 3.4 +.
  • Создайте ресурс Application Insights. Вам будет предоставлен собственный ключ инструментирования (ikey) для ресурса.

Введение в Opencensus Python SDK

OpenCensus представляет собой набор библиотек с открытым исходным кодом, позволяющий собирать распределенную трассировку, метрики и телеметрию журналов. Используя экспортеры Azure Monitor, вы сможете отправлять собранную телеметрию в Application Insights. В этой статье описывается процесс настройки OpenCensus и экспортеров Azure Monitor для Python для отправки данных мониторинга в Azure Monitor.

Инструмент с OpenCensus Python SDK с экспортерами Azure Monitor

Установите средства экспорта OpenCensus Azure Monitor.

python -m pip install opencensus-ext-azure

Примечание

Команда python -m pip install opencensus-ext-azure предполагает, что для установки Python у вас задана переменная среды PATH. Если эта переменная не настроена, необходимо предоставить полный путь каталога к расположению исполняемого файла Python. Результатом будет команда вроде следующей: C:\Users\Administrator\AppData\Local\Programs\Python\Python37-32\python.exe -m pip install opencensus-ext-azure.

Пакет SDK использует три экспортера Azure Monitor для отправки различных типов телеметрии в Azure Monitor. Это трассировки, метрики и журналы. Дополнительные сведения об этих типах телеметрии см. в обзоре платформы данных. Используйте следующие инструкции для отправки этих типов телеметрии с помощью трех средств экспорта.

Сопоставление типов данных телеметрии

Ниже приведены экспортеры, предоставляемые OpenCensus, сопоставленные с типами данных телеметрии, которые вы видите в Azure Monitor.

Аспекты наблюдаемости Данные телеметрии, поддерживаемые в Azure Monitor Пояснение
Журналы Трассировки, исключения, customEvents Данные телеметрии журналов, телеметрии исключений, данные телеметрии событий
Метрики customMetrics, performanceCounters Счетчики производительности пользовательских метрик
Трассировка Зависимости запросов Входящие запросы, исходящие запросы

Журналы

  1. Сначала давайте создадим данные метрик локально.

    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. Код постоянно запрашивает ввод значения. Для каждого введенного значения выдается запись журнала.

    Enter a value: 24
    24
    Enter a value: 55
    55
    Enter a value: 123
    123
    Enter a value: 90
    90
    
  3. Хотя ввод значений полезен в демонстрационных целях, в конечном счете мы хотим выдать данные журнала для Azure Monitor. Передайте строку подключения непосредственно в экспортер. Или вы можете указать ее в переменной среды, APPLICATIONINSIGHTS_CONNECTION_STRING. мы рекомендуем использовать строку подключения для создания экземпляров средств экспорта, которые используются для отправки данных телеметрии в Application Insights. Измените код из предыдущего шага, отталкиваясь от следующего примера кода.

    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. Экспортер отправляет данные журнала в Azure Monitor. Эти данные можно найти в traces.

    Примечание

    traces в этом контексте не совпадает с tracing. Здесь traces относится к типу телеметрии, который будет отображаться в Azure Monitor при использовании AzureLogHandler. Но tracing ссылается на концепцию в опенценсус и относится к tracing.

    Примечание

    Для корневого средства ведения журнала настраивается уровень ПРЕДУПРЕЖДЕНИЙ. Это означает, что все отправляемые журналы с меньшим уровнем серьезности игнорируются, и в свою очередь не отправляются в Azure Monitor. Дополнительные сведения см. в этой документации.

  5. Можно также добавлять пользовательские свойства в сообщения журнала в аргументе ключевого слова extra с помощью поля custom_dimensions. Эти свойства отображаются в виде пар "ключ-значение" customDimensions в Azure Monitor.

    Примечание

    Чтобы эта функция работала, необходимо передать словарь в поле custom_dimensions. При передаче аргументов любого другого типа средство ведения журнала игнорирует их.

    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)
    

Примечание

в рамках использования инструментирования Application Insights мы соберем и отправите диагностические данные в корпорацию майкрософт. эти данные помогают нам выполнять и улучшать Application Insights. Вы можете отключить сбор ненужных данных. Подробнее

Настройка ведения журнала для приложений Django

Вы можете явно настроить ведение журнала в коде вашего приложения для приложений Django, как описано выше или указать его в конфигурации ведения журнала Django. Этот код может попасть в любой файл, используемый для настройки параметров Django. Сведения о настройке параметров Django см. в разделе Параметры Django. Дополнительные сведения о настройке ведения журнала см. в разделе Ведение журнала 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"]},
    },
}

Убедитесь, что используется средство ведения журнала с тем же именем, которое указано в конфигурации.

import logging

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

Отправить исключения

OpenCensus для Python не выполняет автоматическое отслеживание и отправку данных телеметрии exception. Они отправляются через AzureLogHandler путем использования исключений через библиотеку ведения журнала Python. Вы можете добавлять пользовательские свойства так же, как и для обычного ведения журнала.

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)

Поскольку вы должны регистрировать исключения в явном виде, пользователь сам решает, как ему регистрировать необработанные исключения. OpenCensus не накладывает ограничений на то, как пользователь хочет это сделать, при условии, что он явно регистрирует исключение телеметрии.

Отправка событий

Вы можете отправить данные телеметрии customEvent точно так же, как и trace, только вместо этого используйте 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!')

Выборка

Сведения о выборке в OpenCensus см. в разделе о выборке в OpenCensus.

Корреляция журнала

Дополнительные сведения о том, как обогатить журналы данными контекста трассировки, см. в разделе интеграции журналов OpenCensus для Python.

Изменение телеметрии

Дополнительные сведения об изменении отслеживаемой телеметрии перед отправкой в Azure Monitor см. в разделе об обработчиках телеметрии OpenCensus для Python.

Метрики

OpenCensus.stats поддерживает 4 метода агрегирования, но также обеспечивает частичную поддержку для Azure Monitor.

  • Число. Число точек измерения. Значение является кумулятивным и при перезапуске может только увеличиваться и сбрасываться до 0.
  • Сумма. Сумма точек измерения. Значение является кумулятивным и при перезапуске может только увеличиваться и сбрасываться до 0.
  • LastValue. Сохраняет последнее записанное значение и удаляет все остальное.
  • Распределение. Распределение гистограммы точек измерения. Этот метод НЕ поддерживается экспортером Azure.

Пример агрегирования числа

  1. Сначала давайте создадим данные метрик локально. Мы создадим простую метрику для отслеживания количества нажатий клавиши Ввод.

    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. При повторном запуске кода выберите Ввод. Будет создана метрика для отслеживания количества нажатий клавиши Ввод. При каждом нажатии ее значение увеличивается, и сведения метрики отображаются в консоли. Эти сведения включают текущее значение и текущую отметку времени при обновлении метрики.

    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. Хотя ввод значений полезен в демонстрационных целях, в конечном счете мы хотим выдать данные метрики для Azure Monitor. Передайте строку подключения непосредственно в экспортер. Или вы можете указать ее в переменной среды, APPLICATIONINSIGHTS_CONNECTION_STRING. мы рекомендуем использовать строку подключения для создания экземпляров средств экспорта, которые используются для отправки данных телеметрии в Application Insights. Измените код из предыдущего шага, отталкиваясь от следующего примера кода.

    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. Программа экспорта отсылает данные метрики в Azure Monitor через фиксированные интервалы. Значение по умолчанию — каждые 15 секунд. Мы отслеживаем одну метрику, поэтому данные этой метрики, вне зависимости от содержащихся значений и отметок времени, отправлены через каждый интервал. Значение является кумулятивным и при перезапуске может только увеличиваться и сбрасываться до 0. Данные можно найти с помощью customMetrics, но свойства, valueCount, valueSum, valueMin, valueMax, и valueStdDev customMetrics не используются эффективно.

Настройка специальных параметров в показателях

Opencensus Python SDK позволяет добавлять пользовательские параметры к вашим показателям телеметрии с помощью tags, которые по сути являются словарем пар ключ/значение.

  1. Вставьте теги, которые вы хотите использовать, в карту тегов. Карта тегов действует как своего рода "пул" всех доступных тегов, которые вы можете использовать.

    ...
    tmap = tag_map_module.TagMap()
    tmap.insert("url", "http://example.com")
    ...
    
  2. Для конкретного View необходимо указать теги, которые вы хотите использовать при записи показателей в этом представлении с помощью ключа тега.

    ...
    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. При записи в карту измерений обязательно используйте карту тегов. Ключи тегов, указанные в View, должны быть найдены в карте тегов, используемой для записи.

    ...
    mmap = stats_recorder.new_measurement_map()
    mmap.measure_int_put(prompt_measure, 1)
    mmap.record(tmap) # <-- pass the tag map in here
    ...
    
  4. В таблице customMetrics все записи показателей, генерируемые с помощью prompt_view, будут иметь специальные параметры {"url":"http://example.com"}.

  5. Для создания тегов с разными значениями с использованием одних и тех же ключей, создайте для них новые карты тегов.

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

Счетчики производительности

По умолчанию, экспортер метрик отправляет набор счетчиков производительности на Azure Monitor. Это можно отключить, задав для флага enable_standard_metrics значение False в конструкторе средства экспорта метрик.

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

В настоящее время отправляются такие счетчики производительности как:

  • Объем доступной памяти (в байтах)
  • Процессорное время ЦП (в процентах)
  • Частота входящих запросов (в секунду)
  • Среднее время выполнения входящего запроса (в миллисекундах)
  • Использования ЦП процессом (процент)
  • Количество байтов исключительного использования процесса (в байтах)

Эти метрики должны быть доступны в performanceCounters. Дополнительные сведения см. в статье Счетчики производительности.

Изменение телеметрии

Дополнительные сведения об изменении отслеживаемой телеметрии перед отправкой в Azure Monitor см. в разделе об обработчиках телеметрии OpenCensus для Python.

Трассировка

Примечание

В Опенценсус tracing относится к tracing. AzureExporter отправляет данные телеметрии requests и dependency в Azure Monitor.

  1. Сначала давайте создадим данные трассировки локально. В Python IDLE или любом выбранном текстовом редакторе введите следующий код:

    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. При повторном запуске кода введите значение. При каждом вводе значение выводится на оболочку. Модуль OpenCensus Python создает соответствующий фрагмент SpanData. Проект OpenCensus определяет трассировку в виде дерева диапазонов.

    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. Хотя ввод значений полезен в демонстрационных целях, в конечном счете мы хотим выдать SpanData для Azure Monitor. Передайте строку подключения непосредственно в экспортер. Или вы можете указать ее в переменной среды, APPLICATIONINSIGHTS_CONNECTION_STRING. мы рекомендуем использовать строку подключения для создания экземпляров средств экспорта, которые используются для отправки данных телеметрии в Application Insights. Измените код из предыдущего шага, отталкиваясь от следующего примера кода.

    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. Теперь при запуске сценария Python вы по-прежнему будете получать запрос на ввод значений, но только значение будет выводиться в оболочке. Созданный фрагмент SpanData будет отправлен в Azure Monitor. Выданные данные диапазонов можно найти в разделе dependencies. Дополнительные сведения об исходящих запросах см. в разделе зависимостей OpenCensus для Python. Дополнительные сведения о входящих запросах см. в разделе запросов OpenCensus для Python.

Выборка

Сведения о выборке в OpenCensus см. в разделе о выборке в OpenCensus.

Корреляция трассировки

Дополнительные сведения о корреляции телеметрии в данных трассировки см. в разделе корреляции телеметрии OpenCensus для Python.

Изменение телеметрии

Дополнительные сведения об изменении отслеживаемой телеметрии перед отправкой в Azure Monitor см. в разделе об обработчиках телеметрии OpenCensus для Python.

Настройка экспортеров в Azure Monitor

Как показано ниже, существуют три разных экспортера Azure Monitor, которые поддерживают OpenCensus. Каждый из них отправляет различные типы данных телеметрии в Azure Monitor. Чтобы узнать, какие типы данных телеметрии отправляет каждый экспортер, см. следующий список.

Каждый из этих экспортеров принимает те же аргументы для конфигурации, которые передаются через конструкторы. Ниже содержатся сведения о каждом из них.

  • connection_string. Строка подключения, используемая для подключения к ресурсу Azure Monitor. Она имеет приоритет над instrumentation_key.
  • enable_standard_metrics. Используется для AzureMetricsExporter. Оповещает экспортер о том, что метрики счетчиков производительности автоматически отправляются в Azure Monitor. По умолчанию — True.
  • export_interval. Используется для указания частоты экспорта в секундах.
  • instrumentation_key. Ключ инструментирования, используемый для подключения к ресурсу Azure Monitor.
  • logging_sampling_rate. Используется для AzureLogHandler. Предоставляет частоту выборки [0, 1.0] для экспорта журналов. По умолчанию это — 1.0.
  • max_batch_size. Указывает максимальный размер данных телеметрии, которые экспортируются одновременно.
  • proxies. Указывает последовательность прокси-серверов, которые следует использовать для отправки данных в Azure Monitor. Дополнительные сведения см. на странице прокси-серверов.
  • storage_path. Путь к папке локального хранилища (неотправленные данные телеметрии). Начиная с opencensus-ext-azure версии 1.0.3, путь по умолчанию — это временный каталог ОС + opencensus-python + your-ikey. До версии 1.0.3 путь по умолчанию — $USER + .opencensus + .azure + python-file-name.

Аутентификация (предварительная версия)

Примечание

Функция аутентификации доступна в версиях opencensus-ext-azure, начиная с 1.1b0.

Средства экспорта Azure Monitor поддерживают проверку подлинности OAuth с помощью Azure Active Directory (AAD) для безопасной отправки данных телеметрии. Дополнительные сведения см. в документации по аутентификации.

Фильтрация данных с помощью запросов

Данные телеметрии, отправленные из приложения, можно просмотреть на вкладке Журналы (аналитика) .

Снимок экрана панели обзора со вкладкой «Журналы (аналитика)», выделенной красной рамкой

В списке в разделе Активные

  • Для данных телеметрии, отправляемых с помощью средства экспорта трассировки Azure Monitor, входящие запросы отображаются в разделе requests. Исходящие или внутрипроцессные запросы отображаются в разделе dependencies.
  • Для данных телеметрии, отправляемых с помощью средства экспорта метрик Azure Monitor, отправленные метрики отображаются в разделе customMetrics.
  • Для данных телеметрии, отправляемых с помощью средства экспорта журналов Azure Monitor, журналы отображаются в разделе traces. Исключения отображаются в exceptions.

Более подробные сведения об использовании запросов и журналов см. в Журналы в Azure Monitor.

Дополнительные сведения об OpenCensus для Python

Дальнейшие действия

видны узлы

  • Тесты доступности. Создавайте тесты, позволяющие проверить, доступен ли ваш сайт в Интернете.
  • Интеллектуальная диагностика. Эти тесты выполняются автоматически, поэтому вам не нужно их настраивать. Благодаря ей вы узнаете о необычном количестве неудачных запросов.
  • Оповещения о метриках. Настройте оповещения, чтобы получать уведомления в случае, если метрика превысила пороговое значение. Их можно настроить для пользовательских метрик, добавляемых в код приложения.