Не могу очистить метрики от activemq jmx-экспортером

Не может очистить метрики от activemq jmx-экспортером

я загружаю экспортер jmx на свою виртуальную машину и следую инструкциям для запуска команды следующим образом: java -javaagent:./jmx_prometheus_javaagent-0.12.0.jar=8980:config.yaml -jar /usr/local/tomcat/apache-activemq/apache-activemq-5.8.0_56/bin/activemq.jar

И я получаю некоторую выходную информацию о activemq. тогда я пытаюсь свернуться: curl http://localhost:8980/metrics,

И получите ошибку: curl: (7) couldn't connect to host

Я проверяю процесс. И обнаружил, что нет java-процесса jvm-экспортера.

Почему? что я делаю не так?

вот мой config.yaml

[root@sz-7-centos162 test]# cat config.yaml 
{
        startDelaySeconds: 0,
        username: admin,
        password: admin,
        jmxUrl: "service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi",
        ssl: false,
        lowercaseOutputName: false,
        lowercaseOutputLabelNames: false
}

Я ожидаю, что curl http://localhost:8980/metrics получит метрики, но на самом деле он просто отображает некоторую информацию о activemq, но ничего не делает. Все выходные данные и моя работа вставлены ниже:

[root@sz-7-centos162 test]# java -javaagent:./jmx_prometheus_javaagent-0.12.0.jar=8980:config.yaml -jar /usr/local/tomcat/apache-activemq/apache-activemq-5.8.0_56/bin/activemq.jar
Java Runtime: Oracle Corporation 1.8.0_51 /usr/jdk1.8.0_51/jre
  Heap sizes: current=243712k  free=233469k  max=3608576k
    JVM args: -javaagent:./jmx_prometheus_javaagent-0.12.0.jar=8980:config.yaml
Extensions classpath:
  [/usr/local/tomcat/apache-activemq/apache-activemq-5.8.0_56/lib,/usr/local/tomcat/apache-activemq/apache-activemq-5.8.0_56/lib/camel,/usr/local/tomcat/apache-activemq/apache-activemq-5.8.0_56/lib/optional,/usr/local/tomcat/apache-activemq/apache-activemq-5.8.0_56/lib/web,/usr/local/tomcat/apache-activemq/apache-activemq-5.8.0_56/lib/extra]
ACTIVEMQ_HOME: /usr/local/tomcat/apache-activemq/apache-activemq-5.8.0_56
ACTIVEMQ_BASE: /usr/local/tomcat/apache-activemq/apache-activemq-5.8.0_56
ACTIVEMQ_CONF: /usr/local/tomcat/apache-activemq/apache-activemq-5.8.0_56/conf
ACTIVEMQ_DATA: /usr/local/tomcat/apache-activemq/apache-activemq-5.8.0_56/data
Usage: Main [--extdir <dir>] [task] [task-options] [task data]

Tasks:
    browse                   - Display selected messages in a specified destination.
    bstat                    - Performs a predefined query that displays useful statistics regarding the specified broker
    create                   - Creates a runnable broker instance in the specified path.
    decrypt                  - Decrypts given text
    encrypt                  - Encrypts given text
    export                   - Exports a stopped brokers data files to an archive file
    list                     - Lists all available brokers in the specified JMX context
    purge                    - Delete selected destination's messages that matches the message selector
    query                    - Display selected broker component's attributes and statistics.
    start                    - Creates and starts a broker using a configuration file, or a broker URI.
    stop                     - Stops a running broker specified by the broker name.

Task Options (Options specific to each task):
    --extdir <dir>  - Add the jar files in the directory to the classpath.
    --version       - Display the version information.
    -h,-?,--help    - Display this help information. To display task specific help, use Main [task] -h,-?,--help

Task Data:
    - Information needed by each specific task.

JMX system property options:
    -Dactivemq.jmx.url=<jmx service uri> (default is: 'service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi')
    -Dactivemq.jmx.user=<user name>
    -Dactivemq.jmx.password=<password>


[root@sz-7-centos162 test]# curl http://localhost:8980/metrics
curl: (7) couldn't connect to host
[root@sz-7-centos162 test]# ps -ef|grep javaagent
root     23739 21179  0 23:46 pts/0    00:00:00 grep javaagent
[root@sz-7-centos162 test]# cat config.yaml 
{
        startDelaySeconds: 0,
        username: admin,
        password: admin,
        jmxUrl: "service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi",
        ssl: false,
        lowercaseOutputName: false,
        lowercaseOutputLabelNames: false
}
[root@sz-7-centos162 test]# ll
total 368
-rw-r--r-- 1 root root    252 Aug 26 23:19 config.yaml
-rw-r--r-- 1 root root 370075 Aug 26 17:45 jmx_prometheus_javaagent-0.12.0.jar
[root@sz-7-centos162 test]# 

1 ответ

Вы на самом деле не запускаете брокер ActiveMQ. Вот почему он печатает всю эту информацию о доступных командах, например:

Usage: Main [--extdir <dir>] [task] [task-options] [task data]

Tasks:
    browse                   - Display selected messages in a specified destination.
    bstat                    - Performs a predefined query that displays useful statistics regarding the specified broker
    create                   - Creates a runnable broker instance in the specified path.
    decrypt                  - Decrypts given text
    encrypt                  - Encrypts given text
    export                   - Exports a stopped brokers data files to an archive file
    list                     - Lists all available brokers in the specified JMX context
    purge                    - Delete selected destination's messages that matches the message selector
    query                    - Display selected broker component's attributes and statistics.
    start                    - Creates and starts a broker using a configuration file, or a broker URI.
    stop                     - Stops a running broker specified by the broker name.

Task Options (Options specific to each task):
    --extdir <dir>  - Add the jar files in the directory to the classpath.
    --version       - Display the version information.
    -h,-?,--help    - Display this help information. To display task specific help, use Main [task] -h,-?,--help

Task Data:
    - Information needed by each specific task.

Вы заметите, что одна из этих команд start, Это команда, которую нужно выполнить, чтобы фактически запустить брокера.

Помимо этого, ваш config.yaml не имеет rules определено, чтобы сообщить экспортеру, что MBeans нужно очистить и экспортировать. Вы можете найти примеры правил для различных приложений здесь. К сожалению, для ActiveMQ 5.x такого нет, поэтому вам нужно будет поработать над ним.

Помимо этого вы можете рассмотреть ActiveMQ Artemis (следующее поколение брокера ActiveMQ). Он имеет архитектуру плагинов для экспорта метрик и реализацию плагина Prometheus, поэтому нет необходимости использовать экспортер JMX и настраивать правила.

Другие вопросы по тегам