我正在使用Promethues监视我的Kubernetes集群。我的所有微服务都可以使用HA代理访问。
我的基本Promethues配置是:
- job_name: 'kubernetes_pods'
tls_config:
insecure_skip_verify: true
kubernetes_sd_configs:
- api_server: http://172.29.219.102:8080
role: pod
relabel_configs:
- source_labels: [__meta_kubernetes_pod_host_ip]
target_label: __address__
regex: (.*)
replacement: 172.29.219.110:8080
其中
172.29.219.110:8080
是我的独立HA代理的IP和端口。我正在尝试使用Prometheus监视的端点是
/auth/health
。当我从任何地方执行简单的curl命令时,都会看到:
# curl http://172.29.219.110:8080/auth/health
{"status":"UP"}
但是,当Prometheus尝试执行此操作时,日志显示:
level=warn ts=2017-12-15T16:40:48.301741927Z caller=scrape.go:673 component="target manager" scrape_pool=kubernetes_pods target=http://172.29.219.110:8080/auth/health msg="append failed" err="no token found"
该端点是公开暴露的,因此不需要身份验证。那么,为什么Promethues说:
最佳答案
{"status":"UP"}
Prometheus要求数据采用其格式,并且不能处理其他任意数据。因此,您得到的错误是解析错误。
您应该使用client library来检测代码,并以Prometheus文本格式公开数据。
关于kubernetes - 从Prometheus抓取时的“no token found”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47836730/