LoginSignup
3
0

More than 5 years have passed since last update.

pushgatewayのgrouping keyとlabelは別物

Posted at

2回ハマったのでメモる

pushgatewayにメトリクスを作る時

$ echo 'testmetric 1' | curl --data-binary @- localhost:9091/metrics/job/testjob

とすると

testmetric{instance="",job="testjob"} 1

このようなメトリクスが得られ、
labelkey="labelvalue"のlabelを付けたい時は

$ echo 'testmetric 1' | curl --data-binary @- localhost:9091/metrics/job/testjob/labelkey/labelvalue

とするか、

$ echo 'testmetric{labelkey="labelvalue"} 1' | curl --data-binary @- localhost:9091/metrics/job/testjob

とすれば

testmetric{instance="",job="testjob",labelkey="labelvalue"} 1

この形のメトリクスが得られます
そしてこの両者の違いは

前者はjob=testjob,labelkey=labelvalueでメトリクスがグルーピングされており、
後者はjob=testjobでグルーピングされている状態になります

この違いはどういう違いかというと、

$ echo 'testmetric 1' | curl --data-binary @- localhost:9091/metrics/job/testjob/labelkey/labelvalue1
$ echo 'testmetric 1' | curl --data-binary @- localhost:9091/metrics/job/testjob/labelkey/labelvalue2

とした時に、labelkey=labelvalue1labelkey=labelvalue2は別のグループなので両方残ります

$ echo 'testmetric{labelkey="labelvalue1"} 1' | curl --data-binary @- localhost:9091/metrics/job/testjob
$ echo 'testmetric{labelkey="labelvalue2"} 1' | curl --data-binary @- localhost:9091/metrics/job/testjob

とすると、グループは両方ともjob=testjobなので、labelvalue1が上書きされてlabelvalue2のメトリクスだけが残ります

また、メトリクスを削除する場合、

$ curl -XDELETE localhost:9091/metrics/job/testjob

このコマンドで削除されるのはjob=testjobのグループのメトリクスだけで、job=testjob,labelkey=labelvalueのメトリクスは削除されません。
job=testjob,labelkey=labelvalueのメトリクスを削除したいなら

$ curl -XDELETE localhost:9091/metrics/job/testjob/labelkey/labelvalue

とする必要があります。
値が変わる時に上書きしたいか別のメトリクスにしたいかで使い分けることができるんですね。

3度目はないぞ

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0