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.

Другие вопросы по тегам