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

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. CentOS6.5升级autoconf版本,解决”Autoconf version 2.64 or higher is required“错误

    CentOS6.5升级autoconf版本,解决”Autoconf version 2.64 or higher is required“错误 https://blog.csdn.net/pretty ...

  2. Python的扩展接口[1] -> 串口通信

    串口通信 / Serial Communication 1 串口简介 / Serial Introduction 串行接口(Serial Interface)简称串口,通常为COM接口,数据发送方式为 ...

  3. Oracle remove duplicate

    DELETE FROM your_table WHERE rowid not in (SELECT MIN(rowid) FROM your_table GROUP BY column1, colum ...

  4. Guess Number Higher or Lower II -- LeetCode

    We are playing the Guess Game. The game is as follows: I pick a number from 1 to n. You have to gues ...

  5. SSO [ OAuth2.0 ]

    1) SSO英文全称Single Sign On,单点登录. SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统. 它包括可以将这次主要的登录映射到其他应用中用于同一个用户的 ...

  6. ASIHTTPRequest框架使用总结系列之阿堂教程3(异步请求)

    在上一节中,阿堂和网友们分享了ASIHTTPRequest框架对于get,post的同步请求方式.很显然,如果网速比较慢,查询的时候会一直很黑屏,直到请求结束界面才出现结果,这样用户体验肯定很不好了. ...

  7. 2017.7.18 linux下用户、组和文件的操作

    参考来自:<鸟叔的linux私房菜(基础学习篇)-第14章> 0 目的 在linux下搭建ELK环境时,因为elasticsearch不能在root下操作,所以要为其新增一个用户,以及随之 ...

  8. 性能测试篇 :Jmeter HTTP代理服务器录制压力脚本

    转载:http://www.cnblogs.com/chengtch/p/6067915.html 从loadrunner到jmeter,录制压力测试脚本好像都只支持IE,近来才知道jmeter还有自 ...

  9. 01.Hello Node.js

    程序下载:https://files.cnblogs.com/files/xiandedanteng/helloNodejs.rar 关键代码: var http=require('http'); v ...

  10. InternalNative.cpp

    1 /* * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Ver ...