如何在服务监视器中设置标签以使其出现在 Prometheus 指标中?

Rad*_*ad4 6 prometheus-operator

我想在服务监视器中像键值映射一样设置 targetLabels,以便它出现在 Prometheus 指标中。我尝试在服务监视器中重新标记,但没有用。

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: example-application
  labels:
    team: backend-team
spec:
  selector:
    matchLabels:
      app: example-application
  endpoints:
  - port: backend
    relabelings:
    - sourceLabels: [__name__]
      regex: (.*)
      targetLabel: teamname
      replacement: "backend-team"
      action: replace
Run Code Online (Sandbox Code Playgroud)

我还发现有 targetLabels。但不知道如何使用它。TargetLabels 将 Kubernetes Service 上的标签传输到目标上。

我还读到服务监视器中可能有白名单标签。请让我知道如何执行此操作以及哪种方法是正确的选项..

Rad*_*ad4 8

在 Servicemonitor 规范中,我们需要添加目标标签以便将服务标签传播到 Prometheus。

带有“teamname”标签的示例服务:

kind: Service
apiVersion: v1
metadata:
  name: example-application
  labels:
    app: example-application
    teamname: neon
spec:
  selector:
    app: example-application
  ports:
  - name: backend
    port: 8080
Run Code Online (Sandbox Code Playgroud)

示例 Servicemonitor 从服务传播“teamname”标签:

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: example-application
  namespace: monitoring
spec:
  selector:
    matchLabels:
      app: example-application
  endpoints:
  - port: backend
    path: /prometheus
  namespaceSelector:
    matchNames:
    - testns
  targetLabels:
    - teamname
    - app
Run Code Online (Sandbox Code Playgroud)