JSON-скрипт для ввода данных из jmxtrans в InfluxDB
Я пытаюсь использовать jmxtrans для сбора метрик JVM, и мне нужно будет ввести данные в InfluxDB. Хотя мне удалось собрать данные, я не уверен в том, какие теги и синтаксис необходимы для ввода данных в БД.
Я пробовал обучающие программы JSON, а также метод записи в базу данных притока: https://docs.influxdata.com/influxdb/v0.8/api/reading_and_writing_data/ но не смог найти конкретные ответы, отсюда и пост.
Нужна помощь с изменением файлов JSON для ввода данных в InfluxDB. Пожалуйста, порекомендуйте. Пример кода для получения использования hemememory другого сервера:
{
"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
}
} ]
} ]
} ]
}
3 ответа
Вот пример именно этой проблемы в вики jmxtrans - обратите внимание, что в этом примере используется конкретный InfluxDbWriter, а не GraphiteWriter
Я заметил, что вы используете 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,
"%"
]
]
}
"имя" -> имя временного ряда
"столбцы" -> столбцы во временном ряду "имя"
"точки" -> точки данных, соответствующие столбцам, упомянутым выше
Источник: https://github.com/icclab/cyclops-udr/wiki/OpenStack
Я работаю над аналогичным решением, в котором я использую jmxtrans для опроса JVM, работающих на каждом хосте. JMXTrans отправляет результаты в "расширенной" форме statsD агенту Telegraf на этом хосте. Этот агент Telegraf отправляет метрики в InfluxDB. (В следующей версии Telegraf они будут поддерживать сбор данных от многих агентов Telegraf в один централизованный экземпляр). Это поддерживает спрос на прием InfluxDB как можно ниже.
Я написал новый писатель JmxTrans, который включен в последние сборки снимков. Пример того, что он посылает телеграфу:JVMMemory,jmxport=1234,attribute=NonHeapMemoryUsage,resultKey=committed:12345|c
Это использует преимущества тегов Telegraf/InfluxDB, а также поддерживает функции выборки и простоту StatsD.