web_log_analyse 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
web_log_analyse 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 GPL-3.0
开发语言 Python
操作系统 跨平台
软件类型 开源软件
所属分类 管理和监控性能优化
开发厂商
地区 国产
提 交 者 jkklee
适用人群 未知
收录时间 2019-03-07

软件简介

web_log_analyse 是一个旨在基于 Web 日志进行故障排除和性能优化的工具,这不是一般所说的日志分析/统计解决方案,它不侧重于通常的 PV、UV 等展示,而是在指定时间段内提供细粒度(最小分钟级别)的异常定位和性能分析。

环境依赖:

    Python 3.4+

    pymongo-3.7.2+

    MongoDB-server 3.4+

功能

  1. 提供统一的日志分析入口:经由此入口,可查看站点在所有server上产生的日志的汇总分析;亦可根据时间段server两个维度进行过滤
  2. 支持对 request_uriipresponse_code 三大类进行分析;每一类又基于请求数响应大小响应时间三个维度进行分析。另外不同子项又各有特点
  3. request_uri 分析能直观展示哪类请求数量多、哪类请求耗时多、哪类请求占流量;另外可展示某一类请求在不同时间粒度里(minute, ten_min, hour, day)各指标随时间的分布变化;也可以针对某一 uri_abs 分析其不同 args_abs 各指标的分布
  4. IP 分析将所有请求分为3种来源(from_cdn/proxy, from_reverse_proxy, from_client_directly),三种来源各自展示其访问量前 N 的 IP 地址;并且可展示某一 IP 访问的各指标随时间的分布;也可针对某一 IP 分析其产生的不同 uri_abs 各指标的分布

特点

  1. 核心思想: 对request_uri进行抽象归类,将其中变化的部分以 “*” 表示,这样留下不变的部分就能代表具体的一类请求。实际上是换一种方式看待日志,从 “以具体的一行日志文本作为最小分析单位” 抽象上升到 “以某一功能点,某一接口或某一模块最为最小分析单位”
  2. 兼容plaintext和json格式的日志内容
  3. 配置方便,不需要写正则。只要将nginx中定义的log_format复制到config文件中即可
  4. 通过4分位数概念以实现对响应时间响应大小更准确的描述,因为对于日志中的响应时间,算数平均值的参考意义不大
  5. 支持定制抽象规则,可灵活指定请求中的某些部分是否要抽象处理以及该如何抽象处理
  6. 高效,本着谁产生的日志谁处理的思想,日志分析脚本log_analyse要在web服务器上定时运行(有点类似分布式),因而log_analyse的高效率低资源也是重中之重。经测试,在笔者的服务器上(磁盘:3*7200rpm RAID5,千兆局域网),处理速度在20000行/s~30000行/s之间
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (1)

加载中
有没有人用过,好不好用分享一下经验?
2019/05/13 16:28
回复
举报
更多评论
暂无内容
发表了博客
2019/03/24 21:45

ANNOTATION and analyse hello1.java

一、What is annotation? annotation的中文意思就是注解,注释的意思。注解也属于一种类型。它是在 Java SE 5.0 版本中开始引入的概念。它的形式跟接口很类似,不过前面多了一个 @ 符号。 维基百科的解释: 在Java计算机编程语言中,注释是一种可以添加到Java源代码的语法元数据。可以注释类,方法,变量,参数和包。与...

0
0
发表了博客
2019/03/24 22:49

ANNOTATION and analyse hello1.java

一、What is annotation? annotation的中文意思就是注解,注释的意思。注解也属于一种类型。它是在 Java SE 5.0 版本中开始引入的概念。它的形式跟接口很类似,不过前面多了一个 @ 符号。 维基百科的解释: 在Java计算机编程语言中,注释是一种可以添加到Java源代码的语法元数据。可以注释类,方法,变量,参数和包。与...

0
0
发表了博客
2013/08/20 13:42

用PROCEDURE ANALYSE优化MYSQL表结构

1 此方法可以帮助决定“列是否该被重定义为更小的数据类型” 2 可以帮助决定“一个列是否仅仅包含很少的不同值,如果不同值很少,那么可以定义为enum数据类型 3 通过2个值,告诉它不要建议采用enum数据类型 (1)最大元素数 the maximum number of elements (2)在定义中被允许的字符数 number of characters allowed i...

0
1
发表了博客
2016/03/12 12:04

编写GO的WEB开发框架 (十): Log和Access_Log

日常开发中,Log是必不可少的一部份,一个易用的框架,应该提供一套易用的日志处理方法,本篇来讲一下我是怎么实现日志相关处理的,内容包括日志的开关、日志记录和方法调用以及access_log的生成

0
1
发表于开发技能专区
2015/12/06 17:24

Log4j2 在WEB中的配置

Log4j是一个非常强大的日志工具,Log4j的2.x版本比1.x版本做了很多改进。因为在WEB项目中使用Log4j2遇到很多问题,例如404错误,日志输出的文件找不到,或者自定义的日志输出文件无效等。所以下面分享一些简单的Log4j2在WEB项目中的实例和需要注意的地方供大家参考。

5
7
发表了博客
08/04 16:36

Web自动化测试:加入log日志

日志是一个成熟的系统里不可或缺的一部分,对于自动化测试框架来说,最大的作用大概在于可以取代print()方法,并且可以在日志文件中回溯。这里我们引入log日志类,来代替print()记录输出测试过程中的关键信息。 一、日志等级 在日志中有五个等级debug、info、warning、error、critical 这里要注意的是:如果设置日志等级...

0
0
发表了博客
08/04 16:35

Web自动化测试:加入log日志

日志是一个成熟的系统里不可或缺的一部分,对于自动化测试框架来说,最大的作用大概在于可以取代print()方法,并且可以在日志文件中回溯。这里我们引入log日志类,来代替print()记录输出测试过程中的关键信息。 一、日志等级 在日志中有五个等级debug、info、warning、error、critical 这里要注意的是:如果设置日志等级...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
1 评论
6 收藏
分享
返回顶部
顶部