Настройка Azure Monitor для приложения Python
Примечание
Пакет SDK OpenCensus для Python является устаревшим, но корпорация Майкрософт поддерживает его до прекращения поддержки 30 сентября 2024 г. Теперь мы рекомендуем использовать предложение Python на основе OpenTelemetry и предоставить рекомендации по миграции.
Azure Monitor поддерживает распределенную трассировку, сбор показателей и ведение журнала приложений Python.
Поддерживаемое корпорацией Майкрософт решение для отслеживания и экспорта данных для приложений Python предоставляется с помощью пакета SDK OpenCensus для Python через средства экспорта Azure Monitor.
Корпорация Майкрософт не рекомендует использовать другие пакеты SDK для телеметрии для Python в качестве решения для телеметрии, так как они не поддерживаются.
OpenCensus объединяется в OpenTelemetry. Мы продолжаем рекомендовать OpenCensus, пока OpenTelemetry постепенно созревает.
Предварительные условия
Вам понадобится подписка Azure. Если у вас еще нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.
Примечание
Поддержка приема ключей инструментирования будет завершена 31 марта 31, 2025 г. Функция продолжит работать, но не будет обновляться или поддерживаться. Перейдите на строки подключения, чтобы использовать новые возможности.
Знакомство с пакетом SDK OpenCensus для Python
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
Пакет SDK использует три экспортера Azure Monitor для отправки различных типов телеметрии в Azure Monitor. trace
Это , metrics
и logs
. Дополнительные сведения об этих типах телеметрии см. в обзоре платформы данных. Используйте следующие инструкции для отправки этих типов телеметрии с помощью трех средств экспорта.
Сопоставление типов данных телеметрии
OpenCensus сопоставляет следующие средства экспорта с типами телеметрии, отображаемыми в Azure Monitor.
Аспекты наблюдаемости | Данные телеметрии, поддерживаемые в Azure Monitor | Описание |
---|---|---|
Журналы | Трассировки, исключения, customEvents | Данные телеметрии журналов, телеметрии исключений и телеметрии событий |
Метрики | customMetrics, performanceCounters | Настраиваемые счетчики метрик производительности |
Трассировка | Зависимости запросов | Входящие запросы, исходящие запросы |
Журналы
Сначала давайте создадим данные метрик локально.
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()
Для каждого числа в диапазоне создается запись журнала.
Log Entry - 0 Log Entry - 1 Log Entry - 2 Log Entry - 3 Log Entry - 4
Мы хотим просмотреть эти данные журнала в Azure Monitor. Его можно указать в переменной среды .
APPLICATIONINSIGHTS_CONNECTION_STRING
Вы также можете передать connection_string непосредственно вAzureLogHandler
, но строки подключения не следует добавлять в управление версиями.APPLICATIONINSIGHTS_CONNECTION_STRING=<appinsights-connection-string>
Мы рекомендуем использовать строку подключения для создания экземпляров средств экспорта, которые используются для отправки данных телеметрии в Application Insights. Измените код из предыдущего шага, отталкиваясь от следующего примера кода.
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}")
Экспортер отправляет данные журнала в Azure Monitor. Эти данные можно найти в
traces
.traces
в этом контексте не совпадает сtracing
.traces
Здесь относится к типу телеметрии, который отображается в Azure Monitor при использованииAzureLogHandler
. Ноtracing
относится к концепции в OpenCensus и связан с распределенной трассировкой.Примечание
Корневое средство ведения журнала настроено с уровнем
warning
. Это означает, что все отправленные журналы с меньшим уровнем серьезности игнорируются и, в свою очередь, не будут отправляться в Azure Monitor. Дополнительные сведения см. в документации по ведению журнала.Вы также можете добавить настраиваемые свойства в сообщения журнала в аргументе
extra
ключевое слово с помощьюcustom_dimensions
поля . Эти свойства отображаются в виде пар "ключ-значение"customDimensions
в Azure Monitor.Примечание
Чтобы эта функция работала, необходимо передать словарь в
custom_dimensions
поле . При передаче аргументов любого другого типа средство ведения журнала игнорирует их.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)
Примечание
В рамках использования инструментирования Application Insights мы собираем диагностические данные и отправляем их в корпорацию Майкрософт. Эти данные помогают нам использовать и улучшать Application Insights. У вас есть возможность отключить сбор несущественных данных. Дополнительные сведения см. в статье Статистика в Application Insights.
Настройка ведения журнала для приложений Django
Вы можете явно настроить ведение журнала в коде приложения, как показано выше для приложений Django, или указать его в конфигурации ведения журнала Django. Этот код может входить в любой файл, используемый для конфигурации параметров сайта Django, как правило settings.py
, .
Сведения о настройке параметров Django см. в разделе Параметры Django. Дополнительные сведения о настройке ведения журнала см. в разделе Ведение журнала 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"]},
},
}
Убедитесь, что используется средство ведения журнала с тем же именем, которое указано в конфигурации.
# views.py
import logging
from django.shortcuts import request
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__)
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)
Так как необходимо регистрировать исключения явным образом, вы можете регистрировать необработанных исключений. OpenCensus не накладывает ограничений на способ ведения журнала, но необходимо явно регистрировать данные телеметрии исключений.
Отправка событий
Вы можете отправлять 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!')
Дискретизация
Сведения о выборке в OpenCensus см. в разделе Выборка в OpenCensus.
Корреляция журнала
Сведения о том, как дополнить журналы данными контекста трассировки, см. в статье Интеграция журналов Python OpenCensus.
Изменение телеметрии
Дополнительные сведения об изменении отслеживаемой телеметрии перед отправкой в Azure Monitor см. в разделе об обработчиках телеметрии OpenCensus для Python.
Метрики
OpenCensus.stats поддерживает четыре метода агрегирования, но обеспечивает частичную поддержку Azure Monitor:
- Count: количество точек измерения. Значение является накопительным, может только увеличиваться и сбрасывается до 0 при перезапуске.
- Sum: суммирование точек измерения. Значение является накопительным, может только увеличиваться и сбрасывается до 0 при перезапуске.
- LastValue: сохраняет последнее записанное значение и удаляет все остальное.
- Распределение. Средство экспорта Azure не поддерживает распределение гистограмм для точек измерения.
Пример агрегирования счетчиков
Сначала давайте создадим данные метрик локально. Мы создаем метрику для отслеживания количества нажатий клавиши ВВОД .
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()
Метрики создаются для многократного отслеживания. При каждом нажатии ее значение увеличивается, и сведения метрики отображаются в консоли. Эти сведения включают текущее значение и текущую отметку времени при обновлении метрики.
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)
Ввод значений полезен в демонстрационных целях, но мы хотим отправить данные метрик в 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() 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()
Программа экспорта отсылает данные метрики в Azure Monitor через фиксированные интервалы. Это значение необходимо задать равным 60 секундам, так как серверная часть Application Insights предполагает агрегирование точек метрик за 60-секундный интервал времени. Мы отслеживаем одну метрику, поэтому данные этой метрики, вне зависимости от содержащихся значений и отметок времени, отправлены через каждый интервал. Данные являются накопительными, могут только увеличиваться и сбрасываются до 0 при перезапуске.
Данные можно найти в разделе
customMetrics
, ноcustomMetrics
свойстваvalueCount
,valueSum
,valueMin
,valueMax
иvalueStdDev
не используются эффективно.
Настройка пользовательских измерений в метриках
Пакет SDK OpenCensus для Python позволяет добавлять пользовательские измерения в данные телеметрии метрик с помощью tags
, которые похожи на словарь пар "ключ-значение".
Вставьте теги, которые вы хотите использовать, в карту тегов. Карта тегов действует как своего рода "пул" всех доступных тегов, которые вы можете использовать.
... tmap = tag_map_module.TagMap() tmap.insert("url", "http://example.com") ...
Для конкретного
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()) ...
Не забудьте использовать карту тегов при записи на карте измерений. Ключи тегов, указанные в
View
, должны быть найдены в карте тегов, используемой для записи.... mmap = stats_recorder.new_measurement_map() mmap.measure_int_put(prompt_measure, 1) mmap.record(tmap) # <-- pass the tag map in here ...
customMetrics
В таблице все записи метрик, созданные с помощью ,prompt_view
имеют пользовательские измерения{"url":"http://example.com"}
.Чтобы создать теги с разными значениями с помощью одних и того же ключа, создайте для них новые карты тегов.
... 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,
)
...
В настоящее время отправляются следующие счетчики производительности:
- Объем доступной памяти (в байтах)
- Процессорное время ЦП (в процентах)
- Частота входящих запросов (в секунду)
- Среднее время выполнения входящего запроса (в миллисекундах)
- Использования ЦП процессом (процент)
- Количество байтов исключительного использования процесса (в байтах)
Эти метрики должны быть доступны в performanceCounters
. Дополнительные сведения см. в статье Счетчики производительности.
Изменение телеметрии
Дополнительные сведения об изменении отслеживаемой телеметрии перед отправкой в Azure Monitor см. в разделе об обработчиках телеметрии OpenCensus для Python.
Трассировка
Примечание
В OpenCensus tracing
относится к распределенной трассировке. Параметр AzureExporter
отправляет requests
данные телеметрии и dependency
в Azure Monitor.
Сначала давайте создадим данные трассировки локально. В Python IDLE или любом выбранном текстовом редакторе введите следующий код:
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()
При каждом вводе значение выводится на оболочку. Модуль OpenCensus Python создает соответствующую часть
SpanData
. Проект OpenCensus определяет трассировку в виде дерева диапазонов.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)]
Просмотр выходных данных полезен в демонстрационных целях, но мы хотим отправить их
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 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()
Теперь при запуске скрипта 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 . |
credential |
Класс учетных данных, используемый для проверки подлинности Azure Active Directory. См. раздел "Проверка подлинности" ниже. |
enable_standard_metrics |
Используется для объекта AzureMetricsExporter . Оповещает экспортер о том, что метрики счетчиков производительности автоматически отправляются в Azure Monitor. По умолчанию — True . |
export_interval |
Используется для указания частоты экспорта в секундах. По умолчанию — 15s . Для метрик необходимо задать значение 60 секунд, иначе агрегаты метрик не будут иметь смысла в обозревателе метрик. |
grace_period |
Используется для указания времени ожидания для завершения работы экспортеров в секундах. По умолчанию — 5s . |
instrumentation_key |
Ключ инструментирования, используемый для подключения к ресурсу Azure Monitor. |
logging_sampling_rate |
Используется для AzureLogHandler и AzureEventHandler . Предоставляет частоту выборки [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 .azure + python-file-name .opencensus + + . |
timeout |
Указывает время ожидания сети для отправки данных телеметрии в службу приема в секундах. По умолчанию — 10s . |
Интеграция с Функциями Azure
Для записи пользовательских данных телеметрии в Функции Azure средах используйте расширение OpenCensus python Функции Azure. Дополнительные сведения см. в руководстве разработчика Функции Azure Python.
Аутентификация (предварительная версия)
Примечание
Функция проверки подлинности доступна начиная с opencensus-ext-azure
версии 1.1b0.
Каждый из экспортеров Azure Monitor поддерживает настройку безопасной отправки полезных данных телеметрии с помощью проверки подлинности OAuth с помощью Azure Active Directory. Дополнительные сведения см. в документации по проверке подлинности.
Фильтрация данных с помощью запросов
Данные телеметрии, отправленные из приложения, можно просмотреть на вкладке Журналы (аналитика) .
В списке в разделе Активные
- Для данных телеметрии, отправляемых с помощью средства экспорта трассировки Azure Monitor, входящие запросы отображаются в разделе
requests
. Исходящие или внутрипроцессные запросы отображаются в разделеdependencies
. - Для данных телеметрии, отправляемых с помощью средства экспорта метрик Azure Monitor, отправленные метрики отображаются в разделе
customMetrics
. - Для данных телеметрии, отправляемых с помощью средства экспорта журналов Azure Monitor, журналы отображаются в разделе
traces
. Исключения отображаются вexceptions
.
Дополнительные сведения об использовании запросов и журналов см. в статье Журналы в Azure Monitor.
Дополнительные сведения об OpenCensus для Python
- OpenCensus для Python на GitHub
- Настройка
- Экспортеры Azure Monitor на GitHub
- Интеграция OpenCensus
- Примеры приложений Azure Monitor
Устранение неполадок
Проверка подключения между узлом приложения и службой приема
Пакеты SDK и агенты Application Insights отправляют данные телеметрии для приема в качестве вызовов REST к конечным точкам приема. Вы можете проверить подключение веб-сервера или хост-компьютера приложения к конечным точкам службы приема с помощью необработанных клиентов REST из PowerShell или команд curl. См. статью Устранение неполадок с отсутствующими данными телеметрии приложений в Azure Monitor Application Insights.
Заметки о выпуске
Последние заметки о выпуске см. в статье Python Azure Monitor Exporter.
Наши Обновления службы также обобщают основные улучшения Application Insights.
Дальнейшие действия
- Чтобы включить возможности использования, включите мониторинг пользователей в интернете или браузере.
- Отслеживание входящих запросов.
- Отслеживание исходящих запросов.
- Ознакомьтесь с картой приложений.
- Узнайте, как выполнять комплексный мониторинг производительности.
видны узлы
- Обзор доступности. Создайте тесты, чтобы убедиться, что сайт отображается в Интернете.
- Интеллектуальная диагностика. Эти тесты выполняются автоматически, поэтому вам не нужно их настраивать. Благодаря ей вы узнаете о необычном количестве неудачных запросов.
- Оповещения о метриках. Настройте оповещения, чтобы получать уведомления в случае, если метрика превысила пороговое значение. Их можно настроить для пользовательских метрик, добавляемых в код приложения.