Мониторинг всякого в GreenData (KPIs, metrics, and any business performance)

Раздел: Идеи

Для камунды (Camunda) есть такое решение, например: https://github.com/StephenOTT/Camunda-Monitoring

Monitor anything you can query in a Camunda BPM engine. Monitor KPIs, metrics, and any business performance

А в GreenData есть подобное?

Комментарии

  • Добрый день! В этой статье описаны настройки приложения для передачи метрик, начиная с этого параграфа и ниже: https://docs.greendata.ru/platform/ru/monitoring.html#_1_3_configuring_application_to_transmit_metrics

    Если у вас появятся дополнительные вопросы, пишите.

  • В этой статье описаны настройки приложения для передачи метрик

    Да, это видел, спасибо, этим пользуемся

  • Версия: LTS.466.13, сборка 726508 (fcff4bd) от 16.09.2025 17:01:00

    настройки приложения для передачи метрик

    Вот так выглядит секция management в application.yaml:

    management:
      metrics:
        export:
          prometheus:
            enabled: true
        distribution:
          percentiles-histogram:
            "[http.server.requests]": true
      endpoints:
        web:
          exposure:
            include: health, prometheus
          base-path: /
        jmx:
          exposure:
            exclude: '*'
    

    Вот, что возвращает curl:

    curl http://localhost:8080/health
    {"status":"UP"}
    
    curl http://localhost:8080/prometheus
    {"timestamp":"2025-10-07T11:58:33.567Z","status":404,"error":"Not Found","message":"Not Found","path":"/prometheus"}
    

    Что-то ещё нужно сделать?

  • Добрый вечер! Спасибо за информацию, уточним и вернемся с ответом.

  • отредактировано 14 окт

    Добрый день!
    Забыли добавить:

    Ссылка на статью: https://docs.greendata.ru/platform/ru/monitoring.html#_1_3_configuring_application_to_transmit_metrics

  • отредактировано 14 окт

    Здравствуйте,

    Spring Boot Actuator работает вот так:

    • параметр include определяет, какие endpoint'ы разрешены, остальные будут запрещены; необязательно перечислять всё остальное в exclude
    • при одновременном определении include и exclude, приоритет имеет exclude: endpoint'ы из него будут закрыты, даже если они есть в include
    • если нужно открыть почти все endpoint'ы, кроме нескольких, то можно определить include=* и перечислить исключения в exclude

    В двух словах: не нужно описывать все исключения как описано в этой статье, достаточно двух include'ов

    Странно, что GreenData работает немного иначе

    PS Ещё смущает "добавьте его в pro.greendata.core.web.util.SaasUtils.ignoringFilterUris", это похоже на внесение изменений в исходный код GreenData; непонятно зачем это примечание в пользовательской инструкции

  • exclude: auditevents,beans,caches,conditions,configprop, ...

    Ага, так работает
    Спасибо 🌹

  • Шаблон можно скачать тут https://downloads.greendatasoft.ru/grafana/

    Шаблон может быть неактуальным? Вижу например пустое в HikariCP Statistics / Conections:

    При попытке внести изменения в эту панель, получаю ошибку: "An unexpected error happened -- Error: "byValue" not found in: byName,byRegexp,byType,byFrameRefID,byNames"

  • Метрики приложением возвращаются?
    Какая версия графаны?

  • Какая версия графаны?

    9.2.5

    Метрики приложением возвращаются?

    Да, curl http://lowcode.test-ecoculture.svc.cluster.local/prometheus | grep hikaricp:

    ...
    # HELP hikaricp_connections_max Max connections
    # TYPE hikaricp_connections_max gauge
    hikaricp_connections_max{pool="HikariPool-1",} 100.0
    # HELP hikaricp_connections Total connections
    # TYPE hikaricp_connections gauge
    hikaricp_connections{pool="HikariPool-1",} 6.0
    
  • Нужно проверить:
    1. Работу метрик приложения, введя в браузере адрес приложения в таком виде:
    https://АДРЕС_ПРИЛОЖЕНИЯ/prometheus
    должны получить подобную информацию:

    1. Проверить получения метрик в prometheus.
      Если на каком то из этапов метрик нет, нужно предоставить конфиг приложения и prometheus.
      Если проблем в обоих пунктах нет, также понадобится конфиг для запуска и тестирования настроек на нашей стороне.
  • Работу метрик приложения, введя в браузере адрес приложения в таком виде:

    Вот же: curl http://lowcode.test-ecoculture.svc.cluster.local/prometheus | grep hikaricp
    Возвращает все метрики springboot-приложения, в частности

    ...
    # HELP hikaricp_connections_max Max connections
    # TYPE hikaricp_connections_max gauge
    hikaricp_connections_max{pool="HikariPool-1",} 100.0
    # HELP hikaricp_connections Total connections
    # TYPE hikaricp_connections gauge
    hikaricp_connections{pool="HikariPool-1",} 6.0
    

    Проверить получения метрик в prometheus.

    Часть метрик доступна и в prometheus, и в графане, https://forum.greendata.ru/discussion/comment/324/#Comment_324

  • Добрый день! Вопрос в работе. По результатам отпишемся.

  • А это работает только на pull? Метрики можно именно отправлять? Или можно настроить только чтобы прометеус забирал их?

  • Метрики "забираются" у приложения Service Monitor'ом (monitoring.coreos.com/v1 / ServiceMonitor), раз в N секунд
    Т.е. да, pull

  • Добрый день! Вопрос находится в проработке. На следующей неделе направим ответ.

  • отредактировано 18 ноя

    Добрый день!
    Проверили.
    Запустили тестовый контур lowcode+prometheus+grafana, инфраструктура была подготовлена
    с помощью docker-compose.

    Приложение
    Запущено согласно инструкции https://docs.greendata.ru/platform/ru/administration.html#as-docker-image
    В файле app.yml добавлен следующий конфиг:

    management:
      metrics:
        export:
          prometheus:
            enabled: true
        distribution:
          percentiles-histogram:
            "[http.server.requests]": true
      endpoints:
        web:
          exposure:
            include: health, prometheus
            exclude: auditevents,beans,caches,conditions,configprops,env,flyway,heapdump,httptrace,info,integrationgraph,jolokia,logfile,loggers,liquibase,metrics,mappings,quartz,scheduledtasks,sessions,shutdown,startup,threaddump
          base-path: /
        jmx:
          exposure:
            exclude: '*'
    

    Согласно инструкции https://docs.greendata.ru/platform/ru/monitoring.html#_1_3_configuring_application_to_transmit_metrics
    После запуска приложения нужно проверить доступность метрик, введя в браузере адрес приложения в формате:

    #Для HTTP
    http://АДРЕС_ПРИЛОЖЕНИЯ:ПОРТ_ПРИЛОЖЕНИЯ/prometheus
    #Для HTTPS
    https://АДРЕС_ПРИЛОЖЕНИЯ/prometheus
    

    Вы должны получить список метрик, пример в файле ниже

    Prometheus
    Запущен в контейнере, пример конфига docker-compose.yml:

    services:
      prometheus:
        image: prom/prometheus:latest
        user: root
        container_name: prometheus
        volumes:
          - /home/csus/apps/prometheus/conf:/etc/prometheus
          - /home/csus/apps/prometheus/data:/prometheus
        command:
          - '--config.file=/etc/prometheus/prometheus.yml'
          - '--storage.tsdb.path=/prometheus'
        ports:
          - "9090:9090"
    

    Пример конфига Prometheus из файла prometheus.yml

    global:
      scrape_interval:     15s
      evaluation_interval: 15s
    
    scrape_configs:
    - job_name: 'lowcode_test'
      scrape_interval: 5s
      metrics_path: /prometheus
      scheme: http
      static_configs:
      - targets: ['АДРЕС_ПРИЛОЖЕНИЯ:ПОРТ_ПРИЛОЖЕНИЯ']
    

    После запуска, нужно проверить, что prometheus доступны метрики приложения,
    это можно выполнить перейдя в интерфейс prometheus по адресу
    http://АДРЕС_PROMETHEUS:9090/targets

    Grafana
    Запущен в контейнере, пример конфига docker-compose.yml:

    services:
      grafana:
        image: grafana/grafana
        user: root
        volumes:
          - ./grafana:/var/lib/grafana
          - ./grafana/provisioning/:/etc/grafana/provisioning/
        container_name: grafana
        network_mode: 'host'
        hostname: grafana
        restart: unless-stopped
        environment:
          TZ: "Europe/Moscow"
    

    После этого войти в Grafana http://АДРЕС_GRAFANA:3000 и выполнить следующее:

    1. Добавить источник данных Prometheus тут http://АДРЕС_GRAFANA:3000/connections/datasources

    2. Импортировать дашборд из файла https://downloads.greendatasoft.ru/grafana/dashboard-v1.json

    и нажать Load

    В дашборде увидим следующую информацию:
    Basic Statistics:

    JVM Statistics - Memory

    HikariCP Statistics

    HTTP Statistics

    Webserver Statistics и Executors Statistics

Войдите или Зарегистрируйтесь чтобы комментировать.