首页 > 其他分享 >如何使用loki查询日志中大于某一数字的值的日志

如何使用loki查询日志中大于某一数字的值的日志

时间:2024-01-05 18:22:54浏览次数:31  
标签:解析器 标签 查询 loki pattern 日志 sqlCost

简介

loki是一款轻量级的日志收集中间件,比elk体系占用的内存更小,采用go语言开发,可以利用grafana来查询loki中存储的日志,loki存储日志只对提前预设的标签做索引,所以日志存储空间占用比elk小很多。

方法

loki只对提前预设的标签做索引,但如果我们想给标签之外的文本根据其值代表的数字做判断,可以利用(Parser expression )解析器表达式将文本解析成标签再判断,例如:

thread=testThread, info, sqlCost=23ms, sql=select * from user

要筛选sqlCost值大于20的日志,可以采用如下表达式:

{app="testApp"} |= `sqlCost=` | pattern `<_> sqlCost=<costTime>ms, <_>` | costTime >= 20

原理是先筛选有sqlCost= 字符串的日志,然后利用pattern解析器将标签解析命名成costTime。

pattern解析器语法非常简单:<_>代表未命名分组,把无关文本排除;即是命名分组,创建了一个新的costTime标签,使用时注意空格、标点符号要匹配好。

其实除了pattern解析器,官方还提供了 JSON, logfmt, regexp and unpack等类型的解析器,可以参考官方文档学习怎么在查询时提取新的标签来做筛选。
https://grafana.com/docs/loki/latest/query/log_queries/#pattern

标签:解析器,标签,查询,loki,pattern,日志,sqlCost
From: https://www.cnblogs.com/vant/p/17947813

相关文章

  • 日志模块
    日志模块1.什么是日志? #记录你的代码在执行过程中的一些变化(记录的是一些有意义的变化)2.日志如何学习? #只需要回CV即可,复制代码会改代码即可3.日志的等级 importlogginglogging.debug('debugmessage') #10logging.info('infomessage') #20......
  • MySQL 查询执行计划
    目录查询计划查询计划输出格式解释输出列列格式idselect_typetypepossible_keyskeyref查询计划根据表、列、索引的详细信息以及子句中的WHERE条件不同,MySQL优化器会考虑多种技术来有效地执行SQL查询中涉及的查找。例如,对大表进行查询可能无需读取所有行;涉及多个表的......
  • MySQL三大日志,mvcc、DateTime 类型等
    1、MySQL事务隔离级别详解解决幻读的方法解决幻读的方式有很多,但是它们的核心思想就是一个事务在操作某张表数据的时候,另外一个事务不允许新增或者删除这张表中的数据了。解决幻读的方式主要有以下几种:将事务隔离级别调整为 SERIALIZABLE 。在可重复读的事务级别下,给事务操......
  • MySQL 8.0的SQL查询JSON返回的数据类型为字符串而非数组
    在MySQL8.0中,SQL查询JSON返回的数据类型确实是字符串,而不是数组。这是因为MySQL将JSON数据存储为字符串,并提供了一些函数和操作符来处理JSON数据。但是,你可以使用内置的JSON函数来处理返回的JSON字符串。例如,你可以使用JSON_EXTRACT函数来提取JSON字符串......
  • 无论删除配置文件,Laravel 8在生产环境中仍无法禁用日志记录
    如果你已经在.env文件中设置了LOG_CHANNEL=null和LOG_LEVEL=null,并且在Laravel8中仍然无法禁用日志记录,可以尝试以下几个方法:phpartisanconfig:clearphpartisancache:clear这将清除配置和缓存,确保您的更改生效。检查环境:确保你正在修改正确的环境文件。在生......
  • 支付系统日志设计完全指南:构建高效监控和问题排查体系的关键基石
    这是《百图解码支付系统设计与实现》专栏系列文章中的第(7)篇。在一家头部互联网公司发现一些工作多年的同学打印的日志也是乱七八糟的,所以聊聊这个话题。本文主要讲结构清晰的日志在支付系统中的重要作用,设计日志规范需要遵守的一些基本原则,以及接口摘要日志、业务摘要日志、详细日......
  • 人机交互主板定制_基于联MT8735安卓核心板的自助查询机/触摸一体机方案
    人机交互主板是一种商用智能终端主板,主要用于各种场景下的人机交互应用。它广泛适用于广告机、工控一体机、教学一体机、智能自助终端、考勤机、智能零售终端、O2O智能设备、取号机、计算机视觉、医疗健康设备以及机器人设备等。这款人机交互主板采用了联发科MTK8735芯片平......
  • oracle如何进行复杂的join查询
    在Oracle数据库中,进行复杂的JOIN查询涉及多个表之间的连接,可以使用JOIN子句来实现。以下是一些示例,展示如何在Oracle中执行复杂的JOIN查询:1.内连接(INNERJOIN):SELECTemployees.employee_id,employees.employee_name,departments.department_nameFROMemployeesINNERJOIN......
  • 分布式日志追踪ID实战 | 京东物流技术团队
    本文通过介绍分布式应用下各个场景的全局日志ID透传思路,以及介绍分布式日志追踪ID简单实现原理和实战效果,从而达到通过提高日志查询排查问题的效率。背景开发排查系统问题用得最多的手段就是查看系统日志,相信不少人都值过班当过小秘吧:给下接口和出入参吧,麻烦看看日志里的有没有异常......
  • tcp缓存引起的日志丢失
    背景logstash从数据源拉取日志,然后通过tcp插件发送到proxy进程中。在业务侧发现日志量明显少了,所以有了这一次的问题排查。问题排查定位首先从logstash侧开始检查。我们先看logstash的日志,没有明显的报错信息。然后再查看logstash管道的状态。可以很明显的看到,在output管道中,in远远......