web-dev-qa-db-ja.com

GrafanaでInfluxDBから合計2つのシリーズのデータ​​を取得する

この時点で私は困惑しています。私はInfluxとGrafanaの奥深くで1〜3日過ごし、自分のニーズに不可欠なグラフをプロットしました。ただし、最後の1つでは、2つのメトリック(列の値で2つの増分カウント)を合計する必要があります。それらをnotifications.oneとnotifications.twoと呼びましょう。私がそれらを表示したいグラフでは、2つの合計ではなく1つのグラフ線として機能し、2つの別々のグラフではなく(notifications.one + notifications.two)を表示します。

通常のSELECT sum(value) from 2を試してみましたが、そこからデータを取得できません(存在します!)。 Influxのドキュメントに記載されているmerge()もありますが、これも機能しません。

マージのドキュメントには、次のようなものが必要です。

SELECT mean(value) FROM /notifications.*/ WHERE ...

これもまた、平坦なゼロ線として戻ってきます。

私は問題を可能な限り伝えるのに十分な知識を持っているわけではないので、私の質問がある程度の重みを帯びることを願っています。

ありがとうございました。

InfluxDB 0.9では、複数の測定にわたってクエリ結果をマージする方法はありません。測定内では、すべてのシリーズがデフォルトでマージされますが、測定間でシリーズをマージすることはできません。詳細は https://influxdb.com/docs/v0.9/concepts/08_vs_09.html#joins を参照してください。

0.9のより良いスキーマは、2つの測定ではなく、_notifications.one_と_notifications.two_であり、_foo=one_と_foo=two_が1つの測定のタグとして1つの測定notificationsを持っています。次に、マージされた値のクエリはSELECT MEAN(value) FROM notificationsであり、シリーズごとのクエリはSELECT MEAN(value) FROM notifications GROUP BY fooです。

4
beckettsean

InfluxDB0.12を使用すると、次のように記述できます。

SELECT MEAN(usage_system) + MEAN(usage_user) + MEAN(usage_irq) AS cpu_total 
  FROM cpu
  WHERE time > now() - 10s 
  GROUP BY Host;

これらの機能はまだ実際には文書化されていませんが、サポートされている 数学演算子 を確認できます。

14
Tombart

質問のとおり、RDBMSのネストされたクエリのように、クエリをまとめることができると思います。これは、influxdbの連続クエリを使用して実現できます。このドキュメントはそれを明確に説明しています。基本的には、他のクエリからクエリを作成し、この新しく作成されたクエリを使用してシリーズをフェッチする必要があります。

https://docs.influxdata.com/influxdb/v1.1/query_language/continuous_queries/#substituting-for-nested-functions

1
Naveen Kumar