Loki 查询编辑器
Loki 数据源的查询编辑器帮助您创建日志和指标查询,这些查询使用 Loki 的查询语言 LogQL。
有关在 Grafana 中查询数据源的通用文档,请参阅查询和转换数据。
选择查询编辑模式
Loki 查询编辑器有两种模式
要在编辑器模式之间切换,请选择相应的 Builder 和 Code 选项卡。
要运行查询,请选择编辑器顶部的 Run queries。
注意
要在以下位置运行 Loki 查询
探索,选择 Run query。
每种模式都是同步的,因此您可以在它们之间切换而不会丢失您的工作,尽管存在一些限制。构建器模式不支持某些复杂查询。当您从代码模式切换到构建器模式时,如果查询复杂,编辑器会显示警告消息,解释如果继续,您可能会丢失查询的某些部分。然后您可以决定是否仍要切换到构建器模式。
您也可以使用模板变量来增强查询。
工具栏元素
查询编辑器工具栏包含以下元素
- 快速开始您的查询 - 单击可查看帮助您快速开始创建 LogQL 查询的列表。然后您可以继续完成您的查询。
包括
- 日志查询入门
- 指标查询入门
单击每个旁边的箭头可查看可用的查询选项。
- 标签浏览器 - 使用 Loki 标签浏览器浏览您的标签和值,并构建查询。
浏览 Loki 并构建查询
选择要定位的标签。
搜索您所选标签的值。
搜索字段支持模糊搜索,标签浏览器还支持 Faceting(分面)以便仅列出可能的标签组合。
选择 Show logs 按钮以显示基于所选标签的日志行,或选择 Show logs rate 按钮以显示基于指标(例如每秒请求数)的速率。此外,您可以通过单击 Validate selector 按钮来验证选择器。单击 Clear 从头开始。

- 解释查询 - 切换以显示所有查询组件和操作的分步解释。

- 构建器/代码 - 单击工具栏上相应的 Builder 或 Code 选项卡以选择编辑器模式。
构建器模式
构建器模式帮助您使用可视化界面构建查询,而无需手动输入 LogQL。此选项最适合对 Loki 和 LogQL 工作经验有限或没有经验的用户。
标签过滤器
从下拉列表中选择标签及其值。当您选择一个标签时,Grafana 会从服务器检索可用值。
使用 +
按钮添加标签,使用 x
按钮移除标签。您可以添加多个标签。
从以下选项中选择比较运算符
=
- 等于!=
- 不等于=~
- 匹配正则表达式!~
- 不匹配正则表达式
使用下拉列表选择值,该列表显示基于所选标签的所有可能值。
操作
选择 + Operations
按钮将操作添加到您的查询中。查询编辑器将操作分组到相关部分,您可以在操作下拉列表打开时键入以搜索和过滤列表。
查询编辑器在操作部分将查询的操作显示为框。每个操作的头部显示其名称,当您将光标悬停在头部时,会出现其他操作按钮
按钮 | 操作 |
---|---|
![]() | 用相同类型的不同操作替换当前操作。 |
![]() | 打开操作的描述工具提示。 |
![]() | 移除操作。 |
查询编辑器将操作分组到以下部分
某些操作只有按特定顺序使用时才有意义。如果添加某个操作会导致查询无意义,查询编辑器会将该操作添加到正确的位置。要手动重新排序操作,请通过名称拖动操作框并将其拖放到所需位置。更多信息请参阅操作顺序。
提示
在某些情况下,查询编辑器可以检测出哪些操作最适合选定的日志流。在这种情况下,它将在 + Operations
按钮旁边显示提示。点击提示即可将操作添加到您的查询中。
代码模式
在 Code mode 中,您可以使用带有自动完成功能、语法高亮和查询验证的文本编辑器编写复杂查询。它还包含一个标签浏览器,进一步帮助您编写查询。
有关 Loki 查询语言的更多信息,请参阅Loki 文档。
使用自动完成
代码模式的自动完成功能在您键入时自动工作。
查询编辑器可以自动完成静态函数、聚合和关键字,以及动态项,如标签。自动完成下拉列表包含可用建议项的文档(如果可用)。
选项
以下选项在 Builder 和 Code 模式下是相同的
图例 - 控制时序名称,使用名称或模式。例如,
{{hostname}}
将被标签hostname
的标签值替换。类型 - 选择要运行的查询类型。
instant
类型针对时间范围内的单个时间点查询。我们使用时间范围内的“To”时间。range
类型在选定的时间范围内查询。行限制 - 定义查询返回的日志行数的上限。默认值为
1000
方向 - 确定搜索顺序。Backward 是从时间范围末尾开始向后搜索。Forward 是从时间范围开始向前搜索。默认值为 Backward
步长 - 设置 Loki 指标查询的步长参数。默认值等于
$__auto
变量的值,该值使用时间范围和图表宽度(像素数)计算得出。
创建日志查询
Loki 日志查询返回日志行的内容。您可以通过Explore以及仪表盘中的日志面板查询和显示来自 Loki 的日志数据。
要显示日志查询结果,请选择 Loki 数据源,然后输入 LogQL 查询。
有关日志查询和 LogQL 的更多信息,请参阅Loki 日志查询文档。
显示日志上下文
在 Explore 中,您可以通过单击 Show Context
按钮检索日志结果周围的上下文。您将能够调查您感兴趣的日志消息之前和之后的来自同一日志流的日志。
初始日志上下文查询是根据定义所选日志行流的所有标签创建的。您可以使用日志上下文查询编辑器通过移除日志流中的一个或多个标签过滤器来扩大搜索范围。此外,如果您在原始查询中使用了解析器,则可以使用提取的标签过滤器来优化搜索。
为了减少在检查多个日志上下文窗口时选择和移除相同标签的重复操作,Grafana 会存储您选择的标签并将它们应用于每个打开的上下文窗口。这使您可以无缝地浏览各种日志上下文窗口,而无需重新应用过滤器。
要重置过滤器并使用初始日志上下文查询,请单击查询预览旁边的 Revert to initial query
按钮。
追踪实时日志
Loki 支持在Explore中实时追踪日志。
实时追踪依赖于两个 Websocket 连接:一个在浏览器和 Grafana 服务器之间,另一个在 Grafana 服务器和 Loki 服务器之间。
要开始追踪日志,请点击 Explore 视图右上角的 Live 按钮。

代理示例
如果您使用反向代理,请相应地配置它们以使用实时追踪
使用 Apache2 在浏览器和 Grafana 服务器之间进行代理
ProxyPassMatch "^/(api/datasources/proxy/\d+/loki/api/v1/tail)" "ws://127.0.0.1:3000/$1"
使用 NGINX
此示例提供了基本的 NGINX 代理配置。它假设 Grafana 服务器可在 https://:3000/
访问,Loki 服务器在本地运行且没有代理,并且您的外部站点使用 HTTPS。如果您也在 NGINX 代理后托管 Loki,请为 Loki 重复以下配置。
在 NGINX 配置的 http
部分,添加以下 map 定义
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
在您的 server
部分,添加以下配置
location ~ /(api/datasources/proxy/\d+/loki/api/v1/tail) {
proxy_pass https://:3000$request_uri;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto "https";
proxy_set_header Connection $connection_upgrade;
proxy_set_header Upgrade $http_upgrade;
}
location / {
proxy_pass https://:3000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto "https";
}
创建指标查询
您可以使用 LogQL 通过包装日志查询的函数从您的日志创建指标。
有关指标查询的更多信息,请参阅Loki 指标查询文档。
应用注释
注释可在图表上方叠加丰富的事件信息。您可以在仪表盘菜单的注释视图中添加注释查询。
您只能使用日志查询作为注释的来源。Grafana 自动使用日志内容作为注释文本,并使用您的日志流标签作为标签。您无需创建任何额外的映射。