Метрики HTTP-монитора в синтетическом мониторинге
Метрики HTTP-монитора в синтетическом мониторинге
Метрики и параметры
Монитор
| Ключ метрики | Название метрики | Описание метрики | Единица | Размеры |
|---|---|---|---|---|
dt.synthetic.http.availability
|
Уровень доступности (по локации) [HTTP-монитор] | Коэффициент доступности HTTP-мониторов. | % | dt.synthetic.monitor.id
|
dt.synthetic.http.dns
|
Время поиска DNS (по локации) [HTTP-монитор] | Время, затраченное на разрешение имени хоста для целевого URL-адреса, суммированное по всем запросам. | мс | (аналогично предыдущему) |
dt.synthetic.http.download_time
|
Время загрузки (по локации) [HTTP-монитор] | Время, затраченное на загрузку HTTP-ответа для всех этапов. Этот показатель не основан на показателе из Синтетического мониторинга Классического. | мс | (аналогично) |
dt.synthetic.http.duration
|
Продолжительность (по локации) [HTTP-монитор] | Длительность, равная сумме всех запросов. | мс | (аналогично) |
dt.synthetic.http.duration_threshold
|
Пороговое значение длительности [HTTP-монитор] | Пороговое значение производительности для суммы всех запросов. | мс | (аналогично) |
dt.synthetic.http.executions
|
Количество выполнений (по статусу) [HTTP-монитор] | Количество выполнений монитора. Параметр maintenance_window доступен только в Синтетическом мониторинге Классическом.
|
шт. | dt.synthetic.monitor.id
|
dt.synthetic.http.response_size
|
Размер ответа (по локации) [HTTP-монитор] | Размер ответа, равный сумме всех запросов. | КБ | (аналогично duration) |
dt.synthetic.http.tcp_connect_time
|
Время установления TCP-соединения (по локации) [HTTP-монитор] | Время, затраченное на установление TCP-соединения с сервером (включая SSL) для суммы всех запросов. | мс | (аналогично) |
dt.synthetic.http.time_to_first_byte
|
Время до первого байта (по локации) [HTTP-монитор] | Время, необходимое для получения первого байта ответа от сервера, соответствующих кэшей приложений или локального ресурса. Рассчитывается как сумма всех шагов. | мс | (аналогично) |
dt.synthetic.http.tls_handshake_time
|
Время установления TLS-соединения (по локации) [HTTP-монитор] | Время, затраченное на завершение TLS-рукопожатия для суммы всех запросов. | мс | (аналогично) |
dt.synthetic.http.redirects_count
|
Количество перенаправлений (по локации) [HTTP-монитор] | Количество перенаправлений для суммы всех запросов. | шт. | (аналогично) |
dt.synthetic.http.redirects_time
|
Время переадресации (по локации) [HTTP-монитор] | Время, затраченное на выполнение перенаправлений для суммы всех запросов. | мс | (аналогично) |
dt.synthetic.http.waiting_time
|
Время ожидания (по локации) [HTTP-монитор] | Время, необходимое серверу для ответа первым байтом за все шаги. Этот показатель не основан на показателе из Синтетического мониторинга Классического. | мс | (аналогично) |
Шаги
| Ключ метрики | Название метрики | Описание метрики | Единица | Размеры |
|---|---|---|---|---|
dt.synthetic.http.request.dns
|
Время выполнения DNS-запроса (по запросу, локации) [HTTP-монитор] | Время, необходимое для определения имени хоста целевого URL-адреса для отдельных HTTP-запросов. | мс | (аналогично монитору) |
dt.synthetic.http.request.download_time
|
Время загрузки (по шагам, локации) [HTTP-монитор] | Время, затраченное на разрешение имени хоста для целевого URL-адреса на отдельных этапах HTTP-запроса. Этот показатель не основан на показателе из Синтетического мониторинга Классического. | мс | (аналогично) |
dt.synthetic.http.request.duration
|
Продолжительность (по запросу, локации) [HTTP-монитор] | Длительность отдельных HTTP-запросов. | мс | (аналогично) |
dt.synthetic.http.request.executions
|
Количество выполненных запросов [HTTP-монитор] | Количество выполненных запросов. | шт. | (аналогично executions у монитора) |
dt.synthetic.http.request.response_size
|
Размер ответа (по запросу, локации) [HTTP-монитор] | Размер ответа отдельных HTTP-запросов. | КБ | (аналогично) |
dt.synthetic.http.request.tcp_connect_time
|
Время установления TCP-соединения (по запросу, локации) [HTTP-монитор] | Время, необходимое для установления TCP-соединения с сервером (включая SSL) для отдельных HTTP-запросов. | мс | (аналогично) |
dt.synthetic.http.request.time_to_first_byte
|
Время до первого байта (по запросу, локации) [HTTP-монитор] | Время, необходимое для получения первого байта ответа от сервера, соответствующих кэшей приложений или локального ресурса. Рассчитывается для отдельных HTTP-запросов. | мс | (аналогично) |
dt.synthetic.http.request.tls_handshake_time
|
Время установления TLS-соединения (по запросу, локации) [HTTP-монитор] | Время, необходимое для завершения TLS-рукопожатия для отдельных HTTP-запросов. | мс | (аналогично) |
dt.synthetic.http.request.redirects_count
|
Количество перенаправлений (запросов) [HTTP-монитор] | Количество перенаправлений. | шт. | (аналогично) |
dt.synthetic.http.request.redirects_time
|
Время перенаправления (запрос) [HTTP-монитор] | Время, затраченное на выполнение перенаправлений. | мс | (аналогично) |
dt.synthetic.http.request.waiting_time
|
Время ожидания (шаг) (по локации) [HTTP-монитор] | Время, необходимое серверу для ответа первым байтом. Этот показатель не основан на показателе из Синтетического мониторинга Классического. | мс | (аналогично) |
Устаревший
| Ключ метрики | Название метрики | Описание метрики | Единица | Размеры |
|---|---|---|---|---|
dt.synthetic.http.availability.excluding_maintenance_windows
|
Коэффициент доступности без учета периодов технического обслуживания (по локации) [HTTP-монитор] | Показатель доступности HTTP-мониторов без учета периодов технического обслуживания. Этот показатель отсутствует в последней версии Ключ-АСТРОМ. | % | dt.entity.http_check
|
Варианты использования
Следующие примеры демонстрируют, как можно применять метрики в запросах DQL.
Доступность монитора отслеживания
Предположим, вам нужно выявить мониторы, у которых возникли проблемы с доступностью.
Следующий запрос использует метрику dt.synthetic.http.availability и измерение dt.entity.http_check для возврата мониторов, отсортированных по их доступности, при этом наименее доступные мониторы отображаются первыми.
timeseries {
availability_series = avg(dt.synthetic.http.availability) },
by: { dt.entity.http_check }
| fieldsAdd monitor_name = entityName(dt.entity.http_check)
| summarize { monitor_name = takeFirst(monitor_name),
availability = avg(arrayAvg(availability_series)) },
by: {dt.entity.http_check}
| sort availability asc
Исходный ответ выглядит следующим образом:
{
"records": [ { "dt.entity.http_check": "HTTP_CHECK-D1DF6416D98DF200", "monitor_name": "HTTP monitor", "availability": 0 }, { "dt.entity.http_check": "HTTP_CHECK-DD85DA9C14659614", "monitor_name": "HTTP monitor2", "availability": 31.746031746031743 }, { "dt.entity.http_check": "HTTP_CHECK-ADA43EC2FFF9115D", "monitor_name": "HTTP monitor3", "availability": 46.03174603174603 }, { "dt.entity.http_check": "HTTP_CHECK-0135CB5835BEAEA8", "monitor_name": "HTTP monitor4", "availability": 100 }, ... ]}
Определите наиболее проблемные локации
Предположим, вам нужно определить локации с наименьшей доступностью и самым медленным средним временем ответа на HTTP-запросы.
В следующем запросе используются метрики dt.synthetic.http.availability и dt.synthetic.http.request.duration, а также измерение dt.entity.synthetic_location.
timeseries {
availability_series = avg(dt.synthetic.http.availability),
performance_series = avg(dt.synthetic.http.request.duration) },
by: { dt.entity.synthetic_location }
| fieldsAdd location_name = entityName(dt.entity.synthetic_location)
| summarize { location_name = takeFirst(location_name),
availability = avg(arrayAvg(availability_series)),
request_duration = avg(arrayAvg(performance_series))},
by: {dt.entity.synthetic_location}
| sort availability asc, request_duration desc
Исходный ответ выглядит следующим образом:
{
"records": [ { "dt.entity.synthetic_location": "SYNTHETIC_LOCATION-00000000000003B3", "location_name": "Лас-Вегас", "availability": 23.809523809523807, "request_duration": 2662.3457875457875 }, { "dt.entity.synthetic_location": "SYNTHETIC_LOCATION-0000000000000004", "location_name": "Amazon US East (N. Virginia)", "availability": 60.714285714285715, "request_duration": 1297.4880952380952 }, { "dt.entity.synthetic_location": "SYNTHETIC_LOCATION-2D4A33F9E13D70E7", "location_name": "Осло", "availability": 66.66666666666667, "request_duration": 1114.1904761904761 }, { "dt.entity.synthetic_location": "SYNTHETIC_LOCATION-0000000000000064", "location_name": "Гданьск", "availability": 70, "request_duration": 294.2772881374772 }, { "dt.entity.synthetic_location": "SYNTHETIC_LOCATION-9FFF47C604374908", "location_name": "Дублин", "availability": 72.06349206349208, "request_duration": 1146.2952380952381 }, ... ]}
Идентификация кодов состояния, полученных в ходе выполнения тестов
Предположим, вам необходимо определить коды состояния ошибок (>= 400), полученные во время выполнения тестов.
В следующем запросе используются метрика dt.synthetic.http.executions и измерение result.http_status.code.
timeseries {
execution_series = sum(dt.synthetic.http.executions)
}, by: { result.http_status.code }
| filter result.http_status.code >= 400
| summarize { executions = sum(execution_series[]),
status.code = toString(takeFirst(result.http_status.code)) },
by: { timeframe, interval, result.http_status.code}
Визуализированный ответ выглядит следующим образом: