我正在使用普罗米修斯联合会从多个k8s集群中抓取指标。它可以正常工作,我想在grafana上创建一些仪表板,我想按承租人(集群)过滤仪表板。我正在尝试使用变量,但是我不理解的东西即使我没有指定内容kube_pod_container_status_restars_total
的特殊标签,它包含我在static_configs下指定的标签,但kube_node_spec_unschedulable
不是。
那么这种差异来自何处,我该怎么办?同时,设置仪表板以按多个群集名称提供仪表板筛选的最佳实践方法是什么?我应该使用重新标记吗?
kube_pod_container_status_restarts_total{app="kube-state-metrics",container="backup",....,tenant="022"}
kube_node_spec_unschedulable{app="kube-state-metrics",....kubernetes_pod_name="kube-state-metrics-7d54b595f-r6m9k",node="022-kube-master01",pod_template_hash="7d54b595f"
Prometheus服务器
prometheus.yml:
rule_files:
- /etc/config/rules
- /etc/config/alerts
scrape_configs:
- job_name: prometheus
static_configs:
- targets:
- localhost:9090
中央集群
scrape_configs:
- job_name: federation_012
scrape_interval: 5m
scrape_timeout: 1m
honor_labels: true
honor_timestamps: true
metrics_path: /prometheus/federate
params:
'match[]':
- '{job!=""}'
scheme: https
static_configs:
- targets:
- host
labels:
tenant: 012
tls_config:
insecure_skip_verify: true
- job_name: federation_022
scrape_interval: 5m
scrape_timeout: 1m
honor_labels: true
honor_timestamps: true
metrics_path: /prometheus/federate
params:
'match[]':
- '{job!=""}'
scheme: https
static_configs:
- targets:
- host
labels:
tenant: 022
tls_config:
insecure_skip_verify: true
答案 0 :(得分:1)
中央Prometheus服务器
scrape_configs:
- job_name: federate
scrape_interval: 5m
scrape_timeout: 1m
honor_labels: true
honor_timestamps: true
metrics_path: /prometheus/federate
params:
'match[]':
- '{job!=""}'
scheme: https
static_configs:
- targets:
- source_host_012
- source_host_022
tls_config:
insecure_skip_verify: true
普罗米修斯之源(租户012)
prometheus.yml:
rule_files:
- /etc/config/rules
- /etc/config/alerts
scrape_configs:
- job_name: tenant_012
static_configs:
- targets:
- localhost:9090
labels:
tenant: 012
Prometheus来源(租户022)
prometheus.yml:
rule_files:
- /etc/config/rules
- /etc/config/alerts
scrape_configs:
- job_name: tenant_022
static_configs:
- targets:
- localhost:9090
labels:
tenant: 022
如果仍然没有获得所需的标签,请尝试将relabel_configs
添加到您的federate
作业中,并尝试通过源作业名称来区分指标:
relabel_configs:
- source_labels: [job]
target_label: tenant
例如,或从__address__
(或任何其他带有__前缀的标签)中提取特殊信息。
relabel_configs:
- source_labels: [__address__]
target_label: tenant_host
PS:请记住,在目标重新标记完成后,将从__开头的标签从标签集中删除。
https://prometheus.io/docs/prometheus/latest/configuration/configuration/#relabel_config