Начало работы с мониторингом
Пример на GitHub: sharded_cluster_crud_metrics.
В Tarantool настройка метрик и их предоставление производятся в YAML-конфигурации. Для создания и сбора пользовательских метрик также доступен встроенный модуль metrics.
Для настройки метрик используйте секцию metrics в конфигурации кластера. Приведенная ниже конфигурация включает все метрики, кроме метрик, специфичных для движка vinyl:
/code_snippets/snippets/sharding/instances.enabled/sharded_cluster_crud_metrics/config.yaml
Параметр metrics.labels принимает предопределенную переменную
{{ instance_name }}.
Эта переменная добавляет имя экземпляра в качестве
метки к каждому наблюдению.
Сторонние Lua-модули, такие как crud или
expirationd, предоставляют собственные метрики. Чтобы включить эти метрики,
настройте соответствующую роль.
В примере ниже показано, как включить статистику по вызываемым операциям, задав конфигурацию роли roles.crud-router:
/code_snippets/snippets/sharding/instances.enabled/sharded_cluster_crud_metrics/config.yaml
Метрики expirationd включаются следующим образом:
expirationd:cfg:metrics: true
Для предоставления метрик в различных форматах доступна сторонняя роль
metrics-export-role. В следующем примере метрики storage-a-001
предоставляются на двух конечных точках:
/metrics/prometheus: предоставляет метрики в формате Prometheus./metrics/json: предоставляет метрики в формате JSON.
storage-a-001:roles_cfg:roles.metrics-export:http:- listen: '127.0.0.1:8082'endpoints:- path: /metrics/prometheus/format: prometheus- path: /metrics/jsonformat: json
Пример на GitHub: sharded_cluster_crud_metrics.
С помощью модуля metrics можно создавать и собирать пользовательские метрики. В примере ниже показано, как собирать количество
операций с данными, выполненных над указанным спейсом, с помощью увеличения значения counter внутри функции-триггера
on_replace():
/code_snippets/snippets/config/instances.enabled/metrics_collect_custom/examples/collect_custom_replace_count.lua
Подробнее см. в разделе Пользовательские метрики.
После настройки и предоставления метрик для их сбора можно использовать любой сторонний инструмент. Ниже приведен пример конфигурации сбора (scrape) Prometheus, которая собирает метрики с нескольких экземпляров Tarantool:
/code_snippets/snippets/sharding/instances.enabled/sharded_cluster_crud_metrics/prometheus/prometheus.yml
Подробнее о сборе и визуализации метрик см. в разделе Дашборд Grafana.