spring-boot - INVALID 不是有效的开始令牌
问题描述
我的微服务(Kubernetes 中的 springboot+actuator)暴露了/metrics
端点。
从一个 pod 我可以使用一个简单的方法来检索指标curl svc:8080/metrics
但在 Prometheus 目标中,我收到此错误:INVALID is not a valid start token
我prometheus.yml
的如下:
global:
scrape_interval: 60s
scrape_timeout: 10s
evaluation_interval: 10s
alerting:
alertmanagers:
- static_configs:
- targets:
- alertmanager:9093
rule_files:
- "/etc/prometheus-rules/usage.rules"
- "/etc/prometheus-rules/availability.rules"
scrape_configs:
- job_name: 'prometheus'
static_configs:
- targets:
- prometheus:9090
- job_name: 'kubernetes-apiservers'
kubernetes_sd_configs:
- role: endpoints
scheme: https
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
relabel_configs:
- source_labels: [__meta_kubernetes_namespace, __meta_kubernetes_service_name, __meta_kubernetes_endpoint_port_name]
action: keep
regex: default;kubernetes;https
- job_name: 'kubernetes-nodes'
kubernetes_sd_configs:
- role: node
relabel_configs:
- action: labelmap
regex: __meta_kubernetes_node_label_(.+)
- source_labels: [__address__]
regex: '(.*):10250'
replacement: '${1}:10255'
target_label: __address__
- job_name: 'kubernetes-endpoints'
kubernetes_sd_configs:
- role: endpoints
relabel_configs:
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scrape]
action: keep
regex: true
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_scheme]
action: replace
target_label: __scheme__
regex: (https?)
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_path]
action: replace
target_label: __metrics_path__
regex: (.+)
- source_labels: [__address__, __meta_kubernetes_service_annotation_prometheus_io_port]
action: replace
target_label: __address__
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: $1:$2
- action: labelmap
regex: __meta_kubernetes_service_label_(.+)
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_service_name]
action: replace
target_label: kubernetes_name
- job_name: 'kubernetes-pods'
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
action: keep
regex: true
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
action: replace
target_label: __metrics_path__
regex: (.+)
- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
action: replace
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: ${1}:${2}
target_label: __address__
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_pod_name]
action: replace
target_label: kubernetes_pod_name
- source_labels: [__meta_kubernetes_pod_container_port_number]
action: keep
regex: 9\d{3}
- job_name: 'kubernetes-services'
kubernetes_sd_configs:
- role: service
metrics_path: /health
params:
module: [http_2xx]
relabel_configs:
- source_labels: [__meta_kubernetes_service_annotation_prometheus_io_probe]
action: keep
regex: true
- source_labels: [__address__]
target_label: __param_target
- target_label: __address__
replacement: blackbox
- source_labels: [__param_target]
target_label: instance
- action: labelmap
regex: __meta_kubernetes_service_label_(.+)
- source_labels: [__meta_kubernetes_namespace]
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_service_name]
target_label: kubernetes_name
请问有什么建议吗?
解决方案
当然,你可以手动到达<svc>:<port>/metrics
,但你从来没有告诉普罗米修斯刮掉它;-)
在此处查看示例,仔细查看第 86 行和第 129 行: https ://github.com/prometheus/prometheus/blob/master/documentation/examples/prometheus-kubernetes.yml
如果您在使用 Prometheus 时遇到其他问题,或者要快速解决当前问题,请尝试质疑您最初在 Kubernetes 上设置 Prometheus 的方法(因为您的 YAML 可能只是一种症状),然后从 Helm 重新安装图表: https ://github.com/helm/charts/tree/master/stable/prometheus
推荐阅读
- java - 如何运行 maven-antrun-plugin 目标?
- node.js - 角通用找不到名称“期望”
- actions-on-google - 谷歌操作图标:它是否从缓存中提供服务
- postgresql - 错误:连接数据库时无法在只读事务中执行 SELECT
- github - 如何将 Binder (mybinder.org) 与私有 Github 存储库一起使用?
- flutter - Flutter - 使用空容器填充?
- c - 为什么这段代码会给出警告:格式 '%s' 需要类型 'char *' 但参数 2 的类型是 'char(*)[11]'?
- php - “发现的包裹:....”是什么意思
- php - Â - 这些奇怪字符的原因
- ruby - 使用 OpenSSL-Gem 以 ruby 语言转换 openssl 命令