3

メトリックを監視する必要があるシステムがあります。そのために、grafana + influxdb を使用します。現在使用している influxdb のバージョンは 0.9.x です。

いくつかの統計を計算できるようになりたいです。私の使用例は非常に単純です。

  1. いくつかの時系列ソースから選択クエリを作成したいと考えています。
  2. データをグループ化するために、select クエリ内で group by ステートメントを作成したいと考えています。
  3. 最後に、各グループ内の平均値を見つけたいと思います。

私のクエリは次のとおりです。

SELECT mean(value) FROM /namespaces_.*.amount/ where time < "2015-10-21T14:16:18Z" group by time(1m);

些細なことのように見えますが、少しトリッキーです。私はこのようなものを得る:

name: namespaces_1.amount
------------------------------------------------------------
time            mean
1970-01-01T00:00:00Z    0.8877630461283463

name: namespaces_2.amount
------------------------------------------------------------
time            mean
1970-01-01T00:00:00Z    0.6982870635693408

influxdb のドキュメントによると、複数のソースからデータを取得できます。つまり、FROM キーワードの後に​​複数のデータ系列を書き込むことができます。それらをマージして、マージされたシリーズで処理を行いたいのですが。influxdb 0.8.x にはmerge、データ ソースを混在させる機能がありました。ただし、influxdb 0.9.x では、マージ操作も結合操作もありません。

参照: https://influxdb.com/docs/v0.9/concepts/08_vs_09.html

InfluxDB 0.9 では、MERGE 操作も JOIN 操作もサポートされていません。MERGE 操作は不要になりました。WHERE 句のタグで明示的に除外されていない限り、測定内のすべてのシリーズはクエリ時に自動的にマージされます。

だから、あなたが書くとき

SELECT mean(value) FROM merge(/namespaces_.*.amount/) where time < "2015-10-21T14:16:18Z" group by time(1m);

空の結果が得られます...

したがって、私の質問は次のとおりです。複数の時系列ソースからデータを選択し、それらをマージし、いくつかの基準でグループ化し、 influxdb 0.9.x のツールを使用して各グループに集計関数を適用する方法は何ですか?

4

1 に答える 1

4

influxdb 0.9.x のツールを使用して、複数の時系列ソースからデータを選択し、それらをマージし、いくつかの基準でグループ化し、各グループに集計関数を適用する方法は何ですか?

私がメーリングリストで回答したように、スキーマを正しく構築する必要があります。

InfluxDB 0.9 では、特定の測定の下にあるすべてのシリーズがデフォルトでマージされ、WHERE句のタグを使用してフィルタリングされます。

測定値が異なるシリーズを 1 つの結果にマージすることはできません。

それぞれ 1 つの系列を持つ多くの測定値があります。それぞれが多くのシリーズを持ついくつかの測定値を持つ必要があります。0.8 対 0.9のドキュメントを参照してください。

于 2015-10-22T18:46:56.880 に答える