我正在尝试使用jmxtrans来收集JVM指标,并且需要将数据输入到InfluxDB中。虽然我能够收集数据,但我不确定将数据输入数据库所需的标记和语法。
我已经尝试了JSON教程以及写入influx DB:https://docs.influxdata.com/influxdb/v0.8/api/reading_and_writing_data/的方法,但是找不到具体的答案,所以我写了这篇文章。
需要帮助修改json文件,以输入数据到InfluxDB。请给我建议。检索另一台服务器的堆内存使用情况的示例代码:
{
"servers" : [ {
"port" : "<PORT>",
"host" : "<IP>",
"queries" : [ {
"obj" : "java.lang:type=Memory",
"attr" : [ "HeapMemoryUsage", "NonHeapMemoryUsage" ],
"outputWriters" : [ {
"@class" : "com.googlecode.jmxtrans.model.output.GraphiteWriter",
"settings" : {
"templateFile" : "heapmemory-rrd-template.xml",
"outputFile" : "target/heap.rrd",
"binaryPath" : "/opt/local/bin",
"debug" : true,
"generate" : true
}
} ]
} ]
} ]
}发布于 2016-02-08 23:09:49
在jmxtrans Wiki上有一个关于这个问题的例子-注意这个例子使用的是特定的InfluxDbWriter而不是GraphiteWriter
发布于 2016-02-08 23:26:11
我注意到你使用的是v0.8,现在已经被弃用了。v0.9与v0.8不向后兼容。因此,我建议您尽可能选择最新的版本,因为这两个版本之间写入数据的结构不同。
如果你必须使用v0.8,那么你可以使用:
{
"name": "cpu_util",
"columns": [
"time",
"sequence_number",
"avg",
"unit"
],
"points": [
[
1421024460734,
124666640001,
74.31932,
"%"
],
[
1421024460734,
124666550001,
0.7899716,
"%"
]
]
}" name“-->时间序列的名称
" columns“-->时间序列"name”中的列
" points“-->对应于上述列的数据点
发布于 2016-10-31 05:21:17
我正在使用一个类似的解决方案,使用jmxtrans来轮询每个主机上运行的JVM。JMXTrans将结果以“增强型”statsD格式发送到该主机上的Telegraf代理。该Telegraf代理将指标发送到InfluxDB。(在下一个Telegraf版本中,它们将支持从多个telegraf代理收集到一个集中实例)。这使得对InfluxDB摄取的需求尽可能低。
我写了一个新的JmxTrans编写器,它包含在最新的快照构建中。它发送到telegraf的一个例子是:JVMMemory,jmxport=1234,attribute=NonHeapMemoryUsage,resultKey=committed:12345|c
这利用了Telegraf/InfluxDB的标记特性,并支持StatsD的采样特性和简单性
https://stackoverflow.com/questions/35172094
复制相似问题