/selectel-exporter

Primary LanguageGoApache License 2.0Apache-2.0

Selectel Exporter

Prometheus exporter для получения метрик облака Selectel.

Установка

Kubernetes

Необходимо:

Полученные данные нужно передать в переменные selectel.token и selectel.region соответственно.

helm repo add kts https://ktsstudio.github.io/helm-charts
helm install selexp --wait --set selectel.token=<token>,selectel.region=<region> -n <namespace> kts/selectel-exporter 

Если вы используете prometheus-operator, то укажите serviceMonitor.enabled=true и serviceMonitor.additionalLabels. В additionalLabels нужно указать label, которые указаны в serviceMonitorSelector.

Узнать подробнее про helm chart можно тут.

Docker

docker run --env SELECTEL_TOKEN=<token> --env SELECTEL_REGION=<region> ktshub/selectel-exporter:1.0.0

Исполняемый файл (доступные сборки)

export SELECTEL_TOKEN=<token>
export SELECTEL_REGION=<region>
./selectel-exporter 

Как проверить?

helm test selexp -n <namespace>
# или
curl --request GET --url 'http://<host>:9100/metrics' 

Доступные метрики

Хранилище (Datastore)

Метрика Описание
selectel_datastore_memory_percent Процент занимаемой оперативной памяти
selectel_datastore_memory_bytes Занимаемая оперативная память в байтах
selectel_datastore_cpu Процент утилизации CPU
selectel_datastore_disk_percent Процент занимаемого диска
selectel_datastore_disk_bytes Занимаемая память на диске в байтах

Label'ы метрик

Label Описание
project имя проекта
datastore имя хранилища
ip адрес узла в кластере
role является ли instance мастером или репликой

Пример

selectel_datastore_cpu{datastore="kts",ip="10.0.0.210",project="kts"} 1.787500000209541
selectel_datastore_cpu{datastore="kts",ip="10.0.3.214",project="kts"} 34.25416666645712
selectel_datastore_disk_bytes{datastore="kts",ip="10.0.0.210",project="kts"} 1.70075703296e+11
selectel_datastore_disk_bytes{datastore="kts",ip="10.0.3.214",project="kts"} 1.7009717248e+11
...

База данных (Database)

Метрика Описание
selectel_database_locks Locks
selectel_database_deadlocks Deadlocks
selectel_database_cache_hit_ratio Попадание в кэш
selectel_database_tup_updated Операции со строками
selectel_database_tup_returned Операции со строками
selectel_database_tup_inserted Операции со строками
selectel_database_tup_fetched Операции со строками
selectel_database_tup_deleted Операции со строками
selectel_database_xact_rollback Транзакции
selectel_database_xact_commit Транзакции
selectel_database_xact_commit_rollback Транзакции
selectel_database_max_tx_duration Время выполнения самого долгого запроса
selectel_database_connections Количество подключений к БД
selectel_database_total_connections Общее количество подключений
selectel_database_commands_total_delete Запросы
selectel_database_commands_total_insert Запросы
selectel_database_commands_total_select Запросы
selectel_database_commands_total_update Запросы
selectel_database_innodb_buffer_pool_hit_ratio Попадание в кэш
selectel_database_slow_queries Медленные запросы
selectel_database_threads_cached Threads
selectel_database_threads_connected Threads
selectel_database_threads_running Threads

Label'ы метрик

Label Описание
project имя проекта
datastore имя хранилища
ip адрес узла в кластере
database имя базы данных (для mysql лейбл database отсутствует)
role является ли instance мастером или репликой

Пример

selectel_database_tup_returned{database="kts",datastore="kts",ip="10.0.3.214",project="kts"} 2.1127298e+06
selectel_database_xact_commit{database="kts",datastore="kts",ip="10.0.3.214",project="kts"} 307.48333333333335
...

Баланс (Подробнее)

Основной баланс.

Для получения основного баланса нужно указать label {account="primary"}.

Метрика Описание
selectel_billing_main Рубли — основной лицевой счет
selectel_billing_bonus Бонусы — основной бонусный баланс
selectel_billing_vk_rub Голоса ВКонтакте — голоса приложения Вконтакте

Остальные балансы.

  • Баланс хранилища {account="storage"}
  • Баланс облачной платформы {account="vpc"}
  • Баланс vmware {account="vmware"}
Метрика Описание
selectel_billing_main Рубли — основной лицевой счет
selectel_billing_bonus Бонусы — основной бонусный баланс
selectel_billing_vk_rub Голоса ВКонтакте — голоса приложения Вконтакте
selectel_billing_debt Долг
selectel_billing_sum Итог

Пример

selectel_billing_main{account="primary",project="kts"} 0
selectel_billing_main{account="storage",project="kts"} 46649
selectel_billing_main{account="vmware",project="kts"} 0
selectel_billing_main{account="vpc",project="kts"} 596574
...

Мотивация

  • В selectel для managed баз данных нельзя добавить exporter
  • В selectel есть мониторинг и графики, но хочется собирать/отображать/мониторить метрики в одном месте (prometheus, grafana, alertmanager).