InfluxDB математика по измерениям - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть два измерения в моей InfluxDB, скажем, mem_used и mem_ available.
Я попытался выполнить запрос по этим измерениям и выполнить математику с

SELECT mean("mem_used_value") / mean("mem_available_value") FROM 
    (
     SELECT mean("value") AS "mem_used_value", 
            mean("value") AS "mem_available_value"
     FROM "dbname"."autogen"."mem_used",
          "dbname"."autogen"."mem_available"
     GROUP BY time(1m)
    )
GROUP BY time(1m)

Результат запросаочень странно, и мне было интересно, может ли InfluxDB выполнить математику по измерениям.

Я провел некоторое исследование по этой функции и обнаружил, что проблема 3552 Математика по измерениям все ещеоткрытие.Однако это было запрошено три года назад.

Есть ли какой-либо подход к этому?Любой совет приветствуется.

1 Ответ

0 голосов
/ 07 декабря 2018

В Influx QL нет JOIN.

Помните, пожалуйста: это НЕ реляционная БД, язык запросов может показаться знакомым, но это совсем другое.

Вот что вы можетеdo.

1) Самый умный и законный способ: правильно настроить измерение.

В настоящее время вы этого не сделали: не должно быть двух измерений, а одноКак (в линейный протокол запись)

memusage,host=yourhost,othertag=something,yetanotertag=anything mem_used=123,mem_available=321 yourtimestamp

2) Используйте Kapacitor , чтобы объединить ваши измерения в целом.

Там вы можете сделать математику прямо в Kapacitor или просто записать результат объединения в одно измерение, а затем выполнить агрегирование в обычном InfluxQL.

...