Полнофункциональное расширение 1C позволяющее выгружать метрики из 1С 8.3 в Prometheus Pushgetway. На текущий момент реализована выгрузка метрик с типом histogram для расчета APDEX в Grafana. Работает с 1С версии 8.3.17 и выше, так как используется константа для хранения адреса сервера pushgateway (14 точно не работает).
Описание базовой логики: Для логирования скорости выполнения операций в БСП используется стандартная подсистема «Оценка производительности». Запись происходит в разрезе ключевых операций. Все данные записываются в типовой регистр сведений «ЗамерыВремени». После записи в регистр «ЗамерыВремени» в расширении происходит формирование регистра «APDEXMetrics» для выгрузки из него метрик в нужном для Prometheus формате.
По условиям задачи, данные должны выгружаться в Prometheus Pushgetway 1 раз в минуту. Поэтому для того чтобы обеспечить достаточную скорость формирования метрик для нескольких десятков тысяч ключевых операций в регистре всегда хранится только текущий срез данных разбитых по бакетам (временные интервала в которые попадают записи). Все записи считаются нарастающим итогом в разрезе ключевой операции.
В сборке присутствуют
- Расширение для 1С «PrometheusExporter.cfe»
- Prometheus pushgetway
- Prometheus
- Grafana
- Обработка «Тест формирования регистра APDEX» - позволяет делать записи штатным механизмом логирования времени выполнения ключевых операций, а также для чистки регистра «APDEXMetrics».git
- pushgetway.sh - пример выгрузки метрик разных типов через curl (полезно, когда хочешь понять механику работы)
- Grafana\1C APDEX.json - дашборд Grafana для расчета APDEX
Краткая инструкция:
- Загрузите себе на машину данную сборку при помощи git-а
- Установите типовую конфигурацию 1С БСП
- Подключите к БСП расширение 1С «PrometheusExporter.cfe»
- Установите Docker desktop
- Перейдите в файл «docker-compose.yaml» запустите terminal и выполните команду docker-compose up -d
- Проверьте что что по адресу http://localhost:9091 у вас поднялся Prometheus pushgetway
- Проверьте что что по адресу http://localhost:9090 у вас поднялся Prometheus
- Проверьте что что по адресу http://localhost:3000 у вас поднялась Grafana (логин: admin, пароль: admin)
- Войдите в 1С и в константу «Адрес сервера pushgateway» укажите адрес http://localhost:9091/
- Отройте регистр сведений «APDEXMetrics» и проверьте что там есть записи
- Откройте обработку «Prometheus - выгрузить APDEX в Pushgetway» и нажмите кнопку «Отправить в Pushgetway».
- Откройте http://localhost:9091 и проверьте, что метрики записались. Также можно открыть метрики в том виде, в котором их забирают Prometheus: http://localhost:9091/metrics
- При помощи обработки «Тест формирования регистра APDEX» можно экспериментировать.
- Удалить все записи из регистра «APDEXMetrics»
- Запишите данные с нужным вам временем (данные с клиента пишутся асинхронно, поэтому для тестирования лучше использовать запись на сервере).
- Очистите Prometheus pushgetway (docker-compose down -> docker-compose up -d)
- Отправьте метрики снова при помощи обработки «Prometeus - выгрузить APDEX в Pushgetway»
- Для внесения нескольких данных, просто закройте и снова откройте БСП (сработает типовой алгоритм логирования ключевых операций при входе)
- Если не работает выгрузка в Prometheus pushgetway есть файл pushgetway.sh. Используя файл можно отправлять метрики вручную. Отправка просиходит через Bash (если у вас устновлен Git, то Bash у вас есть). Просто откройте терминал выберите Git Bash, напишите «./ pushgetway.sh» и Prometheus pushgetway вы должны будите увидите 4 метрики разных типов.
- Открывайте Grafana и делайте свои борды или попробуйте наш 1C Grafana\APDEX.json.
Всем удачи!
PS: На Инфостарте опубликована статья по данной теме: https://infostart.ru/1c/articles/1606108/
dd3bc01cddb985a0eb45f0b615aeb6a0b5fcdac5