Настройка jmx_exporter с помощью tomcat

#tomcat #jmx #hikaricp #mbeans #jmx-exporter

#tomcat #jmx #hikaricp #mbeans #jmx-экспортер

Вопрос:

Я пытаюсь представить некоторые из моих метрик приложения Spring (Весна). Показатели — это в основном показатели подключения к базе данных. Для этого я начал с настройки пула соединений hikari, затем я использовал jmx. Чтобы экспортировать показатели в prometheus, а затем визуализировать их с помощью Grafana, я попытался использовать jmx_prometheus_exporter [https://github.com/prometheus/jmx_exporter ][1]

Я отключил jmx_exporter jar, а затем добавил эту строку в свой сервис Tomcat8 (в папке init.d).

экспортировать JAVA_OPTS=»$ JAVA_OPTS -javaagent:/home/monitoring/jmx_prometheus_javaagent-0.3.0.jar=9095:/home/monitoring/config-jmx-tomcat.yaml»

Это файл конфигурации для tomcat (config-jmx-tomcat.yaml)

 lowercaseOutputLabelNames: true lowercaseOutputName: true rules:
- pattern: 'Catalina<type=GlobalRequestProcessor, name="(w -w )-(d )"><>(w ):'   name: tomcat_$3_total   labels:
    port: "$2"
    protocol: "$1"   help: Tomcat global $3   type: COUNTER
- pattern: 'Catalina<j2eeType=Servlet, WebModule=//([-a-zA-Z0-9 amp;@#/%?=~_|!:.,;]*[-a-zA-Z0-9 amp;@#/%=~_|]), name=([-a-zA-Z0-9 /$%~_-|!.]*), J2EEApplication=none, J2EEServer=none><>(requestCount|maxTime|processingTime|errorCount):'   name: tomcat_servlet_$3_total   labels:
    module: "$1"
    servlet: "$2"   help: Tomcat servlet $3 total   type: COUNTER
- pattern: 'Catalina<type=ThreadPool, name="(w -w )-(d )"><>(currentThreadCount|currentThreadsBusy|keepAliveCount|pollerThreadCount|connectionCount):' name: tomcat_threadpool_$3   labels:
    port: "$2"
    protocol: "$1"   help: Tomcat threadpool $3   type: GAUGE
- pattern: 'Catalina<type=Manager, host=([-a-zA-Z0-9 amp;@#/%?=~_|!:.,;]*[-a-zA-Z0-9 amp;@#/%=~_|]), context=([-a-zA-Z0-9 /$%~_-|!.]*)><>(processingTime|sessionCounter|rejectedSessions|expiredSessions):' name: tomcat_session_$3_total   labels:
    context: "$2"
    host: "$1"   help: Tomcat session $3 total   type: COUNTER
  

В моем приложении именно так я определяю пул соединений и MBeanServer….

 MBeanServer mBeanServer = ManagementFactory.getPlatformMBeanServer();
ObjectName poolName = new ObjectName("com.zaxxer.hikari:type=Pool (foo)");
HikariPoolMXBean poolProxy = JMX.newMXBeanProxy(mBeanServer, poolName, HikariPoolMXBean.class);
int idleConnections = poolProxy.getIdleConnections();
  

Когда я пытаюсь получить доступ к localhost:9095 /metrics, я ничего не нахожу, и журналы catalina, журналы tomcat, ничего не показывают.

Мои вопросы:

  • Являются ли шаги, которые я выполняю, правильными или нет?
  • Как я могу выполнить отладку или где я должен увидеть ошибки?
  • Я продолжаю находить руководства, показывающие conifgs с помощью jmx remote. Когда это использовать? заранее благодарю вас за ваш ответ.

Комментарии:

1. Любой ответ найден для этого? Я мог видеть все другие показатели, но не метрики connectionpool .. как вы решили эту проблему?