Loki 模板变量
您可以在指标查询中使用变量,而不是在其中硬编码服务器、应用程序和传感器名称等详细信息。Grafana 将这些变量列在仪表盘顶部的下拉选择框中,帮助您更改仪表盘中显示的数据。Grafana 将此类变量称为模板变量。
有关模板化和模板变量的介绍,请参阅模板化和添加和管理变量文档。
使用查询变量
类型为 Query 的变量帮助您查询 Loki 以获取标签列表或标签值列表。Loki 数据源提供一个表单,用于选择给定变量期望的值类型。
该表单包含以下选项
查询类型 | 示例标签 | 示例流选择器 | 返回列表 |
---|---|---|---|
标签名称 | 非必需 | 非必需 | 标签名称。 |
标签值 | label | label 的标签值。 | |
标签值 | label | log stream selector | 指定 log stream selector 中 label 的标签值。 |
使用临时过滤器
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 的标签提取和索引机制是其高效处理大量日志数据的关键组成部分。通过利用标签和模板变量,用户可以轻松地从日志数据中获得有价值的见解,并有效地排除故障。