하고 싶은 것 : job name이 주어지면 해당 메트릭을 싹 다 지우고 싶다.
curl -X DELETE http://10.0.0.124:31059/metrics/job/default
이런 식으로 job이 default 면 다 지워지길 원했다
하나도 지워지지 않는다.
Element Value
crawler_status{consumer="consumer-autoan",job="default",topic="value-auto-an-hourly"} 1
crawler_status{consumer="consumer-autoan-writer",job="default",topic="value-auto-an-hourly"} 1
crawler_status{consumer="consumer-autoan-writer-influx",job="default",topic="value-auto-an-hourly"} 1
생긴게 이렇기 때문에.
post 할 때
job/default/topic/target-auto-an-hourly/consumer/consumer-autoan
이런 식으로 url을 지정하면 delete 할 때에도 저렇게 해야 한다.
그렇다고 post를...
ubuntu@ip-10-0-0-65:~/prometheus$ echo "some_metric{tag=\"a\"} 3.14" | curl --data-binary @- http://10.0.0.124:31059/metrics/job/some_job
ubuntu@ip-10-0-0-65:~/prometheus$ echo "some_metric{tag=\"b\"} 2" | curl --data-binary @- http://10.0.0.124:31059/metrics/job/some_job
ubuntu@ip-10-0-0-65:~/prometheus$ echo "some_metric{tag=\"c\"} 3" | curl --data-binary @- http://10.0.0.124:31059/metrics/job/some_job
이런 식으로 하면
Element Value
some_metric{job="some_job",tag="c"} 3
가지고 있는 metric의 group이 업데이트 되어버린다.
ubuntu@ip-10-0-0-65:~/prometheus$ echo "some_metric 4" | curl --data-binary @- http://10.0.0.124:31059/metrics/job/some_job/tag/2
ubuntu@ip-10-0-0-65:~/prometheus$ echo "some_metric 4" | curl --data-binary @- http://10.0.0.124:31059/metrics/job/some_job/tag/2
이렇게 같은 형식으로 두번 요청하면 문제가 없는데
ubuntu@ip-10-0-0-65:~/prometheus$ echo "some_metric{tag=\"1\"} 3" | curl --data-binary @- http://10.0.0.124:31059/metrics/job/some_job
ubuntu@ip-10-0-0-65:~/prometheus$ echo "some_metric 5" | curl --data-binary @- http://10.0.0.124:31059/metrics/job/some_job/tag/1
pushed metrics are invalid or inconsistent with existing metrics: collected metric "some_metric" { label:<name:"instance" value:"" > label:<name:"job" value:"some_job" > label:<name:"tag" value:"1" > untyped:<value:5 > } was collected before with the same name and label values
서로 다른 양식으로 요청하면 뒤에께 죽는다.
curl -X DELETE http://10.0.0.124:31059/metrics/job/some_job
를 하면, url에 tag를 명시한 tag:2는 안 지워지고, tag를 명시하지 않은 tag:1은 delete로 지워진다.
역도 마찬가지
ubuntu@ip-10-0-0-65:~/prometheus$ echo "some_metric{tag=\"1\"} 4" | curl --data-binary @- http://10.0.0.124:31059/metrics/job/some_job
ubuntu@ip-10-0-0-65:~/prometheus$ curl -X DELETE http://10.0.0.124.39:31059/metrics/job/some_job/tag/1
Element Value
some_metric{job="some_job",tag="1"} 4
some_metric{job="some_job",tag="2"} 4
시간이 지나도 지워지지 않는다.
PUT도 쓰기에 따라 DELETE와 같다.
echo "some_metric{tag=\"1\"} 3" | curl --data-binary @- http://3.38.176.39:31059/metrics/job/some_job
echo "some_metric 5" | curl --data-binary @- http://3.38.176.39:31059/metrics/job/some_job/tag/2
curl -X PUT http://3.38.176.39:31059/metrics/job/some_job
curl -X PUT http://3.38.176.39:31059/metrics/job/some_job/tag/1
put은 본문에 쓰지 않는 것들을 죄다 지운댔는데 어차피 POST도 덮어써버리는걸 생각하면 아닌가.