• api-gateway实践(06)新服务网关


    一、实时监控

    用户点击服务实例,系统显示服务实例-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进行查询。

         回复:日志已经记录

  • 相关阅读:
    Python序列——字符串
    Python序列——序列操作
    Python数字
    Python对象
    Python基础
    关于PATH_INFO SCRIPT_NAME SCRIPT_FILENAME REDIRECT_URL 详解
    转:Nginx配置指令location匹配符优先级和安全问题
    转:mysql 创建一个用户,指定一个数据库
    【洛谷P3384】树链剖分
    【洛谷P1833】樱花
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/7340975.html
Copyright © 2020-2023  润新知