Приложение выполняет роль explorer'а для prometheus. На текущий момент приложение собирает метрики:
Доступную производительность серверов приложений
сборка показателей осуществляется через утилиту rac. Каждую из метрик можно ставить на паузу, например такое может потребоваться в процессе обновления ИБ т.к. соединения RAC могут мешать этому процессу. Что бы поставить на паузу нужно отправить GET запрос
http://host:9091/Pause?metricNames=ProcData,SessionsMemory&offsetMin=1
где metricNames это метрики через запятую, offsetMin это пауза в минутах после которой автоматически включается сбор показателей. offsetMin - необязательный, если его не указывать сбор будет приостановлен будет пока явно его не запустить, запуск производится так:
http://host:9091/Continue?metricNames=ProcData,SessionsMemory
Имена метрик можно посмотреть в конфиге settings.yaml
git clone https://github.com/LazarenkoA/prometheus_1C_exporter
, переходим в каталог, выполняем go build -o "1C_exporter"
или go build -o "1C_exporter.exe"
. Linux:
./1C_exporter -port=9095 --settings=/usr/local/bin/settings.yaml
для запуска в качестве службы можно посмотреть пример systemd в каталоге service/linux
Windows:
1C_exporter.exe -port=9095 --settings=C:\settings.yaml
приложение поддерживает работу в режиме службы, пример создания службы можно посмотреть в каталоге service/windows
Если порт не указать по дефолту будет порт 9091
в конфиге прометеуса (prometheus.yml) нужно указать хосты на которых запущен explorer
- job_name: '1C_Metrics'
metrics_path: '/1C_Metrics'
static_configs:
- targets: ['host1:9091', 'host2:9091', 'host3:9091', 'host4:9091']
Все, настраиваем дажборды, умиляемся.
Для данной конфигурации дажбордов (Клиентские лицензии) настройки графаны такие:
sum by (licSRV) (ClientLic{quantile="0.99", licSRV=~"(?i).+sys.+"})
экспортер выдает данные в таком виде
.....
ClientLic{host="CA-N11-APP-1",licSRV="\"ca-sys-1\"",quantile="0.5"} 193
ClientLic{host="CA-N11-APP-1",licSRV="\"ca-sys-1\"",quantile="0.9"} 193
ClientLic{host="CA-N11-APP-1",licSRV="\"ca-sys-1\"",quantile="0.99"} 193
ClientLic_sum{host="CA-N11-APP-1",licSRV="\"ca-sys-1\""} 193
ClientLic_count{host="CA-N11-APP-1",licSRV="\"ca-sys-1\""} 1
ClientLic{host="CA-N11-APP-1",licSRV="HASP",quantile="0.5"} 17
ClientLic{host="CA-N11-APP-1",licSRV="HASP",quantile="0.9"} 17
ClientLic{host="CA-N11-APP-1",licSRV="HASP",quantile="0.99"} 17
ClientLic_sum{host="CA-N11-APP-1",licSRV="HASP"} 17
ClientLic_count{host="CA-N11-APP-1",licSRV="HASP"} 1
ClientLic{host="CA-N11-APP-1",licSRV="soft",quantile="0.5"} 4
ClientLic{host="CA-N11-APP-1",licSRV="soft",quantile="0.9"} 4
ClientLic{host="CA-N11-APP-1",licSRV="soft",quantile="0.99"} 4
ClientLic_sum{host="CA-N11-APP-1",licSRV="soft"} 4
ClientLic_count{host="CA-N11-APP-1",licSRV="soft"} 1
.....
это можно проверить выполнив curl http://localhost:9091/1C_Metrics
соответственно в примере sum by (licSRV) (ClientLic{quantile="0.99", licSRV=~"(?i).+sys.+"})
мы берем метрику ClientLic
ту где quantile="0.99" и licSRV подходит к regexp "(?i).+sys.+"
Другие дажборды настраиваются по аналогии. Другие примеры функций можно посмотреть в
документации prometheus
Пример настройки графаны для дажборда по IOPS диска
sum(disk{ node="$group", host=~"(?i).*app-1", quantile="0.99", metrics="IopsInProgress"})by (metrics)
Ожидание на диске
sum(rate(disk{ node="$group", host=~"(?i).*app-2", quantile="0.99", metrics="WeightedIO"}[5m])) by (metrics)