Как вы можете перенести метрики infinispan jmx в графит с помощью jmxtrans?

У меня есть этот файл конфигурации

{
   "servers": [
      {
         "url": "service:jmx:rmi:///jndi/rmi://192.168.167.166:6000/jmxrmi ",
         "alias": "infinispan",
         "username":"admin",
         "password": "admin",
         "queries": [
            {
               "obj": "java.lang:type=Memory",
               "attr": [
                  "HeapMemoryUsage",
                  "NonHeapMemoryUsage"
               ],
               "outputWriters": [
                  {
                     "@class": "com.googlecode.jmxtrans.model.output.GraphiteWriterFactory",
                     "port": 2003,
                     "host": "127.0.0.1",
                     "typeNames": [
                        "name"
                     ]
                  }
               ]
            }
         ],
         "numQueryThreads": 2
      }
   ]
}

graphite работает на локальном хосте, и когда я подключаюсь к jconsole, он отлично соединяется, и отображаются метрики.

Я запускаю «./jmxtrans.sh start infinispan.json» из папки /jmxtrans-jmxtrans-parent-260/jmxtrans.

В файле jmxtrans.log я продолжаю получать это исключение:

[13 Dec 2016 09:27:04] [Stormpot-pool-3-thread-1] 2448   ERROR (com.googlecode.jmxtrans.model.output.support.pool.RetryingAllocator$1:77) - Error allocating slot
java.net.ConnectException: Connection refused
    at java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at com.googlecode.jmxtrans.model.output.support.pool.SocketAllocator.allocate(SocketAllocator.java:61)
    at com.googlecode.jmxtrans.model.output.support.pool.SocketAllocator.allocate(SocketAllocator.java:37)
    at com.googlecode.jmxtrans.model.output.support.pool.RetryingAllocator$2.call(RetryingAllocator.java:89)
    at com.googlecode.jmxtrans.model.output.support.pool.RetryingAllocator$2.call(RetryingAllocator.java:86)
    at com.github.rholder.retry.AttemptTimeLimiters$NoAttemptTimeLimit.call(AttemptTimeLimiters.java:78)
    at com.github.rholder.retry.Retryer.call(Retryer.java:160)
    at com.googlecode.jmxtrans.model.output.support.pool.RetryingAllocator.allocate(RetryingAllocator.java:86)
    at stormpot.ReallocatingAdaptor.allocate(ReallocatingAdaptor.java:37)
    at stormpot.BAllocThread.alloc(BAllocThread.java:225)
    at stormpot.BAllocThread.increaseSizeByAllocating(BAllocThread.java:131)
    at stormpot.BAllocThread.replenishPool(BAllocThread.java:106)
    at stormpot.BAllocThread.continuouslyReplenishPool(BAllocThread.java:88)
    at stormpot.BAllocThread.run(BAllocThread.java:80)
    at java.lang.Thread.run(Thread.java:745)

person osmingo    schedule 13.12.2016    source источник
comment
Я заменил писатель на @class : com.googlecode.jmxtrans.model.output.Slf4JOutputWriter, и исключение исчезло, так что что-то не так с моим локальным графитом, который работает с помощью vagrant   -  person osmingo    schedule 13.12.2016


Ответы (1)


В конце концов я понял, что проблема заключалась в порте, на который vagrant перенаправлял его, в данном случае 22003:

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'mayflower/trusty64-puppet3' is up to date...
==> default: Clearing any previously set forwarded ports...
==> default: Clearing any previously set network interfaces...
==> default: Preparing network interfaces based on configuration...
    default: Adapter 1: nat
==> default: Forwarding ports...
    default: 443 (guest) => 8443 (host) (adapter 1)
    default: 8125 (guest) => 8125 (host) (adapter 1)
    default: 2003 (guest) => 22003 (host) (adapter 1)
person osmingo    schedule 16.12.2016