InfluxDB 0.8.8 に入るオブジェクト ストアからバイト カウンターを読み書きしました (0.9 の実用的な答えを喜んで受け取ります。アップグレードする前に別のストレージ エンジンを待っているだけです)。
データはサーバーごと、およびデバイスごとに収集されるため、たとえば、データ ポイントには次のものが含まれる場合があります。
timestamp: ...
server: abc1-oss1
disk: disk_id1
read_bytes: a counter
abc\d+ および -oss\d+ には ID の範囲があり、たとえば、abc14-oss5、abc1-oss1、abc8-oss12 はすべて有効なホスト名です。
私がやりたいことは、さまざまな abc\d+-* グループすべての概要を提供することです。ビューアは、たとえば「abc2」を選択し、abc2-* に一致するすべてのホスト上のすべてのディスクの合計の導関数を取得します (カウンタが常に増加するため)。
最初のデータ挿入で特定のホストの合計を入れることはできましたが、abc2-oss* にある 12 ほどのホストではそれを行うことができません。
grafana では、正規表現を使用してテンプレート変数を作成し、可能な abc\d+ 値を $Area という変数に抽出してから、次のようにします。
select sum(value) from "read_bytes" where $timeFilter and hostname =~ /$Area.*/ group by time($interval) order asc
これにより、領域ごとの読み取り合計が得られますが、Derivative(sum(value)) は InfluxDB では無効であるため、その上で Derivative() を呼び出すことはできません。
select derivative(sum(value)) from ...
「型 &{sum 10 [oxc21648f220] false} の値を評価できません」
これは、合計を計算するために InfluxDB で継続的なクエリが必要であることを意味し、その後、結果の測定値に Derivative() 呼び出しを配置することを意味すると想定しています。hostname =~ /abc1-.*/
、などのすべての値を合計するには、部分的な列の値に対してどのようにすればよいでしょうhostname =~ /abc2-.*/
か?