1

我们是 Prometheus Monitoring 的新手,正面临一个问题。在我们的 Kubernetes 集群上,为了监控我们的 MongoDB 应用程序,我们使用以下设置:

  1. MongoDB 导出器(使用 prometheus-community prometheus-mongodb-exporter Helm Chart 安装),从 MongoDB 应用程序获取指标,将它们转换为 prometheus 可读格式并在 /metrics 端点公开它们。下面的 values.yaml 文件用于覆盖默认图表值。该文件作为参数传递给 helm install -f 命令。

值.yaml:

mongodb:
    uri: "mongodb://<Username>:<Password>@pod0.service.monitoring.svc.cluster.local:27017"
serviceMonitor:
     additionalLabels:
        app.kubernetes.io/instance: prometheus-operator
  1. Prometheus 与 thanos作为 sidecar(使用 bitnami 的 prometheus-operator Helm 图表安装)。我们为 Prometheus 指定了3 个副本,以便为部署的 Prometheus 提供可扩展性。Thanos 作为 sidecar 被用来为部署的 prometheuses 提供 HA。提供了外部标签,以便 Thanos Querier(在第 3 点中提到将使用它对数据进行重复数据删除)。我们正在使用以下 values.yaml 文件来覆盖默认的 prometheus-operator 值。该文件作为参数传递给 helm install -f 命令。

值.yaml:

prometheus:
   thanos:
     create: true
     service:
      type: ClusterIP
     externalLabels:
          cluster: prometheus-ha
          replica: test
      replicaExternalLabelName: "replica"
      prometheusExternalLabelName: "replica"
  storageSpec:
    volumeClaimTemplate:
      spec:
        # Name of the PV you created beforehand
        # volumeName: prometheus-hostpath-pv
        accessModes: ["ReadWriteOnce"]
        # StorageClass should match your existing PV's storage class
        storageClassName: manual
        resources:
          requests:
            # Size below should match your existing PV's size
            storage: 3Gi
  replicaCount: 3
  1. Thanos Querier(使用 bitnami 的 thanos Helm Chart 安装)查询来自所有 thanos sidecar 的指标,并使用 replicaLabel 参数对从所有 sidecar 接收到的数据进行重复数据删除。此 replicaLabel 参数应与 externalLabels “副本”标签名称匹配。在安装过程中使用 helm ls 命令使用了以下values.yaml 。

值.yaml:

query:
        stores:
                - prometheus-thanos-sidecar-custom-headless-service-for-pod-0.monitoring.svc.cluster.local:10901
                - prometheus-thanos-sidecar-custom-service-for-pod-1.monitoring.svc.cluster.local:10901
                - prometheus-thanos-sidecar-custom-service-for-pod-2.monitoring.svc.cluster.local:10901    
        replicaLabel:
                - replica

但是数据的重复数据删除并没有发生,因为来自所有副本的相同数据/指标显示在 Thanos UI(附加屏幕截图)中,即使启用了重复数据删除。此外,在 Grafana 的一些指标中,我们收到错误“仅支持返回单个系列/表的查询”,我猜这是因为没有发生重复数据删除。

请帮助我们解决重复数据删除问题。

Thanos UI 中的 Thanos 重复数据删除问题

4

1 回答 1

0

Thanos Query中的重复数据删除是基于replicaLabel配置的,你错了,根据你的截图应该是这样的:

        replicaLabel:
                - prometheus_replica
于 2021-08-04T09:49:35.843 回答