【日志解析】【频率分析】ULP:基于正则表达式和本地频率分析进行日志模板提取

news2024/11/16 18:07:31

An Effective Approach for Parsing Large Log Files

文章目录

    • An Effective Approach for Parsing Large Log Files
      • 1 论文出处
      • 2 背景
        • 2.1 背景介绍
        • 2.2 针对问题
        • 2.3 创新点
      • 3 主要设计思路
        • 3.1 预处理
        • 3.2 日志事件分组
        • 3.3 通过频率分析生成日志模板
      • 4 实验设计
        • 4.1 准确性
        • 4.2 效率

1 论文出处

会议:International Conference on Software Maintenance and Evolution(ICSME)

级别:CCF-B

时间:2022

2 背景

2.1 背景介绍

  日志文件包括大量关于软件系统执行的信息,用于帮助处理不同的软件工程活动,生成的日志事件主要由两部分组成:日志头和日志消息。解析日志消息需要自动区分静态文本和动态变量,一种方法是使用正则表达式,而典型的工业日志文件可能包含数百个日志模板,许多方法基于频率分析来实现,比如Drain和Logram,这些工具将频率分析应用于整个日志文件,这使得很难在静态和动态标记之间找到明确的界限。

2.2 针对问题

  • 使用多个日志库会导致正则表达式的不断更新。
  • 依赖于领域知识很难区分日志的动态变量和静态内容。
  • 将频率分析应用于属于同一组的日志事件,而不是针对整个日志数据集。

2.3 创新点

  • 基于字符串匹配和本地频率分析对日志进行解析,不需要先前的领域知识或使用复杂的机器学习技术。
  • 设计通用的正则表达式来进行日志预处理。

3 主要设计思路

3.1 预处理

  通过简单的正则表达式识别出日志的头部信息,包括时间戳、进程ID、日志级别和日志记录功能,以及一些简单的动态变量比如IP地址和MAC地址,并且运行用户自定义正则表达式识别领域变量。

3.2 日志事件分组

  根据两个日志事件所包含的标记数量与最有可能是静态标记的标记数量来衡量两个日志事件的相似性,首先通过空格分割来确定标记个数,之后识别出只包含字母的标记,最后将日志事件转变为一个由字母标记和标记总数组成的字符串来进行匹配。

3.3 通过频率分析生成日志模板

  通过计算每个标记在属于同一组的日志事件中出现的次数,来分析每一组日志事件中出现的标记。

1) PacketResponder 1 for block blk_38865049064139660 terminating
2) PacketResponder 0 for block blk_-6952295868487656571 terminating
3) PacketResponder 2 for block blk_8229193803249955061 terminating
4) PacketResponder 2 for block blk_-6670958622368987959 terminating
5) PacketResponder 2 for block blk_572492839287299681 terminating
1) PacketResponder <*> for block <*> terminating
2) BLOCK* NameSystem.addStoredBlock: blockMap updated: <*> is added to <*> size 67108864
3) Received block <*> of size 67108864 from <*>

4 实验设计

  评估了ULP在解析LogPai基准的10个日志数据集时的准确性和效率,并与目前已有的解析方法对比。

4.1 准确性

4.2 效率

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/634781.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

物联网Lora模块从入门到精通(八)Lora无线通信

一、前言 在某些环境下&#xff0c;无法通过有线传输数据&#xff0c;这时候我们需要使用Lora无线通信传输数据&#xff0c;Lora无线数据传输具有低功耗、距离长的特点&#xff0c;常用于工厂内等&#xff0c;需要Lora基站。 我曾做过距离测试&#xff1a;Lora模块距离测试-物联…

【Pytest实战】pytest 基本概念及使用大全

&#x1f604;作者简介&#xff1a; 小曾同学.com,一个致力于测试开发的博主⛽️&#xff0c;主要职责&#xff1a;测试开发、CI/CD 如果文章知识点有错误的地方&#xff0c;还请大家指正&#xff0c;让我们一起学习&#xff0c;一起进步。&#x1f60a; 座右铭&#xff1a;不想…

Spring6-02

JdbcTemplate JdbcTemplate是Spring提供的一个JDBC模板&#xff0c;是对JDBC的封装&#xff0c;简化了JDBC代码。当然也可以不用JdbcTemplate&#xff0c;可以让Spring集成其他的ORM框架&#xff0c;例如MyBatis、Hibernate等。接下来使用JdbcTemplate完成增删改查。 环境准备…

重写并自定义console.log()输出样式

0. 背景 笔者在开发的实践过程中对于控制台内容的输出情况有一些特殊的需求&#xff0c;然而&#xff0c;普通的console.log()函数不能提供很好的支持&#xff0c;因此需要探索一些自定义的实现方式&#xff0c;以便满足开发需求&#xff0c;一些开发需求如下&#xff1a; 输…

编译详细过程与交叉编译

GCC的编译过程&#xff1a; GCC编译分为四步&#xff0c;预处理、编译、汇编、链接。具体功能如上图所示&#xff0c;我们在稍微解释一下&#xff1a; 1.预处理&#xff1a; 实现过程&#xff1a;gcc -E xxx.c -o xxx.i 目的&#xff1a;我们的c程序中除了main函数以外&…

如何在Linux中使用read命令读取用户输入?——read命令实战

前言 大家好&#xff0c;又见面了&#xff0c;我是沐风晓月&#xff0c;本文是专栏【linux基本功-基础命令实战】的第64篇文章。 专栏地址&#xff1a;[linux基本功-基础命令专栏] &#xff0c; 此专栏是沐风晓月对Linux常用命令的汇总&#xff0c;希望对你有用。 今天我们一…

实现jvm内存溢出

那么我们如何来构建一个堆内存溢出呢&#xff1f;其实很简单&#xff0c;我们只要定义一个List对象&#xff0c;然后通过一个循环不停的往List里面塞对象。因为只要Controller不被回收&#xff0c;那么它里面的成员变量也是不会被回收的。这样就会导致List里面的对象越来越多&a…

Play wright自动化测试工具该如何更加完美地使用

目录 1.1 拦截网络请求 1.2 pytest 管理用例 1.3 PO模型 1.4 API 和 UI 自动化测试融合 1.5 数据驱动 1.6 动态挑选用例执行 1.6 Allure测试报告 1.7 持续集成 1.1 拦截网络请求 网络拦截&#xff1a; 无响应 pass 中止 route.abort("aborted") 放行 route…

Hazel游戏引擎(013)Layers游戏的层级

文中若有代码、术语等错误&#xff0c;欢迎指正 文章目录 前言增加Layer后的主要类图项目相关代码项目流程效果 LayerStack类的错误 前言 此节目的 为完成008事件系统设计的第四步&#xff0c;将事件从Application传递分发给Layer层。 使引擎事件系统模块完整 Layer的理解 …

在VSCode下利用PlateFormIO开发Arduino的MicroROS遇到的一些问题

简介 我是按照鱼香ROS的教程【3.搭建PlateFormIO开发环境】进行的&#xff0c;但是在进行的过程中&#xff0c;遇到了一些问题&#xff0c;这里记录下来&#xff0c;供有同样问题的同学进行参考。其实只要你使用的板子的MCU是ESP32&#xff0c;都可以按照他这个教程进行操作。…

k8s实践之mysql集群搭建(十五)

先下载 k8s实践之mysql集群搭建资料 主从模式简介&#xff1a; 当master主服务器上的数据发生改变时&#xff0c;则将其改变写入二进制&#xff08;binlog&#xff09;事件日志文件中&#xff1b; slave从服务器会在一定时间间隔内对master主服务器上的二进制日志进行探测&am…

掌握Vue生命周期,让你的前端开发效率翻倍!

1 Vue实例 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Vue实例</title><script src../vue.js></script> </head> <body><div id"root"><!-- v…

位图以及布隆过滤器

本文主要讲解哈希思想的实际应用&#xff0c;位图和布隆过滤器。 位图 讲解位图之前我们先来解答这样一道腾讯的面试题 给40亿个不重复的无符号整数&#xff0c;没排过序。给一个无符号整数&#xff0c;如何快速判断一个数是否在这40亿个数中。【腾讯】 很多人立马就想到了用…

Seata TCC 模式理论学习、生产级使用示例搭建及注意事项 | Spring Cloud55

一、前言 通过以下系列章节&#xff1a; docker-compose 实现Seata Server高可用部署 | Spring Cloud 51 Seata AT 模式理论学习、事务隔离及部分源码解析 | Spring Cloud 52 Spring Boot集成Seata利用AT模式分布式事务示例 | Spring Cloud 53 Seata XA 模式理论学习、使用…

STL——set容器、map容器

初识STL **set容器/multiset容器****set容器——构造和赋值****set容器——大小和交换****set容器——插入和删除****set容器的查找和统计****set和multiset的区别****set的相关操作源码&#xff1a;****multiset的相关操作源码** **pair使用——pair队组的创建****set容器——…

FreeRTOS-定时器详解

✅作者简介&#xff1a;嵌入式入坑者&#xff0c;与大家一起加油&#xff0c;希望文章能够帮助各位&#xff01;&#xff01;&#xff01;&#xff01; &#x1f4c3;个人主页&#xff1a;rivencode的个人主页 &#x1f525;系列专栏&#xff1a;玩转FreeRTOS &#x1f4ac;保持…

2023全国计算机二级考试时间(全年各阶段考试时间安排)

2023全国计算机二级考试时间(全年各阶段考试时间安排) 2023年全国计算机二级考试时间分别为&#xff1a;3月25日至27日(上半年3月)、9月23日至25日(下半年9月)。 其中3月和9月开考全部级别全部科目&#xff0c;5月和12月考试开考一、二级全部科目&#xff0c;各省级承办机构可根…

RabbitMQ集群部署之镜像模式

RabbitMQ集群的普通模式中&#xff0c;一旦创建队列的主机宕机&#xff0c;队列就会不可用。不具备高可用能力。如果要解决这个问题&#xff0c;必须使用官方提供的镜像集群方案。 官方文档地址&#xff1a;https://www.rabbitmq.com/ha.html 1.镜像模式的特征 默认情况下&a…

离心式冷水机组

离心式冷水机组是利用电作为动力源&#xff0c;氟利昂制冷剂在蒸发器内蒸发吸收载冷剂水的热量进行制冷&#xff0c;蒸发吸热后的氟利昂湿蒸汽被压缩机压缩成高温高压气体&#xff0c;经水冷冷凝器冷凝后变成液体&#xff0c;经膨胀阀节流进入蒸发器再循环。从而制取7℃-12℃冷…

解决jvm内存溢出的方法

上一篇问题讲了怎么实现jvm内存溢出,现在已经实现了,那怎么去解决它呢. java.lang.OutOfMemoryError: GC overhead limit exceeded 简单来说&#xff0c;java.lang.OutOfMemoryError: GC overhead limit exceeded发生的原因是&#xff0c;当前已经没有可用内存&#xff0c;经…