Loki QL查询语句
LogQL:日志查询语言
基本的LogQL查询由两部分组成:log stream selector、filter expression
Log stream selector
它由一个或多个键值对组成,每个键是一个日志标签,值的话是标签的值,例如
{app="mysql",name="mysql-backup"}
在这个例子中,记录具有的标签流app,其值是mysql 和的一个标签name,它的值mysql-backup将被包括在查询结果。注意,这将匹配其标签至少 包含mysql-backup其名称标签的任何日志流;如果有多个包含该标签的流,则所有匹配流的日志将显示在结果中。
支持以下标签匹配运算符:
- =:完全相等。
- !=:不相等。
- =~:正则表达式匹配。
- !~:正则表达式不匹配。
适用于Prometheus标签选择器的相同规则也适用 于Loki日志流选择器。
Filter expression
写入日志流选择器后,可以使用搜索表达式进一步过滤生成的日志集。搜索表达式可以只是文本或正则表达式:
- {job=“mysql”} |= “error”
- {name=“kafka”} |~ “tsdb-ops.*io:2003”
- {instance=~“kafka-[23]”,name=“kafka”} !=
kafka.server:type=ReplicaManager
运算符说明
- |=:日志行包含字符串。
- !=:日志行不包含字符串。
- |~:日志行匹配正则表达式。
- !~:日志行与正则表达式不匹配。
指标查询
范围向量
LogQL 与Prometheus 具有相同的范围向量概念,不同之处在于所选的样本范围包括每个日志条目的值1。可以在所选范围内应用聚合,以将其转换为实例向量。
注:对于此种查询,需要添加数据源,选择promethes,但是地址为loki的地址,并在最后添加/loki即可
当前支持的操作功能为:
- rate:计算每秒的条目数
- count_over_time:计算给定范围内每个日志流的条目。
//对fluent-bit作业在最近五分钟内的所有日志行进行计数。
count_over_time({job="fluent-bit"}[5m])
获取fluent-bit作业在过去十秒内所有非超时错误的每秒速率。
rate({job="fluent-bit"} |= "error" != "timeout" [10s]
集合运算符
与PromQL一样,LogQL支持内置聚合运算符的一个子集,可用于聚合单个向量的元素,从而产生具有更少元素但具有集合值的新向量:
- sum:计算标签上的总和
- min:选择最少的标签
- max:选择标签上方的最大值
- avg:计算标签上的平均值
- stddev:计算标签上的总体标准差
- stdvar:计算标签上的总体标准方差
- count:计算向量中元素的数量
- bottomk:通过样本值选择最小的k个元素
- topk:通过样本值选择最大的k个元素
可以通过包含a without或 by子句,使用聚合运算符聚合所有标签值或一组不同的标签值:
<aggr-op>([parameter,] <vector expression>) [without|by (<label list>)]
举例:
统计最高日志吞吐量按container排序前十的应用程序
topk(10,sum(rate({job="fluent-bit"}[5m])) by(container))
获取最近五分钟内的日志计数,按级别分组
sum(count_over_time({job="fluent-bit"}[5m])) by (level)
更多内容请参考:https://github.com/grafana/loki/blob/master/docs/logql.md
Loki QL查询语句相关推荐
- 执行Hive的查询语句报错:java.lang.IllegalArgumentException: Does not contain a valid host:port authority: loca
好不容易把Hive装完了,结果一执行Hive的查询语句运行MapReduce程序立马报错... log详细信息如下: Job running in-process (local Hadoop) Had ...
- java oracle分页查询语句_oracle分页查询语句,java得到分页查询语句的方法
oracle分页查询语句 select * from ( select a.*, rownum rn from (select * from table_name) a where rownum &l ...
- JAVA中oracle分页语句,oracle分页查询语句,java得到分页查询语句的方法
oracle分页查询语句 select * from ( select a.*, rownum rn from (select * from table_name) a where rownum &l ...
- Mysql常规27种sql查询语句
Mysql常规27种sql查询语句 话不多说,直接上干货 1.查询部分列 select 列名 from 表名 例:员工表中查询员工编号.名字.邮箱 select employee_id,employe ...
- groovy怎样从sql语句中截取表名_SQL常用的基础查询语句
数据分析过程中,我们经常可以看到提数的SQL语句,了解SQL常用的基础查询语句,是检验提数逻辑是否正确的途径之一,并且也能更方便使用SMART BI数据分析工具.今天就让小编带大家走进SQL基础查询的 ...
- Oracle中分页查询语句
Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,如果您对此方面感兴趣的话,不妨一看. Oracle分页查询语句基本上可以按照本文给出的格式来进行套用. ...
- hibernate中的hql查询语句list查询所有与iterate查询所有的区别
hibernate中的hql查询语句list查询所有与iterate查询所有的区别 list查询所有: 01,会立即产生一条select语句1select查询出来的所有语句都会被session管理, ...
- SQL查询语句 select 详解
查询select: 1.单表查询 2.多表查询 3.嵌套查询分类 1)单表查询 2)多表查询 A.连接查询 B.子查询 ①一般子查询 ②相关子查询*************************** ...
- oracle 判断11位数字,45个非常有用的 Oracle 查询语句小结
日期/时间 相关查询 1.获取当前月份的第一天 运行这个命令能快速返回当前月份的第一天.你可以用任何的日期值替换 "SYSDATE"来指定查询的日期. SELECT TRUNC ( ...
最新文章
- C++反汇编代码分析
- 虚拟机和java虚拟机
- 浏览器兼容--条件样式,选择符前缀,样式属性前缀(转)
- 程序员成长最快的环境
- hdu 1241 Oil Deposits 解题报告
- 当电信诈骗犯遇上程序员,技术决定成败!
- 算法学习总结(八):计数排序
- 二级mysql教程下载_全国计算机等级考试教程:二级MySQL数据库程序设计
- FreeRTOS源码分析与应用开发07:事件标志组
- 执行sql报错:Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in
- (day 34 - 哈希表 or 双指针 )剑指 Offer 57. 和为s的两个数字
- C#:访问web.config中的常量
- 利用计算机教学的体会,教师计算机教学学习体会
- mysql数据库备份sql语句_mysql用户管理、常用sql语句及数据库的备份
- matlab验证dtft移位性质,7.DTFT的Matlab实现.ppt
- 5G SA信令流程介绍
- 生信分析用python还是r_生信分析利器:JupyterLab
- Kettle之数据同步
- 一分钟了解英语表达:性能,能力
- 无需安卓手游模拟器,电脑玩绝地求生:全军出击TC Games完美匹配手游服