您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

一个拦截器和一个awk命令,秒查线上超时接口

时间:2019-12-10 10:21:06  来源:  作者:

一个拦截器和一个awk命令,秒查线上超时接口

 

 

介绍

Spring Mvc拦截器的作用很多,举几个例子

1.记录接口响应时间

2.判断用户是否登录

3.判断用户的权限

今天就用一个拦截器和一个awk命令,秒查线上超时接口

一个拦截器

我们要写自己的拦截器一般有两种方式。

1.实现HandlerInterceptor接口

2.继承HandlerInterceptorAdapter抽象类

我就直接继承了HandlerInterceptorAdapter抽象类,按需重写部分实现即可。

HandlerInterceptor有如下3个方法

preHandler:在controller执行之前调用

postHandler:controller执行之后,且页面渲染之前调用

afterCompletion:页面渲染之后调用,一般用于资源清理操作

写一个记录接口响应时间的拦截器

一个拦截器和一个awk命令,秒查线上超时接口

 

 

@Slf4j
public class SystemInterceptor extends HandlerInterceptorAdapter {

 @Override
 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
 request.setAttribute("request-starttime", System.currentTimeMillis());
 log.info("request enter:{}", request.getRequestURI());
 return true;
 }

 @Override
 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
 Long startTime = (Long) request.getAttribute("request-starttime");
 if (startTime != null) {
 long cost = System.currentTimeMillis() - startTime;
 log.info("request cost:[" + request.getRequestURI() + ", "
 + request.getQueryString() + "] " + cost);
 }
 }
}

配置拦截器

 

一个拦截器和一个awk命令,秒查线上超时接口

 

 

一个awk命令

awk是一个文本处理工具,通常用于处理数据并生成结果报告

语法格式

第一种形式

awk 'BEGIN{}pattern{commands}END{}' file_name
一个拦截器和一个awk命令,秒查线上超时接口

 

语法格式解释

BEGIN正式处理数据之前

pattern匹配模式

{commands}匹配命令,可能多行

END处理完所有匹配数据后执行

第二种形式

standard output | awk 'BEGIN{}pattern{commands}END{}'

awk的内置变量

一个拦截器和一个awk命令,秒查线上超时接口

 

内置变量含义

$0整行内容

$1-$n当前行的第1-n个字段(按照指定分隔符分割后)

NF(Number Field)当前行的字段个数,也就是多少列

NR(Number Row)当前行的行号,从1开始计数

FNR(File Number Row)多文件处理时,每个文件行号单独计数,都是从0开始

FS(Field Separator)输入字段分割符。不指定默认以空格或者Tab键分割

RS(Row Separator)输入行分割符。默认回车n

OFS(Output Field Sepatator)输出字段分割符。默认为空格

ORS(Output Row)输出行分隔符。默认为回车

FILENAME当前输入的文件名字

ARGC命令行参数个数

ARGV命令行参数数组

看一下/etc/passwd文件的内容

cat /etc/passwd

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

输出文件的每行内容

awk '{print $0}' /etc/passwd

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

输出第二列内容

需要指定分隔符:

awk 'BEGIN{FS=":"}{print $2}' /etc/passwd

x
x
x

不需要指定分割符,默认空格,tab键,多个也可以分隔(如一个空格+一个tab键)

show.txt文件内容如下

# 空格分隔
Python JAVA php
# tab键分隔
flink	hadoop	storm
awk '{print $1}' show.txt

输出如下:

python
flink

拦截器和awk命令都介绍完毕。

grep 'request cost' xxx.log | awk ' $7 >1000 {print $0}'  

上面这个命令就是打印xxx.log中接口响应时间超过1s的日志,相信经过前面的介绍,你已经看懂了

效果演示

省略了部分内容

[INFO] request cost:[/api/message/getKfConversation, null] 1005
[INFO] request cost:[/api/kf/meet, null] 1004


Tags:awk   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
一、前言linux 有很多工具可以做文本处理,例如:sort, cut, split, join, paste, comm, uniq, column, rev, tac, tr, nl, pr, head, tail.....,学习 linux 文本处理的懒惰方式(...【详细内容】
2021-08-05  Tags: awk  点击:(75)  评论:(0)  加入收藏
超越单行的 awk 脚本,学习如何做邮件合并和字数统计。• 来源:linux.cn • 作者:Dave Neary • 译者:Xingyu.Wang •(本文字数:6674,阅读时长大约:8 分钟) awk 是 U...【详细内容】
2021-01-14  Tags: awk  点击:(242)  评论:(0)  加入收藏
Hawk框架,是Android用于数据本地保存,是一个安全,简单的键值对保存框架。使用方法也是快捷简单。Hawk这个框架分为有两个版本,一个是1.0+的版本,另一个是2.0+的版本。本文介绍的...【详细内容】
2020-09-25  Tags: awk  点击:(299)  评论:(0)  加入收藏
分享下处理数据分析时,linux shell 两个比较基础的工具sed 指令非交互式的字符流编辑器,支持对多文件多行的管道处理sed [option] 'command' f.txtsed -n '2,3p...【详细内容】
2020-07-24  Tags: awk  点击:(77)  评论:(0)  加入收藏
grep/awk/sed查指定时间段日志情景重现:管理后台down了,项目的日志为4G多的一个文件,查询上午某段时间内的日志示例的日志格式:2020-07-09 10:15:46.635 [...-thread-3] ERROR c...【详细内容】
2020-07-18  Tags: awk  点击:(277)  评论:(0)  加入收藏
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的...【详细内容】
2020-05-11  Tags: awk  点击:(73)  评论:(0)  加入收藏
在 Linux 命令中,awk 命令常用于处理文本内容。下面基于实例介绍 awk 命令的常见用法。GNU gawkawk 既是一个命令,也是一种程序语言,它可以有不同的实现版本。在 Linux 系统...【详细内容】
2020-03-27  Tags: awk  点击:(76)  评论:(0)  加入收藏
本文大部分内容翻译自我开始学习AWK时看到的一篇英文文章 AWK Tutorial ,觉得对AWK入门非常有帮助,所以对其进行了粗略的翻译,并对其中部分内容进行了删减或者补充,希望能为对AW...【详细内容】
2020-01-15  Tags: awk  点击:(65)  评论:(0)  加入收藏
awk的命令是一种处理或分析文本文件的强大方法,特别是按行和列组织的数据文件。可以从命令行运行简单的awk命令。更复杂的任务应该作为awk程序(所谓的awk脚本)写入文件。awk命...【详细内容】
2019-12-19  Tags: awk  点击:(75)  评论:(0)  加入收藏
本文大部分内容翻译自我开始学习AWK时看到的一篇英文文章 AWK Tutorial ,觉得对AWK入门非常有帮助,所以对其进行了粗略的翻译,并对其中部分内容进行了删减或者补充,希望能为对AW...【详细内容】
2019-12-15  Tags: awk  点击:(65)  评论:(0)  加入收藏
▌简易百科推荐
近日只是为了想尽办法为 Flask 实现 Swagger UI 文档功能,基本上要让 Flask 配合 Flasgger, 所以写了篇 Flask 应用集成 Swagger UI 。然而不断的 Google 过程中偶然间发现了...【详细内容】
2021-12-23  Python阿杰    Tags:FastAPI   点击:(6)  评论:(0)  加入收藏
文章目录1、Quartz1.1 引入依赖<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version></dependency>...【详细内容】
2021-12-22  java老人头    Tags:框架   点击:(12)  评论:(0)  加入收藏
今天来梳理下 Spring 的整体脉络啦,为后面的文章做个铺垫~后面几篇文章应该会讲讲这些内容啦 Spring AOP 插件 (了好久都忘了 ) 分享下 4ye 在项目中利用 AOP + MybatisPlus 对...【详细内容】
2021-12-07  Java4ye    Tags:Spring   点击:(14)  评论:(0)  加入收藏
&emsp;前面通过入门案例介绍,我们发现在SpringSecurity中如果我们没有使用自定义的登录界面,那么SpringSecurity会给我们提供一个系统登录界面。但真实项目中我们一般都会使用...【详细内容】
2021-12-06  波哥带你学Java    Tags:SpringSecurity   点击:(18)  评论:(0)  加入收藏
React 简介 React 基本使用<div id="test"></div><script type="text/javascript" src="../js/react.development.js"></script><script type="text/javascript" src="../js...【详细内容】
2021-11-30  清闲的帆船先生    Tags:框架   点击:(19)  评论:(0)  加入收藏
流水线(Pipeline)是把一个重复的过程分解为若干个子过程,使每个子过程与其他子过程并行进行的技术。本文主要介绍了诞生于云原生时代的流水线框架 Argo。 什么是流水线?在计算机...【详细内容】
2021-11-30  叼着猫的鱼    Tags:框架   点击:(21)  评论:(0)  加入收藏
TKinterThinter 是标准的python包,你可以在linx,macos,windows上使用它,你不需要安装它,因为它是python自带的扩展包。 它采用TCL的控制接口,你可以非常方便地写出图形界面,如...【详细内容】
2021-11-30    梦回故里归来  Tags:框架   点击:(27)  评论:(0)  加入收藏
前言项目中的配置文件会有密码的存在,例如数据库的密码、邮箱的密码、FTP的密码等。配置的密码以明文的方式暴露,并不是一种安全的方式,特别是大型项目的生产环境中,因为配置文...【详细内容】
2021-11-17  充满元气的java爱好者  博客园  Tags:SpringBoot   点击:(25)  评论:(0)  加入收藏
一、搭建环境1、创建数据库表和表结构create table account(id INT identity(1,1) primary key,name varchar(20),[money] DECIMAL2、创建maven的工程SSM,在pom.xml文件引入...【详细内容】
2021-11-11  AT小白在线中  搜狐号  Tags:开发框架   点击:(29)  评论:(0)  加入收藏
SpringBoot开发的物联网通信平台系统项目功能模块 功能 说明 MQTT 1.SSL支持 2.集群化部署时暂不支持retain&will类型消 UDP ...【详细内容】
2021-11-05  小程序建站    Tags:SpringBoot   点击:(56)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条