Thanos-Query/Query-Frontend 没有显示任何指标

Thanos-Query/Query-Frontend does not show any metrics

基本上,我从 kube-prometheus-stack using the provided helm chart repo prometheus-community

安装了 Prometheues-Grafana
# helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
# helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack

他们工作正常。

但我现在面临的问题是将 Thanos 与现有的 kube-prometheus-stack.

集成

我从 bitnami helm chart repo

安装了 thanos
# helm repo add bitnami https://charts.bitnami.com/bitnami
# helm install thanos bitnami/thanos

我可以加载 Thanos 查询前端 GUI,但那里没有显示指标。

我现在正在努力让它正常工作。是因为来自完全不同的 helm chart 的 Thanos 和来自另一个 helm chart 的 Prometheus-operator-grafana stack 吗?

我在 AWS 上的 Kubernetes 集群是使用 Kops 创建的。并且,我使用 Gitlab pipeline 和 helm 将应用程序部署到集群。

仅仅安装它们是不够的,你需要整合 prometheusthanos

下面我将描述获得结果所需执行的所有步骤。

第一空头理论。集成它们的最常见方法是为 prometheus pod 使用 thanos sidecar 容器。您可以阅读更多 here.

这是怎么做到的:

(考虑到安装是干净的,可以轻松删除并从头开始重新安装)。

  1. thanos sidecar 添加到 prometheus 连播。

kube-prometheus-stack图表:

$ helm pull prometheus-community/kube-prometheus-stack --untar

您将拥有一个包含图表的文件夹。需要修改values.yaml,精确两部分:

# Enable thanosService
prometheus:
  thanosService:
    enabled: true # by default it's set to false

# Add spec for thanos sidecar
prometheus:
  prometheusSpec:
    thanos:
      image: "quay.io/thanos/thanos:v0.24.0"
      version: "v0.24.0"

请记住,此功能仍处于试验阶段:

## This section is experimental, it may change significantly without deprecation notice in any release.
## This is experimental and may change significantly without backward compatibility in any release.
## ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#thanosspec

完成后,安装 prometheus 图表并编辑 values.yaml:

$ helm install prometheus . -n prometheus --create-namespace # installed in prometheus namespace

并检查 sidecar 是否也已部署:

$ kubectl get pods -n prometheus | grep prometheus-0
prometheus-prometheus-kube-prometheus-prometheus-0       3/3     Running   0          67s

应该是 3 个容器 运行(默认是 2 个)。您可以使用 kubectl describe 命令更详细地检查它。

  1. 设置 thanos 图表并部署它。

拉出thanos图表:

$ helm pull bitnami/thanos --untar

编辑 values.yaml:

query:
  dnsDiscovery:
    enabled: true
    sidecarsService: "prometheus-kube-prometheus-thanos-discovery" # service which was created before
    sidecarsNamespace: "prometheus" # namespace where prometheus is deployed

保存并安装编辑后的图表 values.yaml:

$ helm install thanos . -n thanos --create-namespace

检查它是否有效:

$ kubectl logs thanos-query-xxxxxxxxx-yyyyy -n thanos

我们对这一行感兴趣:

level=info ts=2022-02-24T15:32:41.418475238Z caller=endpointset.go:349 component=endpointset msg="adding new sidecar with [storeAPI rulesAPI exemplarsAPI targetsAPI MetricMetadataAPI]" address=10.44.1.213:10901 extLset="{prometheus=\"prometheus/prometheus-kube-prometheus-prometheus\", prometheus_replica=\"prometheus-prometheus-kube-prometheus-prometheus-0\"}"
  1. 现在转到 UI 并查看可用的指标:

值得一读的文章: