菜单
Grafana Cloud Enterprise 开源

Loki 模板变量

您可以在指标查询中使用变量,而不是在其中硬编码服务器、应用程序和传感器名称等详细信息。Grafana 将这些变量列在仪表盘顶部的下拉选择框中,帮助您更改仪表盘中显示的数据。Grafana 将此类变量称为模板变量。

有关模板化和模板变量的介绍,请参阅模板化添加和管理变量文档。

使用查询变量

类型为 Query 的变量帮助您查询 Loki 以获取标签列表或标签值列表。Loki 数据源提供一个表单,用于选择给定变量期望的值类型。

该表单包含以下选项

查询类型示例标签示例流选择器返回列表
标签名称非必需非必需标签名称。
标签值labellabel 的标签值。
标签值labellog stream selector指定 log stream selectorlabel 的标签值。

使用临时过滤器

Loki 支持特殊的 Ad hoc filters 变量类型。您可以使用此变量类型指定任意数量的键/值过滤器,Grafana 会自动将其应用于您的所有 Loki 查询。

有关更多信息,请参阅添加临时过滤器

将 $__auto 变量用于 Loki 指标查询

建议在您的 Loki 指标查询中使用 $__auto 变量,它将自动替换为范围查询的步长值,以及即时查询的选定时间范围值(从开始时间和结束时间计算得出)。

有关变量的更多信息,请参阅全局内置变量

Loki 中的标签提取和索引

标签在 Loki 的日志聚合和查询功能中起着基础性作用。将日志摄取到 Loki 中时,通常会伴随称为 labels 的元数据,这些元数据提供有关日志条目的上下文信息。这些标签由 key-value 对组成,对于高效地组织、过滤和搜索日志数据至关重要。

标签提取

在摄取过程中,Loki 从日志行中执行标签提取。Loki 的标签提取方法基于 regular expressions,允许用户指定自定义模式来解析日志行并提取相关的标签键值对。这种灵活性使 Loki 能够适应各种日志格式和模式。

例如,假设您的日志行采用以下格式

2023-07-25 12:34:56 INFO: Request from IP A.B.C.D to endpoint /api/data

要从此日志格式中提取标签,您可以定义一个正则表达式来提取日志级别(“INFO”)、IP 地址(“A.B.C.D”)和端点(“/api/data”)作为标签。这些标签稍后可用于过滤和聚合日志条目。

索引标签

提取标签后,Loki 会高效地对其进行索引。索引充当查找机制,将标签映射到相应的日志条目。此索引过程使基于特定标签条件的日志检索更快,显著提高了查询性能。

例如,如果您有一个表示应用程序中不同服务的标签“job”,Loki 将单独索引每个 job 的日志。此索引使您能够快速查询和分析单个 job 的日志,而无需扫描整个日志数据集。

通过有效地提取和索引标签,Loki 使用户能够执行复杂和有针对性的日志查询,而不会影响查询速度和资源消耗。

结合 Grafana 的模板变量使用 Loki 的索引标签,提供了一种交互式探索和可视化日志数据的强大方式。模板变量允许用户创建动态查询,根据各种标签(例如 job 名称、实例 ID、严重性级别或附加到日志条目的任何其他上下文信息)选择和过滤日志。

总之,Loki 的标签提取和索引机制是其高效处理大量日志数据的关键组成部分。通过利用标签和模板变量,用户可以轻松地从日志数据中获得有价值的见解,并有效地排除故障。