开发者社区> 问答> 正文

建议对 RESTful 风格的URI进行监控信息合并

最近错误日志输出了一个信息: uriSessionMapFullCount is full 查看代码发现是 WebAppStat.java#getURIStat() 方法输出的, 原因可能是URI 日志的个数超过了默认的1000条。

能不能增加某个配置, 使得REST风格的多个请求的统计信息合并为一条。 例如:

/someApp/api/userinfo/1 /someApp/api/userinfo/2 /someApp/api/userinfo/3 /someApp/api/userinfo/...

原提问者GitHub用户renfufei

展开
收起
山海行 2023-07-05 21:30:45 181 0
3 条回答
写回答
取消 提交回答
  • 北京阿里云ACE会长

    对于RESTful风格的URI进行监控信息合并是一个很好的实践,可以提高监控系统的可用性和可靠性。这种方法可以将具有相同语义的URI的监控信息合并在一起,从而减少监控信息的冗余,并且可以更好地了解应用程序的运行状况。

    以下是一些可能的实现方法:

    根据URI模式进行合并
    可以根据URI的模式进行合并,例如,将所有以"/users/"开头的URI的监控信息合并在一起。这种方法可以将具有相同语义的URI的监控信息合并在一起,并且可以根据URI的模式来定制合并策略。

    使用标签进行合并
    可以为每个URI设置标签,例如,将所有与用户相关的URI设置为"user"标签。这种方法可以将具有相同标签的URI的监控信息合并在一起,并且可以根据标签来定制合并策略。

    使用动态配置进行合并
    可以使用动态配置来进行URI监控信息的合并。例如,可以在配置文件中设置一个正则表达式,用于匹配需要合并的URI。这种方法可以根据应用程序的实际需求来定制合并策略。

    2023-07-30 09:36:50
    赞同 展开评论 打赏
  • 值得去的地方都没有捷径

    对于你的需求,你可以通过自定义拦截器或过滤器来实现RESTful风格的URI监控信息合并。

    首先,你可以创建一个自定义的拦截器或过滤器,用于统计URI的请求信息。

    在拦截器或过滤器中,你可以使用一个Map来保存请求的URI及其统计信息。每次请求到达时,你可以根据URI将请求信息添加到Map中,或者更新已有的统计信息。

    然后,你可以通过定时任务或者监听器,定期输出合并后的统计信息。你可以在特定的时间间隔内合并相同URI的请求信息,生成一条合并后的统计信息。

    在输出合并后的统计信息时,你可以按照你希望的格式输出,例如将多个请求合并为一条,或者按照一定的规则进行合并。

    最后,你可以将这个拦截器或过滤器注册到你的Spring Boot应用中,并配置相关的参数,如请求路径、统计信息的保存时间等。

    需要注意的是,合并统计信息可能会导致一些细节的丢失,因此你需要在合并时权衡信息的准确性和统计的实时性。

    希望这些信息能够对你有所帮助,如果你有任何进一步的问题,请随时提问。

    2023-07-11 19:15:22
    赞同 展开评论 打赏
  • 看了一下源码,感觉可以在获取监控结果时,根据相关配置/模式对结果信息进行合并。至于前面的整个流程,都不用修改。

    原回答者GitHub用户renfufei

    2023-07-06 12:14:16
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载