我使用的是来自Grafana的Prometheus数据源,有时我会得到200 OK,有时会得到405在查看图形或插入新图形时不允许使用方法。
奇怪的是,它有时只出现在随机图形中,有时只出现在单个仪表板中的某些图形上。
数据源设置为通过后端代理请求。
Grafana和Prometheus都在Kubernetes中作为Google云中的StatefulSets运行。
我正在通过SSH隧道访问localhost:3000
上的Grafana,而该隧道通向Kubernetes中的pod,而Grafana正在访问http://prometheus:9090/
上的Prometheus。
我尝试在数据源设置中将method
从GET更改为POST,但随后每个请求都得到405。
http://localhost:3000/api/datasources/proxy/1/api/v1/query_range?query=kafka_topic_highwater{topic="test"}&start=1541499015&end=1541499930&step=15
请求中的原始标头是
Host: localhost:3000
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0
Accept: application/json, text/plain, */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://localhost:3000/d/tDB6XEaiz/kafka-realtime-timeseries?orgId=1
X-Grafana-Org-Id: 1
DNT: 1
Connection: keep-alive
Cookie: grafana_user=admin; grafana_remember=asdf8a620; grafana_sess=<secret>
响应为:
HTTP/1.1 405 Method Not Allowed
Cache-Control: no-cache
Content-Length: 19
Content-Type: text/plain; charset=utf-8
Date: Tue, 06 Nov 2018 10:25:22 GMT
Expires: -1
Pragma: no-cache
X-Content-Type-Options: nosniff
任何想法可能是什么原因造成的?
答案 0 :(得分:1)
问题是我有两个Prometheus实例在同一个集群中运行,并且具有相同的服务名称,因此请求在它们之间分布...其中之一回复405,因为它被设置为直接将指标转发到StackDriver ..