文档章节

查询日志过去一分钟的并发-python

 跬步
发布于 2013/03/02 23:22
字数 188
阅读 1003
收藏 19

该脚本作用用于查询日志过去一分钟内的并发量,并发单位位1分钟,结果打印在标准输出中,可以配合一些软件实现日志的并发实时监控,比如zabbix。

#! /usr/local/bin/python3

import sys
import re
import datetime
import os

def generate_previous_minutes():
    format='%d/%b/%Y:%H:%M'
    return (datetime.datetime.today()-datetime.timedelta(minutes=1)).strftime(format)

def check_logs(log_path,examine_minutes):
    regex_minutes=re.compile(examine_minutes)
    minutes_count=0
    step=10*1024*1024
    with open(log_path,encoding='Latin-1') as file:
        line=file.readline()
        while line:
            time_line=line.split(' ')[3][1:]
            if time_line>=examine_minutes:
                file.seek(file.tell()-step)
                file.readline()
                break
            file.seek(file.tell()+step)
            if file.tell()>=os.path.getsize(log_path):
                file.seek(file.tell()-step)
                file.readline()
                break
            file.readline()
            line=file.readline().strip()
        for line in file:
            line=line.strip()
            words=line.split(' ')
            if(regex_minutes.search(words[3])):
                minutes_count+=1
    print(minutes_count)

def main(log_path):
    previous_minutes=generate_previous_minutes()
    print(previous_minutes)
    check_logs(log_path,previous_minutes)

if __name__ == '__main__':
    log_path=sys.argv[1]
    main(log_path)

 

© 著作权归作者所有

粉丝 3
博文 15
码字总数 10527
作品 0
朝阳
私信 提问
新功能:日志服务IPython/Jupyter Notebook扩展发布

背景 IPython/Jupyter很流行 Jupyter的前身是IPython Notebook,而IPython Notebook的前身是IPython。如下可以看到起发展轨迹: IPython/Jupyter非常流行,从三个方面可以看到: 数据科学领域...

成喆
02/11
0
0
Python对象持久化学习整理

随着项目的深入,python对象持久化问题也随之而来。而在这之前,对于python对象持久化还停留在pickle时代,而这已无法满足当前项目发展的需要了,于是只好借助google疯狂的学习了一把,同时也...

索隆
2012/05/24
0
0
Hive 使用陷阱(Lock table) 排查过程

前言 业务部门使用python通过hive thrift api做数据统计,早段时间发现在频繁创建表的时候,接口会卡死。经过一番的排查,是因为hive的lock table manager特性对于hive server的接口服务不兼...

kisops
2013/08/11
0
6
Hive 使用陷阱(Lock table) 排查过程

前言 业务部门使用python通过hive thrift api做数据统计,早段时间发现在频繁创建表的时候,接口会卡死。经过一番的排查,是因为hive的lock table manager特性对于hive server的接口服务不兼...

snakelxc
2013/08/11
0
1
Python系列直播——深入Python与日志服务,玩转大规模数据分析处理实战(资料持续更新)

第一讲——使用IPython/Jupyter Notebook与日志服务玩转超大规模数据分析与可视化 直播时间: 2月21日(周四)20:00—21:00 直播介绍: IPython/Jupyter Notebook非常流行,但随着数据量越来...

成喆
03/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

搭建tftp服务

前言: 最近整理一些以前的学习笔记。 过去都是存储在本地,此次传到网络留待备用。 TFTP服务: TFTP:Trivial File Transfer Protocol 不重要文件传输协议 主要用来传送小文件,不支持认证和...

迷失De挣扎
今天
3
0
rest 的理解

rest:表现层状态转移。 什么是restful协议?https://en.wikipedia.org/wiki/Representational_state_transfer 使用restful的好处。 Rest是一种体系结构样式,他定义了一组用于创建web服务的...

xiaoxiao_go
今天
5
0
聊聊spring cloud的CachingSpringLoadBalancerFactory

序 本文主要研究一下spring cloud的CachingSpringLoadBalancerFactory CachingSpringLoadBalancerFactory spring-cloud-openfeign-core-2.2.0.M1-sources.jar!/org/springframework/cloud/o......

go4it
昨天
4
0
一篇文章搞定——JDK8中新增的StampedLock

一、StampedLock类简介 StampedLock类,在JDK1.8时引入,是对读写锁ReentrantReadWriteLock的增强,该类提供了一些功能,优化了读锁、写锁的访问,同时使读写锁之间可以互相转换,更细粒度控...

须臾之余
昨天
5
0
Android Camera原理之CameraDeviceCallbacks回调模块

在讲解《Android Camera原理之openCamera模块(二)》一文的时候提到了CameraDeviceCallbacks回调,当时没有详细展开,本文我们详细展开讲解一下。 CameraDeviceCallbacks生成过程: 《Android...

天王盖地虎626
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部