web-dev-qa-db-ja.com

ワイルドカードを合計せずに複数のメトリックを合計しますか?

私は次の指標を持っています:

  • _folsomite.<Host>.cache.hit1_
  • _folsomite.<Host>.cache.hit2_
  • _folsomite.<Host>.cache.miss1_
  • _folsomite.<Host>.cache.miss2_
  • _folsomite.<Host>.cache.miss3_

(私が使用しているキャッシングライブラリには、ファーストチャンスとセカンドチャンスの2種類のヒットと、3種類のミスがあります)

そして、_(hit1 + hit2) / (miss1 + miss2 + miss3)_を計算したいと思います。 _(hit1 + hit2)_を計算することから始めようと思っていましたが、sumSeriessumSeries(folsomite.*.cache.hit*)として使用すると、_<Host>_の値も合計されます。

他のワイルドカードを合計せずに、いくつかのワイルドカードを使用して複数のメトリックを合計するにはどうすればよいですか?または、ワイルドカードを保持しながら、具体的に2つ(またはそれ以上のメトリック)を追加するにはどうすればよいですか?

そして、それを行った後、1つの(合計された)結果を別の結果で割ることはできますか?

編集:私は実際にグラフをレンダリングするためにgrafanaを使用しています。それは違いを生みますか?

10
Roger Lipscombe

私はこれを解決していませんが、情報が役立つ可能性があることに注意してください。グラファイトには以下のデータがあると仮定しましょう

folsomite.A.cache.hit1
folsomite.B.cache.hit1
folsomite.A.cache.hit2
folsomite.C.cache.hit1
folsomite.B.cache.hit2
folsomite.A.cache.miss1
folsomite.B.cache.miss1
folsomite.A.cache.miss2
folsomite.A.cache.miss3
folsomite.C.cache.miss2
folsomite.B.cache.miss2

1つのワイルドカードでグループ化するには、 groupByNode を使用する必要があります。

groupByNode(folsomite.*.cache.hit*, 1, 'sumSeries')

合計ヒット数を含むメトリックABCを出力します。 groupByNodeが失敗すると、同じ名前のメトリックが返されるため、何らかの方法で区別する必要があります。 aliasSubを使用します。だから今私たちは持っています:

aliasSub(groupByNode(folsomite.*.cache.hit*, 1, 'sumSeries'), '(.*)', '\1.hit')
aliasSub(groupByNode(folsomite.*.cache.miss*, 1, 'sumSeries'), '(.*)', '\1.miss')

取得するメトリックはA.hitB.hitC.hitA.missB.missC.miss

次に、 reduceSeries を試すことができます(これは私には機能しません、何かが足りません:))。作業するシリーズの期待リストを減らすので、 group または mapSeries で組み合わせる必要があります。

group(
  aliasSub(groupByNode(folsomite.*.cache.hit*, 1, 'sumSeries'), '(.*)', '\1.hit'), 
  aliasSub(groupByNode(folsomite.*.cache.miss*, 1, 'sumSeries'), '(.*)', '\1.miss')
)

ミスとヒットのシリーズをすべて出力します。今減らす

 reduceSeries(
   group(
     aliasSub(groupByNode(folsomite.*.cache.hit*, 1, 'sumSeries'), '(.*)', '\1.hit'),
     aliasSub(groupByNode(folsomite.*.cache.miss*, 1, 'sumSeries'), '(.*)', '\1.miss')
   ), 'divideSeries', 1, 'hit', miss')

それで全部です。後で別のアプローチを試すかもしれませんが...少なくともいくつかのヒントが得られることを願っています。

Grafanaには変数を使用してテンプレートを設定する機能があるため、それを使用することは可能ですが、この機能を掘り下げる必要があります。

12
kwarunek