菜单
开源

查询加速

警告

在 Loki 和 Grafana Enterprise Logs (GEL) 中,使用 Bloom 过滤器进行查询加速是一个实验性功能。不提供工程和轮值支持。不提供 SLA。

在 Grafana Cloud 中,使用 Bloom 过滤器进行查询加速作为公开预览版为每月摄取超过 75TB 日志的部分大规模客户启用。提供的支持有限,且不提供 SLA。

如果启用了 Bloom 过滤器,您可以使用结构化元数据编写 LogQL 查询以受益于查询加速。

前提条件

查询 Bloom

满足以下所有条件的标签过滤器表达式的查询将得到加速

  • 使用**字符串相等性**的标签过滤器表达式,例如 | key="value"
    • 可以使用 orand 运算符匹配多个值,例如 | detected_level="error" or detected_level="warn"
    • **基本**正则表达式会自动简化为支持的表达式
      • | key=~"value" 被转换为 | key="value"
      • | key=~"value1|value2" 被转换为 | key="value1" or key="value2"
      • | key=~".+" 检查 key 是否存在。不支持 .*
  • 标签过滤器表达式正在查询结构化元数据,而不是流标签。
  • 标签过滤器表达式必须放置在任何解析器表达式标签格式化表达式丢弃标签表达式保留标签表达式之前。

要充分利用 Bloom 过滤器的查询加速功能,请确保在任何解析器表达式之前完成结构化元数据过滤

在以下示例中,查询未加速,因为结构化元数据过滤器 detected_level="error" 位于解析阶段 json 之后。

logql
{cluster="prod"} | logfmt | json | detected_level="error" 

在以下示例中,查询已加速,因为结构化元数据过滤器位于任何解析阶段之前。

logql
{cluster="prod"} | detected_level="error" | logfmt | json