Мониторинг агентов тестирования
Мониторинг позволяет собирать данные о состоянии цели и агента тестирования (метрики), а также отображать эти данные на графиках. Сбор метрик выполняется с помощью плагина для агента сбора метрик Telegraf
Включить мониторинг агента тестирования можно в настройках при создании теста:
Если вы настраиваете параметры теста с помощью формы в интерфейсе, включите опцию Мониторинг агента. В этом случае активируется стандартная конфигурация мониторинга агента, которая включает следующие метрики:
Также вы можете настроить плагин YCMonitoring для сбора метрик из API сервиса Yandex Monitoring и отображения графиков метрик в секции Мониторинг нагрузочного теста.
Важно
Для работы плагина сервисному аккаунту должна быть выдана роль monitoring.viewer
в соответствующем каталоге.
Прежде чем использовать плагин, убедитесь, что агент тестирования имеет актуальную версию. При необходимости обновите агент.
Примечание
Для разных облачных сервисов метрики Yandex Monitoring собираются с интервалами от 15 секунд до 1 минуты, поэтому для коротких тестов результат может быть неинформативным. Рекомендуется использовать плагин на длительных тестах (от 10 минут).
Чтобы настроить плагин YCMonitoring:
- В блоке Настройки теста в секции Метрики YC Monitoring нажмите
График. - В поле Название графика укажите название графика.
- В поле Запрос введите запрос на языке запросов в Monitoring.
- При желании, аналогичным образом добавьте другие графики.
Чтобы настроить сбор метрик с помощью плагина Telegraf, в конфигурационном файле опишите конфигурацию мониторинга агента в блоке telegraf
. Вы можете настраивать каждую метрику с помощью всех опций, которые доступны для нее в Telegraf.
Пример настройки блока telegraf
в файле конфигурации тестирования:
telegraf:
enabled: true
package: yandextank.plugins.Telegraf
config:
metrics:
cpu:
percpu: true
totalcpu: false
fieldpass:
- time_user
- time_steal
- usage_idle
Также в конфигурации мониторинга агента вы можете описывать метрики, которых нет в Telegraf.
Пример описания пользовательской метрики custom
:
telegraf:
enabled: true
package: yandextank.plugins.Telegraf
config:
metrics:
custom:
diff: 1
measure: call
label: test
cmd: curl --silent 'http://localhost:6100/stat' | python3 -c 'import sys, json; j = json.load(sys.stdin); print("\n".join(rerp(c["values"]["accept"]) for c in j["charts"] if c["name"] == "localqueue_wait_time"))'
Чтобы настроить сбор метрик с помощью плагина YCMonitoring, в конфигурационном файле опишите конфигурацию мониторинга агента в блоке ycmonitoring
. Плагин позволяет собирать метрики мониторинга из API Yandex Monitoring.
Важно
Для работы плагина сервисному аккаунту должна быть выдана роль monitoring.viewer
в соответствующем каталоге.
Прежде чем использовать плагин, убедитесь, что агент тестирования имеет актуальную версию. При необходимости обновите агент.
Примечание
Для разных облачных сервисов метрики Yandex Monitoring собираются с интервалами от 15 секунд до 1 минуты, поэтому для коротких тестов результат может быть неинформативным. Рекомендуется использовать плагин на длительных тестах (от 10 минут).
Формат минимальной конфигурации плагина:
ycmonitoring:
enabled: true
package: yandextank.plugins.YCMonitoring
panels:
<panel_name_1>:
group_name: <group_name_1>
queries:
- <query1>
- <query2>
<panel2name>:
group_name: <group_name_2>
queries:
- <query3>
Где:
panels
— словарь панелей для сбора метрик мониторинга.panel_name
— ключ словаря и название графика на панели мониторинга.group_name
— ключ группировки панелей. Значение по умолчанию - адрес API-хоста, с которого собирались метрики.query
— запрос на языке запросов в Monitoring.
Пример настройки блока ycmonitoring
в файле конфигурации тестирования:
ycmonitoring:
enabled: true
package: yandextank.plugins.YCMonitoring
panels:
target_connections:
queries:
- '"network_connections.quota_utilization"{folderId="b1g7j67rou********ne", service="compute", resource_id="agent007"}'
target_cpu:
queries:
- '"cpu_usage"{folderId="b1g7j67rou********ne", service="compute", resource_id="agent007"}'
received_packets:
queries:
- '"network_received_packets"{folderId="b1g7j67rou********ne", service="compute", resource_id="agent007", resource_type="vm", interface_number="*"}'
Где:
resource_id
— имя агента тестирования.folderId
— идентификатор каталога, в котором находится агент тестирования.
Плагин также позволяет настроить дополнительные параметры:
panels:
panel_name:
...
api_host: monitoring.api.cloud.yandex.net:443
token: LOADTESTING_YC_TOKEN
timeout: 5s
request_timeout: 10s
poll_interval: 60s
ignore_labels: ['service', 'resource_type', 'device', 'interface_number', 'source_metric', 'subcluster_name', 'shard', 'dc']
priority_labels: ['cpu_name', 'label']
Где:
api_host
— адрес API сервиса Monitoring, из которого собираются данные. Значение по умолчанию —monitoring.api.cloud.yandex.net:443
.token
— путь к файлу IAM-токена. Значение по умолчанию берется из переменной окруженияLOADTESTING_YC_TOKEN
.timeout
— таймаут окончания работы плагина при завершении нагрузочного теста. Значение по умолчанию — 5 секунд.request_timeout
— таймаут запроса в API сервиса Monitoring. Значение по умолчанию — 10 секунд.poll_interval
— интервал между запросами в API сервиса Monitoring. Значение по умолчанию — 60 секунд.priority_labels
— список названий меток для построения названия метрики мониторинга.ignore_labels
— список названий меток, которые будут отброшены при построении названия метрики мониторинга.
Последние два параметра используются для генерации названий метрик на графиках. Название каждой метрики формируется на основании ключей словаря соответствующего запроса и элементов списков ignore_labels
и priority_labels
. Все не алфавитно-цифровые символы в названиях заменяются на дефис.