首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Prometheus-operator上重新标记抓取作业?

如何在Prometheus-operator上重新标记抓取作业?
EN

Stack Overflow用户
提问于 2019-08-09 20:39:42
回答 2查看 8.9K关注 0票数 3

我第一次尝试使用普罗米修斯运算符,仍然在努力解决管理普罗米修斯的差异。

部署非常简单,编辑规则也是如此,但是当我尝试使用Prometheus-operator时使用static_configs重新标记导出器时,我找不到方法。

我过去所做的是定制prometheus.yml并添加static_configs,以包含每个导出器作业名称的标签。

我知道在Prometheus- operator的引擎盖下,我们有与通常相同的设置,但我不确定如何使用operator从static_config配置中获得相同的结果。

据我所知,我现在必须在与我的导出器相关的服务监视器上设置重新标记,但是我尝试的所有配置都没有结果:

已尝试使用问题1166中描述的metricRelabelings,以及issue 1086中描述的StaticConfigs,但没有成功。

例如,我过去常常为kubernetes-cadvisor exporter在static_config上设置标签,以便我的自定义标签显示在我的导出器在摄取时间收集的所有指标上:

代码语言:javascript
复制
scrape_configs:
- job_name: prometheus
static_configs:
- targets: ['localhost:9090']
labels:
kubernetes_namespace: kube-system
cluster_name: mycluster01

并将relabel_configs添加到我的每个导出器作业的:

代码语言:javascript
复制
- 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

这是一个在Prometheus-operator上使用metricRelabelings实现相同操作的示例,我仍然不能使用它:

代码语言:javascript
复制
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

我希望实现的是在我的导出器上创建一个静态标签,以便所有指标都带有我在抓取时定义的自定义标签,而不是必须手动为我的集群中的所有部署定义自定义标签。

提前感谢您的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-08-15 20:17:04

似乎我错过了操作员存储库中的说明....在仔细观察之后,我发现了一些非常好的例子……似乎我的问题的答案是创建额外的抓取配置作为秘密,类似于以下链接中的示例:additional-scrape-configs.yaml

还可以在以下位置找到一些其他步骤:additional-scrape-config

票数 2
EN

Stack Overflow用户

发布于 2019-08-12 21:23:29

让我们在示例中看看它是如何工作的。首先,部署示例应用程序的四个实例,该实例侦听并公开端口8080上的指标。

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: example-application
spec:
  replicas: 4
  template:
    metadata:
      labels:
        app: example-application
    spec:
      containers:
      - name: example-application
        image: fabxc/instrumented_app
        ports:
        - name: backend
          containerPort: 8080

ServiceMonitor有一个标签选择器来选择服务及其底层终结点对象。示例应用程序的Service对象通过具有example-application值的应用程序标签选择Pod。Service对象还指定在其上公开指标的端口。

代码语言:javascript
复制
kind: Service
apiVersion: v1
metadata:
  name: example-application
  labels:
    app: example-application
spec:
  selector:
    app: example-application
  ports:
  - name: backend
    port: 8080

此服务对象由ServiceMonitor发现,它以相同的方式进行选择。应用程序标签必须具有值example-application。

代码语言:javascript
复制
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: example-application
  labels:
    team: backend-team
spec:
  selector:
    matchLabels:
      app: example-application
  endpoints:
  - port: backend

Prometheus对象定义serviceMonitorSelector以指定应该包含哪个ServiceMonitors。在标签上面指定了team: backend-team,因此这是普罗米修斯对象选择的依据。

代码语言:javascript
复制
apiVersion: monitoring.coreos.com/v1
kind: Prometheus
metadata:
  name: prometheus
spec:
  serviceMonitorSelector:
    matchLabels:
      team: backend-team
  resources:
    requests:
      memory: 400Mi

这使后端团队能够创建新的ServiceMonitors和服务,从而允许普罗米修斯进行动态重新配置。

您还可以在this site上阅读有关Prometheus Operator中ServiceMonitor的更多信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57430259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档