An open API service indexing awesome lists of open source software.

https://github.com/yellow-hammer/prometheus-e1c

Расширение 1С:Предприятие 8 для экспорта метрик в формате Prometheus
https://github.com/yellow-hammer/prometheus-e1c

1c-enterprise prometheus-client

Last synced: 2 months ago
JSON representation

Расширение 1С:Предприятие 8 для экспорта метрик в формате Prometheus

Awesome Lists containing this project

README

          

# prometheus-e1c

[![OpenYellow](https://openyellow.openintegrations.dev/data/badges/1181941167.svg)](https://openyellow.org/grid?filter=top&repo=1181941167)
[![telegram chat](https://img.shields.io/badge/telegram-chat-green.svg)](https://t.me/wonder_yellow)
[![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/yellow-hammer/prometheus-e1c)

Расширение для 1С:Предприятие 8: экспорт метрик в формате Prometheus для сбора и мониторинга (Prometheus, Grafana и др.).

Предоставляет HTTP-сервис с эндпоинтом **GET /metrics** в формате
[Prometheus Text Format](https://prometheus.io/docs/instrumentation/exposition_formats/). Логика работы метрик и
реестра совместима с библиотекой [prometheus](https://github.com/yellow-hammer/prometheus) и сервисом
[prometheus-metrics](https://github.com/yellow-hammer/prometheus-metrics).

![Скриншот эндпоинта /metrics](doc/screenshot-hs.jpg)

## Установка и подключение

1. Добавьте расширение `prometheus-client` в информационную базу.
2. Опубликуйте HTTP-сервис, эндпоинт `PrometheusMetricsEndpoint`.
3. Добавьте роль `PrometheusОсновнаяРоль` пользователю, от имени которого Prometheus подключается за получением метрик.
4. После публикации веб-сервиса метрики будут доступны по пути, соответствующему настройкам HTTP-сервиса, например
`GET <АдресПубликации>/hs/metrics`.

## Использование в конфигурации

Код фасада повторяет API библиотеки `prometheus` для OneScript и доступен в общем модуле `PrometheusFacade`.
При создании метрики через фасад регистрация в реестре по умолчанию и сохранение выполняются автоматически.

Типичный сценарий:

1. Создайте метрику через фасад, например:
`Счетчик = PrometheusFacade.НовыйСчетчик("app_events_total", "Счётчик событий приложения");`
2. В нужных местах кода вызывайте операции:
`PrometheusFacade.Инкремент(Счетчик);` или `PrometheusFacade.Наблюдать(Гистограмма, Значение);`

При необходимости ручной работы с реестром: `Реестр = PrometheusRegistryStorage.ПолучитьРеестр();`,
`PrometheusRegistry.Зарегистрировать(Реестр, Коллектор);`, `PrometheusRegistryStorage.СохранитьРеестр(Реестр)`.

### Пример проектного хелпера

В составе репозитория есть пример расширения `prometheus_project_example` с модулем
`PrometheusПроект_ТестМетрикХелпер`. Он показывает, как для конкретного приложения выделить отдельный хелпер для своих
метрик (обмен, бизнес-события, фоновые задания) поверх общего фасада `PrometheusFacade`.
Рекомендуется для каждого потребителя метрик заводить свой хелпер-модуль в расширении и внутри него инкапсулировать создание и использование нужных метрик.

## Для разработчиков

- [CONTRIBUTING.md](CONTRIBUTING.md) — как внести вклад.
- [doc/release.md](doc/release.md) — как выпустить релиз.

## Лицензия

MIT License. Подробности см. в файле [LICENSE](LICENSE).

## Автор

Ivan Karlo ()

При желании, отблагодарить автора можно по ссылке:

- [Boosty](https://boosty.to/1carlo/donate)
- [Чаевые](https://pay.cloudtips.ru/p/d752cb43)