当前位置: 首页 > 知识库问答 >
问题:

如何在普罗米修斯中从Kube状态度量中提取度量值时获得一个豆荚的标签

幸乐湛
2023-03-14
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    APP: AppABC
    TEAM: TeamABC
...
scrape_configs:
  - job_name: 'pod monitoring'
    honor_labels: true
    kubernetes_sd_configs:
    - role: pod
    relabel_configs:
    - action: labelmap
      regex: __meta_kubernetes_pod_label_(.+)
...
kube_pod_container_status_restarts_total{
    app="kube-state-metrics",
    container="appabccontainer",
    job="pod monitoring",
    namespace="test-namespace",
    pod="appabc-766cbcb68d-29smr"
}

我有没有办法从kube-state-metrics中刮取这些指标,但在不覆盖它们的情况下将应用程序和团队标签放在一起?

 

编辑-我想通了

expr: kube_pod_status_phase{phase="Failed"} > 0
expr: kube_pod_status_phase{phase="Failed"} * on (pod,namespace) group_right kube_pod_labels > 0
- name: Pod_Failed
  rules:
  - alert: pod_failed
    expr: kube_pod_status_phase{phase="Failed"} * on (pod,namespace) group_right kube_pod_labels > 0
    labels:
      appname: '{{ $labels.label_APP }}' # This is what I wanted to capture
      teamname: '{{ $labels.label_TEAM }}' # This is what I wanted to capture
    annotations:
      summary: 'Pod: {{ $labels.pod }} is down'
      description: 'Pod: {{ $labels.pod }} is down in {{ $labels.namespace }} namespace.'

共有1个答案

沈自珍
2023-03-14

解决方案:使用PromQL,您可以进行分组。所以在我的普罗米修斯规则中,我改变了这个:

expr: kube_pod_status_phase{phase="Failed"} > 0

对此:

expr: kube_pod_status_phase{phase="Failed"} * on (pod,namespace) group_right kube_pod_labels > 0

因此,我的新警报规则如下所示:

- name: Pod_Failed
  rules:
  - alert: pod_failed
    expr: kube_pod_status_phase{phase="Failed"} * on (pod,namespace) group_right kube_pod_labels > 0
    labels:
      appname: '{{ $labels.label_APP }}' # This is what I wanted to capture
      teamname: '{{ $labels.label_TEAM }}' # This is what I wanted to capture
    annotations:
      summary: 'Pod: {{ $labels.pod }} is down'
      description: 'Pod: {{ $labels.pod }} is down in {{ $labels.namespace }} namespace.'
 类似资料:
  • 我的各种docker容器导出prometheus度量,但是我们的prometheus安装只需要从一个endpoint提取所有度量。不幸的是,这是无法改变的。因此,我需要在一个点上聚合所有度量,从普罗米修斯安装可以刮取度量。 此外,如果这个程序或脚本能够提供关于如何处理由不同endpoint导出的相同度量的额外逻辑,那就太好了。例如,如果我只是将不同的度量站点连接在一起,Prometheus在解释度

  • 对于和我们希望使用千分尺应用程序监控,因此包括: 并创建一个具有以下restendpoint的控制器: 因此,我们得到了endpoint,它只等待两秒钟,我们得到了endpoint,它返回了ITME的列表。 Bot请求工作。唯一的区别是,对于endpoint,我得到的是prometheus度量,而对于endpoint,我没有得到任何度量: 对于返回或仍不受支持的请求,是否必须配置其他内容才能使其工

  • 我有以下计数器指标 如何计算最近2分钟内活动设备的数量,即2(设备id 3和4)?

  • 我正在建立一个监控PoC以备将来的需要。PoC是在我的电脑上本地开发的。我使用普罗米修斯和格拉法纳来监视度量。我想统计一下收到的文件数量和处理文件所花费的时间。为此,我需要创建自定义度量。 我使用的是Python2.7.5。现在我已经把普罗米修斯和目标联系起来了。我收到度量标准,但不知道如何创建我想要的度量标准。 我希望收到的文件和“计数收到的文件数”度量。处理一个文件所花费的时间(即2s)和处理

  • 我正在尝试将时间度量添加到我的spring-boot web应用程序中。现在,应用程序使用千分尺、普罗米修斯和Spring引导执行器。 我可以通过http://localhost:8080/acturet/prometheus连接到我的应用程序,并查看默认度量的列表,如: 但至少这让我得到了我想要的结果: 有没有更干净的方法?