一、实时监控

用户点击服务实例,系统显示服务实例-version下的api列表,

用户点击某个api的如下两个图标

1、API请求次数监控

横轴:时间,粒度为分钟

纵轴:请求访问次数

展示:失败数(红)、成功数(绿)、总数(黄)

存储:

  • 请求结束时,累计成功数到 instId_api_20171852_suc_cnt
  • 请求结束时,累计失败数到 instId_api_20171852_err_cnt
  • 请求结束时,累计调用总数到 instId_api_20171852_all_cnt

2、API请求时长监控

横轴:时间,粒度为分钟

纵轴:请求访问时长

展示:网关平均成功时长(绿)、服务端平均成功时长(黑)

存储:

  • 请求结束时,累计网关成功时长到 instId_api_20171852_suc_len
  • 请求结束时,累计服务端成功时长到 instId_svc_20171852_suc_len

3、记录到redis存储

redis中上述数据设置为默认120分钟失效,

以上1、2完成时,记录【请求监控统计日志】到elk。

二、日志格式

1、请求开始日志

请求日志  请求id  请求开发者  apiId 服务实例  网关请求url  客户端  网关开始时间 服务端开始时间 服务端结束时间 网关结束时间  客户端地址 成功/失败 服务提供者

@requestLog@@requestId@@devClientKey@@group-version-api@@网关url@ @instId@@apiReqTime@@svcReqTime@@svcResTime@@apiResTime@@clientHost@@succFlag/failFlag@@svcClientKey@

2、签名比对日志

签名比对失败    请求id             apiId                            服务实例  成功失败

@verifySign@ @requestId@ @group-version-api@ @instId@ @succFlag/failFlag@

3、请求监控统计日志(定时收集发送)

@devClientKey@ @instId@ @group-version-api@ @日期时间@ @小时@ @分钟@

@成功数@ @失败数@ @总数@

@网关平均请求响应时长(成功)@ @网关平均请求响应时长(失败)@

@服务端平均请求响应时长(成功)@ @服务端平均请求响应时长(失败)@

三、评审建议(传集)

1、监控指标缺少api url总的调用次数,api组的总调用次数

回复:API请求监控已经纳入,含三项指标:请求累计成功、累计失败和累计总数

2、缺少开发者视角的相关统计

回复:根据使用实例的监控,可以开放给开发者和管理员

3、监控功能应该包括top排行,比如一天内的总请求次数排行,消耗时长排行。类似druid的功能

回复:入库后再考虑!

4、日志:建议把url直接记录在日志中,不用再通过id进行查询。

回复:日志已经记录

api-gateway实践(06)新服务网关 - 请求监控的更多相关文章

  1. api-gateway实践(10)新服务网关 - OpenID Connect

    网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ...

  2. 阿里云API网关(13)请求身份识别:客户端请求签名和服务网关请求签名

    网关指南: https://help.aliyun.com/document_detail/29487.html?spm=5176.doc48835.6.550.23Oqbl 网关控制台: https ...

  3. api-gateway实践(02)新服务网关 - 运行环境

    一.服务网关的运行环境 1.服务配置中心 1.1.服务配置中心前台 前台 http://10.110.17.20/#/login:无源码,德奎部署在10.110.17.20的DockerStatck环 ...

  4. api-gateway实践(03)新服务网关 - 网关请求拦截检查

    参考链接:http://www.cnblogs.com/jivi/archive/2013/03/10/2952829.html 一.为什么要拦截检查请求? 防止重放攻击.篡改重放,进行使用规格检查 ...

  5. api-gateway实践(04)新服务网关 - 新手入门

    一.网关引擎环境 1.下载代码 2.搭建环境 3.打包部署 二.配置中心环境 1.下载代码 2.搭建环境 3.打包部署 三.创建业务实例 1.以租户身份登录配置中心,注册 group.version. ...

  6. api-gateway实践(13)新服务网关 - 断路保护/熔断机制

    参考链接:SpringCloud的Hystrix(五) Hystrix机制 新需求列表 1.在线测试 根据定义,生成输入界面, 点击测试, 验证参数,发起调用,返回执行结果 2.熔断保护 两个实现类: ...

  7. api-gateway实践(08)新服务网关 - 云端发布和日志查看

    一.发布应用 1.新建应用空间 1.1.新建应用空间 1.2.新建应用 1.3.上传程序包 2.创建应用引擎服务 3.发布应用 3.1.为应用容器绑定Web运行环境(应用引擎服务) 3.2.发布应用( ...

  8. api-gateway实践(07)新服务网关 - 手动发布

    应用地址:http://10.110.20.191:8080/api-gateway-engine/ 一.准备工作 1.xshell登陆云主机 1.1.配置链接 1.2.链接成功 1.3.关闭防火墙 ...

  9. [转载] 构建微服务:使用API Gateway

    原文: http://mp.weixin.qq.com/s?__biz=MzA5OTAyNzQ2OA==&mid=206889381&idx=1&sn=478ccb35294c ...

随机推荐

  1. Windows下安装TensorFlow

    最近学习TensorFlow,当然前提是装好框架,网上教程很多都是虚拟搭建或者是conda,从我的经验来讲,Windows目前只支持Python3.5版本安装,Python官网上有说明: 本人由于常用 ...

  2. 听说你买了 EOS ,连代码什么样都不知道?

    最近发现很多人投资了 EOS,却并不关心 EOS 目前的开发进度和技术细节,如果你投资了 EOS, 还有一定的技术基础,那就更应该关心 EOS 的开发情况了,下面我们就从 EOS 的源代码说起:   ...

  3. 教你如何前后端完全分离(非api、ajax)

    我的前后分离,不是api,不是ajax,我这里只讨论html与后端结合 前话 曾经风靡一时的dedecms相信做网站的十有八.九都知道,还有那么一些不是技术出生的人,通过看一下文档,也能访问出网站出来 ...

  4. 请详细描述(以硬盘启动)Linux系统从打开主机电源到进入登录界面整个过程的流程。

    1. 开机进行BIOS(BIOS(Basic Input / Output System)自检测系统外围硬件设备如CPU.内存.IO.显卡.鼠标键盘等.根据BIOS中设置的系统启动顺序搜索用于启动系统 ...

  5. eclipse的Debug模式下的快捷键

    主要快捷键: F5, F6, F7, F8的使用 F5:  进入当前方法 F6: 一步步执行 F7:  跳出方法, 返回到调用此方法的最后一条语句 F8: 继续执行,跳转到下一个断点的位置 示例: 在 ...

  6. spring 文件模板下载多种实现方式

    针对于文件的下载,我们有很多种实现方式.业务场景是这样子的,要实现Excel文件的导入和导出功能,问题对于java的POI操作没有问题,所以实现文件的下载就相对简单,只需要从数据库取出相关的数据,针对 ...

  7. 【Python】 hash值计算 hashlib & hmac

    hashlib & hmac *不是很清楚能不能把这种hash值取样算法称之为加密,但是似乎好像也是这么说的哈(非科班出身的野路子就是没这种基本知识的) ■ 基本用法 hashlib支持MD5 ...

  8. STL --> deque双向队列

    deque简介 deque是双向开口的连续性存储空间.虽说是连续性存储空间,但这种连续性只是表面上的,实际上它的内存是动态分配的,它在堆上分配了一块一块的动态储存区,每一块动态存储去本身是连续的,de ...

  9. Spring Cloud Contract

    http://www.infoq.com/cn/news/2017/04/spring-cloud-contract 在默认情况下,我们希望用户以JAR文件的形式将生产者存根和契约发布到Maven库. ...

  10. 基于hi-nginx的web开发(python篇)——表单处理和文件上传

    hi-nginx会自动处理表单,所以,在hi.py框架里,要做的就是直接使用这些数据. 表单数据一般用GET和POST方法提交.hi-nginx会把这些数据解析出来,放在form成员变量里.对pyth ...