Thanos 查询历史数据

Grafana 配置

在 Thanos Compactor 组件进行了如下的数据留存策略以后

    --retention.resolution-raw=30d \
    --retention.resolution-5m=180d \
    --retention.resolution-1h=180d \

在 Grafana 的 Prometheus 数据源配置时,应该在 Misc 添加如下 参数

max_source_resolution=auto&partial_response=true

参数解释:

  • max_source_resolution :可选值为 auto5m1h0 确定查询的时候的自动采样精度,如果是 5m 我们将使用最多5m的下采样。auto 表示自动选取合适的值,0 代理只使用 RAW 的详细数据,不使用降采样的数据。

  • partial_response : 部分响应策略,如果为true,则所有将不可用的storeAPI(因此不返回任何数据)不会导致查询失败,而是返回警告

除此之外还有 2 个参数可能会用到。

  • replicaLabels : 主要用来删除重复数据的副本标签。用法为replicaLabels=replicaA&replicaLabels=replicaB
  • dedup : 是否删除重复数据。是个布尔值,true 为真。

带来的问题

在 Grafana 里配置好以后可以使用降采样的历史数据,可以说是非常爽了,不响应性监控,而且还节省存储空间。但是也带来了一个问题。

我们在对监控指标进行查询的时候,一般会对指标进行处理,当使用 rate 等包含时间范围的处理函数进行处理的时候就会出现问题了。我们一般使用详细数据进行 rate 函数聚合的时候 时间范围基本都是 1m 到 5m ,里边会最少包含 1 个指标的 2 个值 。

但是使用 5m 降采样的数据以后,1m 的时间区间里就没有值了,5m 的区间里也只有 1 个值,这就导致了 rate 类似的函数不成立。为了函数成立,使用 5m 降采样数据的时候,时间区间最少也要 10m ,查询数据时间够长的时候 30m 的效果更好一些。

使用 1h 降采样数据的时候,时间区间最少也要 2h 才行。

另外如果 上边的 ax_source_resolution 配置了 auto ,那么函数的时间区间要根据查询数据的时间范围来灵活调整。

results matching ""

    No results matching ""