Разные политики хранения (RP) ведут себя как таблицы при выполнении запросов с Flux? - PullRequest
2 голосов
/ 10 февраля 2020

Я хотел бы запросить одно и то же измерение для разных политик хранения в одном графике. В идеале я хотел бы сделать это в самом запросе, так как я работаю с Grafana.

Согласно документации Flux, «Flux структурирует все данные в таблицах. Когда данные передаются из источников данных, Flux форматирует его как аннотированные значения, разделенные запятыми (CSV), представляющие таблицы. Затем функции обрабатывают или обрабатывают их и выводят новые таблицы. "

Будут ли разные политики хранения вести себя как разные таблицы в этом контексте? Смогу ли я использовать функцию union (), чтобы получить то, что я хочу? Любая идея будет принята с благодарностью.

1 Ответ

0 голосов
/ 26 февраля 2020

Таким образом, для чего-то подобного вы просто должны использовать два разных оператора from и использовать union или join для их объединения. Проверьте документы на union для примера запроса: https://v2.docs.influxdata.com/v2.0/reference/flux/stdlib/built-in/transformations/union/#examples

left = from(bucket: "database1/policy1")
  |> range(start: 2018-05-22T19:53:00Z, stop: 2018-05-22T19:53:50Z)
  |> filter(fn: (r) =>
    r._field == "usage_guest" or
    r._field == "usage_guest_nice"
  )
  |> drop(columns: ["_start", "_stop"])

right = from(bucket: "database1/policy2")
  |> range(start: 2018-05-22T19:53:50Z, stop: 2018-05-22T19:54:20Z)
  |> filter(fn: (r) =>
    r._field == "usage_guest" or
    r._field == "usage_idle"
  )
  |> drop(columns: ["_start", "_stop"])

union(tables: [left, right])

В этом случае bucket, используемый в функции from, будет в форма database_name/rp. См. Документы по соглашениям об именах сегментов в 1.x: https://docs.influxdata.com/flux/v0.50/introduction/getting-started/#buckets

...