Метрики и логи воркера (опционально)
Метрики и логи опциональны. Если не планируете отправлять метрики и логи, то эту главу можно пропустить.
Воркер умеет посылать логи в Kibana и метрики в Graphite. Метрики визуализируются с помощью Grafana или других инструментов, поддерживаюших работу с Graphite.
Пример дашборда с реальными метриками.
Конфигурация метрик и логов#
Перед получением метрик и логов необходимо самостоятельно настроить Graphite и Kibana.
Для включения метрик и логов передайте параметры в переменные окружения (см. главу Конфигурация воркера).
Для включения метрик Graphite используйте переменные окружения:
EMCEE_WORKER_GRAPHITE_IS_ENABLED
EMCEE_WORKER_GRAPHITE_SOCKET_ADDRESS
EMCEE_WORKER_GRAPHITE_SOCKET_PORT
EMCEE_WORKER_GRAPHITE_METRIC_PREFIX
Для включения логов Kibana используйте переменные окружения:
EMCEE_WORKER_KIBANA_IS_ENABLED
EMCEE_WORKER_KIBANA_ENDPOINTS
EMCEE_WORKER_KIBANA_INDEX_PATTERN
EMCEE_WORKER_ELASTIC_API_KEY
Какие метрики и логи отправляет воркер#
Воркер отправляет информацию о состоянии системы и шагах выполнения работы.
Детализация логов зависит от заданного уровня логгирования (см. главу Конфигурация воркера).
Список отправляемых воркером метрик:
Метрика | Имя метрики в Graphite |
---|---|
Время сетевого запроса | network_request_time |
Код ответа сетевого запроса | network_response_code |
Время загрузки apk файлов | artifacts_download_time |
Факт загрузки или переиспользования apk файлов | artifact_downloaded artifact_reused |
Время работы воркера при успешном прогоне (включая загрузку apk файлов, прогон тестов, и отправку тестовых артефактов) | work_time |
Время получения эмулятора (старт нового или переиспользование существующего) | time_to_get_device |
В Graphite метрика будет выглядеть как your.graphite.prefix.metric_name
.
Пример готового дашборда для метрик воркера#
Пример json-файла дашборда для Grafana и Graphite в качестве источника данных доступен здесь.
В качестве EMCEE_WORKER_GRAPHITE_METRIC_PREFIX
в дашборде было использовано значение apps.mobile.metrics.awesomeapp
. А для переменной $worker_id
используется запрос tag_values(worker_id, name=~apps.mobile.metrics.awesomeapp.*)
(указывается в настройках дашборда в Variables), либо можно заменить значение $worker_id
на ~*
.
Этот дашборд можно импортироать в Grafana при создании нового дашборда. Дашборд был экспортирован для версии Grafana 9.1.7 и Graphite 1.0.0
Корректная работа дашборда при импорте не гарантируется так как в новых версиях Grafana и Graphite старый функционал может работать по-другому. Поэтому готовый дашборд может нуждаться в доработке в зависимости от ваших инструментов.