使用Prometheus为所有名称空间导出kubernetes自定义指标

问题描述

如果使用舵图安装了prometheus-operator(命名空间 monitoring )和prometheus-adapter,我有一个k8s集群。我可以使用prometheus-operator从其他命名空间(例如 rabbitmq )中删除指标,而prometheus-adapter可以获取自定义指标:

kubectl get --raw "/apis/custom.metrics.k8s.io/v1beta1/namespaces/rabbitmq/services/rabbitmq-server/rabbitmq_queue_messages" | jq .
{
  "kind": "MetricValueList","apiVersion": "custom.metrics.k8s.io/v1beta1","Metadata": {
    "selfLink": "/apis/custom.metrics.k8s.io/v1beta1/namespaces/rabbitmq/services/rabbitmq-server/rabbitmq_queue_messages"
  },"items": [
    {
      "describedobject": {
        "kind": "Service","namespace": "rabbitmq","name": "rabbitmq-server","apiVersion": "/v1"
      },"metricName": "rabbitmq_queue_messages","timestamp": "2020-08-20T12:15:39Z","value": "0","selector": null
    }
  ]
}

这是我的prometheus-adapter配置:

prometheus:
  url: http://pmt-server-prometheus-oper-prometheus.monitoring.svc
  port: 9090

rbac:
  create: true

serviceAccount:
  create: true

service:
  port: 443

logLevel: 6
rules:
  custom:

  - seriesQuery: 'rabbitmq_queue_messages{namespace!="",service!=""}'
    resources:
      overrides:
        namespace: {resource: "namespace"}
        service: {resource: "service"}
    metricsQuery: sum(<<.Series>>{<<.LabelMatchers>>,queue="task_queue"}) by (<<.GroupBy>>)

问题在于这些指标是有名称空间限制的,因此我只能在同一名称空间 rabbitmq 中使用此指标。有没有办法将这些指标导出到所有名称空间,以便我可以扩展其他名称间的部署(例如,名称空间 default )?换句话说,是否使指标不受命名空间的约束?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)