监控接口调用次数,是为了测试客户端可能会异常频繁的调用服务端接口,出现性能问题。

AnyProxy是一个开放式的HTTP代理服务器。

github: https://github.com/alibaba/anyproxy/tree/4.x

主要特性包括:

  • 基于Node.js,开放二次开发能力,允许自定义请求处理逻辑
  • 支持Https的解析
  • 提供GUI界面,用以观察请求

安装

npm install -g anyproxy@beta #对应的AnyProxy为4.0Beta版

启动

  • 命令行启动AnyProxy,默认端口号8001
anyproxy
  • 启动后将终端http代理服务器配置为127.0.0.1:8001即可
  • 访问http://127.0.0.1:8002 ,web界面上能看到所有的请求信息

编写规则接口文档

var fs = require('fs'); 

// 接收命令行传参,给文件命名
var arguments = process.argv.splice(2);
var file = '/Users/testMac/Documents/tools/apimanage-tomcat-8.0.24/webapps/apimanage/anyproxy/flow_' + arguments[3] + '.txt';
// 删除文件
// fs.unlinkSync(file);
var url;
var requestLength;
var responseLength; module.exports = {
// 获取接口的请求流量
*beforeSendRequest(requestDetail) {
if ((requestDetail.url.indexOf('iget') != -1) || requestDetail.url.indexOf('luojilab') != -1) {
url = requestDetail.url;
requestLength = requestDetail.requestData.length; return null;
}
}, // 获取接口的响应流量
// 存储到文件
*beforeSendResponse(requestDetail, responseDetail) {
if ((requestDetail.url.indexOf('iget') != -1) || requestDetail.url.indexOf('luojilab') != -1) {
responseLength = responseDetail.response.body.length;
fs.appendFile(file, url + ',' + requestLength + ',' + responseLength + '\n', 'utf8', function(err) {
if(err) {
console.log(err);
} });
return null;
}
}, };

存储格式

#具体接口,#请求流量,#响应流量
http://xxxxxx,455,278
https://xxxxx,0,31643
http://xxxxxx,345,63
http://xxxxx,345,102
http://xxxxx,345,73
http://xxxxxx,345,87
http://xxxxxx,345,102
http://xxxxxx,345,101
http://xxxxxx,345,102

系统展示页面

后端处理逻辑:如有相同的接口url,次数相加,流量相加。

每次点击“启动代理”,都会启动一个新的代理,端口自增,同时新建一个存储数据文件。并弹出toast提示配置信息,

然后点击刷新,后端解析本次代理的txt存储文件,展示到列表。

借助Anyproxy实时监控接口调用次数和流量的更多相关文章

  1. awk 按小时 统计接口调用次数

    #统计所有接口总量awk -F ' ' '{a[$7]++} END{for(i in a){print i,a[i] | "sort -r -k 7"}}' accesslog/ ...

  2. 记一次接口调用耗时服务端PHP-FPM配置调优

    最近测试人员不时有反馈,APP首页打开会出现除了基本的页面布局,需要展示数据的地方都是空白. 想着最近首页接口有过调整,新增数据.会不会是接口改动导致的?? 但APP首页接口都是读取redis的,应该 ...

  3. DUBBO监控,设置接口调用数据的上报周期

    目录 DUBBO监控,设置接口调用数据的上报周期 dubbo已有的监控方案 针对已有方案的改进 DUBBO监控,设置接口调用数据的上报周期 dubbo是目前比较好用的,用来实现soa架构的一个工具,d ...

  4. EasyNVR流媒体服务器网页兼容调试:ie浏览器下的接口调用成功但页面无法显示实时的数据

    许多问题很难在开发的过程中就想的面面俱到,都是在实际应用.调试的过程中一一的优化的.由于easynvr的受众越来越多,因此也出现了好多在开发之初并没有留意的一些细节.我这次发现的问题就是给客户远程解决 ...

  5. 【redis】redis实现API接口调用调用次数的限制

    redis实现API接口调用调用次数的限制 参考地址:https://bbs.csdn.net/topics/391856106?page=1 参考地址:https://www.cnblogs.com ...

  6. Jmeter实时监控+SpringBoot接口性能实战

    性能测试 Jmeter实时监控+SpringBoot接口性能实战 自动化 SpringBoot Java Jmeter实时监控+SpringBoot接口性能实战 一.实验目的及实验环境 1.1.实验目 ...

  7. 告别诊断烦恼 | 应用实时监控 ARMS 上线智能和实时诊断功能

    为什么要做这个功能? 作为一款应用性能监控产品,我们通常会给用户展示两类数据: 第一种是统计数据:用户通过使用统计数据设置报警(比如应用响应时间大于2s),缩小问题范围(比如报警时间范围内,是哪一个接 ...

  8. 大众点评cat实时监控简介及部署

    简介 背景 CAT(Central Application Tracking)是由吴其敏(前大众点评首席架构师,现携程架构负责人)主导设计基于Java开发打造的实时应用监控平台,为大众点评网提供了全面 ...

  9. 云极知客开放平台接口调用方法(C#)

    云极知客为企业提供基于SAAS的智能问答服务.支持企业个性化知识库的快速导入,借助语义模型的理解和分析,使企业客户立即就拥有本行业的24小时客服小专家.其SAAS模式实现零成本投入下的实时客服数据的可 ...

随机推荐

  1. css伪类元素:after 的多功能用法——任意大小的底边框

    需求用法出现的背景: 由于项目UI的优化,项目中所有tab导航选中的状态都是统一样式书写的,之前都是用的border-bottom,新的需求如果用以前的本办法就是定位一个选中边框在底部,但是涉及的模板 ...

  2. Wannafly挑战赛4 A解方程【二分/set/hash求解方程】

    https://www.nowcoder.com/acm/contest/35/A 题目描述 给出n个整数和x,请问这n个整数中是否存在三个数a,b,c使得ax2+bx+c=0,数字可以重复使用. 输 ...

  3. POJ 3368 Frequent values(线段树区间合并)

    [题目链接] http://poj.org/problem?id=3368 [题目大意] 有一个有序序列,要求区间查询出现次数最多的数 [题解] 维护每个区间左端点和右端点,以及左右的长度,还有区间的 ...

  4. activity间回传数据

    1,布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android ...

  5. Radius报文解析

    RADIUS ,是远程认证拨号用户服务的简称.RADIUS原先设计的目的是为拨号用户进行认证和计费.后来经过多次改进,形成了一项通用的认证计费协议,主要完成在网络接入设备和认证服务器之间承载认证.授权 ...

  6. 不输入用户名密码通过跳板机登录到线上linux机器

    问题: 一般情况下,公司所有的服务器都在内网,公网访问.管理服务器都要先通过登录一台跳板机,然后再由跳板机登录到相应的服务器进行操作,跳板机与服务器的连接都是内网地址.我们经常看到的现象就是下图这样, ...

  7. Python学习笔记——基本数据结构

    列表list List是python的一个内置动态数组对象,它的基本使用方式如下: shoplist = ['apple', 'mango', 'carrot', 'banana'] print 'I ...

  8. java拦截器与过滤器打印请求url与参数

    HttpServletRequest httpServletRequest = (HttpServletRequest) request; HttpServletResponse httpServle ...

  9. Introduction to the TestFlight SDK

    https://developer.apple.com/testflight/ When you want to test an app on your device, usually you plu ...

  10. util.select.js

    ylbtech-JavaScript-util: util.select.js 筛选工具 1.A,JS-效果图返回顶部   1.B,JS-Source Code(源代码)返回顶部 1.B.1, m.y ...