我尝试使用jmxtrans收集JVM指标,并需要将数据输入InfluxDB。虽然我能够收集数据,但我不确定将数据输入数据库所需的标记和语法。
我已尝试过JSON教程以及写入涌入数据库的方法: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
}
} ]
} ]
} ]
}
答案 0 :(得分:0)
jmxtrans Wiki上有一个确切问题的例子 - 注意这个例子使用特定的InfluxDbWriter而不是GraphiteWriter
答案 1 :(得分:0)
我注意到您正在使用现在已弃用的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” - &gt;时间序列'名称
“列” - &gt;时间序列中的列“名称”
“积分” - &gt;数据点cpr对应上面提到的列
答案 2 :(得分:0)
我正在开发一个类似的解决方案,我正在使用jmxtrans来轮询在每个主机上运行的JVM。 JMXTrans将“增强”statsD表单中的结果发送到该主机上的Telegraf代理。 Telegraf代理将指标发送到InfluxDB。 (在下一个Telegraf版本中,它们将支持从许多电报代理到一个集中实例的收集)。这样可以尽可能降低对InfluxDB摄入的需求。
我写了一个新的JmxTrans编写器,它包含在最新的快照构建中。它发送给telegraf的一个例子是:
0
这利用了Telegraf / InfluxDB的标记功能,并支持StatsD的采样功能和简单性