我第一次尝试使用 prometheus-operator,但仍然在努力解决通过它管理 Prometheus 的差异。
static_configs
部署非常简单,编辑规则也是如此,但是在使用 Prometheus-operator时尝试重新标记导出器时我找不到方法。
我过去所做的是自定义prometheus.yml
和添加static_configs
以包含每个出口商工作名称的标签。
我知道在 Prometheus-operator 的引擎盖下,我们具有与通常相同的设置,但我不确定如何static_config
使用操作符从配置中获得相同的结果。
据我所知,我现在必须在与我的出口商相关的服务监视器上设置重新标记,但是我尝试过的所有配置都没有结果:
尝试metricRelabelings
按照 issue 1166的描述进行,并StaticConfigs
按照issue 1086的描述进行尝试,但没有任何运气。
例如,这是我过去为kubernetes-cadvisor
exporter 设置标签的方法static_config
,以便我的自定义标签显示在我的 exporter 在摄取时间收集的所有指标上:
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
labels:
kubernetes_namespace: kube-system
cluster_name: mycluster01
并relabel_configs
在我的每个出口商工作中添加:
- job_name: 'kubernetes-cadvisor'
scheme: https
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
kubernetes_sd_configs:
- role: node
relabel_configs:
- target_label: cluster_name
replacement: mycluster01
- target_label: kubernetes_namespace
replacement: kube-system
- action: labelmap
regex: __meta_kubernetes_node_label_(.+)
- target_label: __address__
replacement: kubernetes.default.svc:443
- source_labels: [__meta_kubernetes_node_name]
regex: (.+)
target_label: __metrics_path__
replacement: /api/v1/nodes/${1}:10250/proxy/metrics
这是一个metricRelabelings
在 Prometheus-operator 上使用 , 实现相同功能的示例,它仍然不适合我:
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
labels:
k8s-app: node-exporter
name: node-exporter
namespace: monitoring
spec:
endpoints:
- bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
interval: 30s
port: https
scheme: https
tlsConfig:
insecureSkipVerify: true
jobLabel: k8s-app
selector:
matchLabels:
k8s-app: node-exporter
metricRelabelings:
sourceLabels: __meta_kubernetes_node_name
targetLabel: node
我期望实现的是在我的导出器上创建一个静态标签,以便所有指标都带有我在抓取时定义的自定义标签,而不必为我的集群中的所有部署手动定义自定义标签。
提前感谢您的帮助!