我们是 Prometheus Monitoring 的新手,正面临一个问题。在我们的 Kubernetes 集群上,为了监控我们的 MongoDB 应用程序,我们使用以下设置:
- 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
- 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
- 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 的一些指标中,我们收到错误“仅支持返回单个系列/表的查询”,我猜这是因为没有发生重复数据删除。
请帮助我们解决重复数据删除问题。