2015-10-01 84 views
1

我正在嘗試將Kafka指標(版本0.8.2)發送到我的grafana服務器。不幸的是,我只能得到java.lang度量,但沒有kafka度量。現在連接jmxtrans和jconsoel是個問題,我可以看到Kafka的MBeans。jmxtrans和kafka不工作

jmxtrans的配置:

{ 
    "servers" : [ { 
    "port" : "9393", 
    "host" : "localhost", 
    "queries" : [ { 
     "obj" : "kafka.network:type=RequestMetrics,name=LocalTimeMs,request=ConsumerMetadata", 
     "attr" : [ "Count" ], 
     "outputWriters" : [ { 
     "@class" : "com.googlecode.jmxtrans.model.output.GraphiteWriter", 
     "settings" : { 
      "port" : 2003, 
      "host" : "localhost" 
     } 
     } ] 
    }, { 
     "obj" : "kafka.network:type=RequestMetrics,name=RequestQueueTimeMs,request=FetchConsumer", 
     "attr" : [ "Count" ], 
     "outputWriters" : [ { 
     "@class" : "com.googlecode.jmxtrans.model.output.GraphiteWriter", 
     "settings" : { 
      "port" : 2003, 
      "host" : "localhost" 
     } 
     } ] 
    }, { 
     "obj" : "kafka.network:type=RequestMetrics,name=TotalTimeMs,request=OffsetFetch", 
     "attr" : [ "Count" ], 
     "outputWriters" : [ { 
     "@class" : "com.googlecode.jmxtrans.model.output.GraphiteWriter", 
     "settings" : { 
      "port" : 2003, 
      "host" : "localhost" 
     } 
     } ] 
    }, { 
     "obj" : "kafka.network:type=RequestMetrics,name=TotalTimeMs,request=Offsets", 
     "attr" : [ "Count" ], 
     "outputWriters" : [ { 
     "@class" : "com.googlecode.jmxtrans.model.output.GraphiteWriter", 
     "settings" : { 
      "port" : 2003, 
      "host" : "localhost" 
     } 
     } ] 
    } 
    ], 
"numQueryThreads" : 2 
    } ] 
} 

jmxtrans的日誌:

15:52:11.564 [ServerScheduler_Worker-10] DEBUG org.quartz.core.JobRunShell - Calling execute on job ServerJob.localhost:9393-1443714611563-0428747962 
15:52:11.564 [ServerScheduler_Worker-10] DEBUG c.googlecode.jmxtrans.jobs.ServerJob - +++++ Started server job: Server [host=localhost, port=9393, url=null, cronExpression=null, numQueryThreads=2] 
15:52:11.569 [ServerScheduler_Worker-10] DEBUG com.googlecode.jmxtrans.jmx.JmxUtils - ----- Creating 4 query threads 
15:52:11.638 [pool-60-thread-2] DEBUG c.g.jmxtrans.jmx.JmxQueryProcessor - Executing queryName [kafka.network:name=RequestQueueTimeMs,request=FetchConsumer,type=RequestMetrics] from query [Query [obj=kafka.network:type=RequestMetrics,name=RequestQueueTimeMs,request=FetchConsumer, useObjDomainAsKey:false, resultAlias=null, attr=[Count]]] 
15:52:11.638 [pool-60-thread-2] DEBUG c.g.jmxtrans.jmx.JmxQueryProcessor - Finished running outputWriters for query: Query [obj=kafka.network:type=RequestMetrics,name=RequestQueueTimeMs,request=FetchConsumer, useObjDomainAsKey:false, resultAlias=null, attr=[Count]] 
15:52:11.640 [pool-60-thread-2] DEBUG c.g.jmxtrans.jmx.JmxQueryProcessor - Executing queryName [kafka.network:name=TotalTimeMs,request=OffsetFetch,type=RequestMetrics] from query [Query [obj=kafka.network:type=RequestMetrics,name=TotalTimeMs,request=OffsetFetch, useObjDomainAsKey:false, resultAlias=null, attr=[Count]]] 
15:52:11.640 [pool-60-thread-2] DEBUG c.g.jmxtrans.jmx.JmxQueryProcessor - Finished running outputWriters for query: Query [obj=kafka.network:type=RequestMetrics,name=TotalTimeMs,request=OffsetFetch, useObjDomainAsKey:false, resultAlias=null, attr=[Count]] 
15:52:11.641 [pool-60-thread-2] DEBUG c.g.jmxtrans.jmx.JmxQueryProcessor - Executing queryName [kafka.network:name=TotalTimeMs,request=Offsets,type=RequestMetrics] from query [Query [obj=kafka.network:type=RequestMetrics,name=TotalTimeMs,request=Offsets, useObjDomainAsKey:false, resultAlias=null, attr=[Count]]] 
15:52:11.641 [pool-60-thread-2] DEBUG c.g.jmxtrans.jmx.JmxQueryProcessor - Finished running outputWriters for query: Query [obj=kafka.network:type=RequestMetrics,name=TotalTimeMs,request=Offsets, useObjDomainAsKey:false, resultAlias=null, attr=[Count]] 
15:52:11.642 [pool-60-thread-1] DEBUG c.g.jmxtrans.jmx.JmxQueryProcessor - Executing queryName [kafka.network:name=LocalTimeMs,request=ConsumerMetadata,type=RequestMetrics] from query [Query [obj=kafka.network:type=RequestMetrics,name=LocalTimeMs,request=ConsumerMetadata, useObjDomainAsKey:false, resultAlias=null, attr=[Count]]] 
15:52:11.642 [pool-60-thread-1] DEBUG c.g.jmxtrans.jmx.JmxQueryProcessor - Finished running outputWriters for query: Query [obj=kafka.network:type=RequestMetrics,name=LocalTimeMs,request=ConsumerMetadata, useObjDomainAsKey:false, resultAlias=null, attr=[Count]] 
15:52:11.643 [ServerScheduler_Worker-10] DEBUG c.googlecode.jmxtrans.jobs.ServerJob - +++++ Finished server job: Server [host=localhost, port=9393, url=null, cronExpression=null, numQueryThreads=2] 

對於我來說,它看起來像jmxtrans可以連接沒有問題,並試圖獲取數據,但沒有得到任何數據完全來自卡夫卡指標。卡夫卡的

JMX選項:

-Djava.net.preferIPv4Stack=true -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=9393 -Djava.rmi.server.hostname=example.com -Dcom.sun.management.jmxremote.rmi.port=9011 

任何想法,爲什麼卡夫卡指標不適?

謝謝。

+0

有幾件事情可以嘗試:(a)使用帶引號的字符串(請參閱http://stackoverflow.com/questions/31344222/how-to-monitor-kafka-broker-using-jmxtrans),(b)正確顯示kafka中的JMX屬性,因爲有額外的env變量,具體取決於你如何連接到kafka中的JMX(請參閱:http: //stackoverflow.com/questions/31167823/kafka-monitoring-using-jmx-when-running-kafka-in-docker-in-boot2docker) –

回答

0

某些Kafka版本引用了JMX元素(可以在jconsole中看到引用的屬性)。對於未來的Kafka版本,這已經有所改變。退房這個職位(How to monitor Kafka broker using jmxtrans?)的細節,但如果你用引號的字符串它應該工作(見下文:)

"obj": "\"kafka.server\":type=\"BrokerTopicMetrics\",name \"AllTopicsLogBytesAppendedPerSec\"", "attr": [ "Count" ] 

注意例如,該「目標文件」值需要額外的報價。當我嘗試這樣做時,JMXTRANS在將正確的(帶引號)的值放入obj字符串後提供了有效輸出...