一、实时监控
用户点击服务实例,系统显示服务实例-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的功能
回复:入库后再考虑!
