Конфигурирование jmx_exporter с помощью tomcat - PullRequest
1 голос
/ 23 апреля 2019

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

export 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+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), 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+&@#/%?=~_|!:.,;]*[-a-zA-Z0-9+&@#/%=~_|]), 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, я ничего не нахожу, а журналы каталины, журналы tomcat ничего не показывают.

Мои вопросы:

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