You need to enable JavaScript to run this app. Java EE应用请求监控工具选型:统计每秒HTTP请求、追踪失败请求对接Grafana
优惠活动
大模型
产品
解决方案
定价
更多

Java EE应用请求监控工具选型:统计每秒HTTP请求、追踪失败请求对接Grafana

Java EE 自研应用请求维度监控选型方案

应用侧埋点采集选型

核心设计目标为无侵入、全量覆盖应用入站请求,不耦合业务代码

  • 首选方案:Micrometer + 通用 Servlet Filter 拦截链
    这是Java生态对接Grafana监控的标准埋点实现,对所有部署在Tomcat/Jetty/Undertow上的Java EE应用兼容,不需要修改业务代码:
    • 内置的http.server.requests计时器指标可直接统计全量入站HTTP请求,按请求路径、HTTP方法维度打标签,聚合后即可精准计算每秒接收的请求总规模,不需要手写计数逻辑
    • 可在Filter拦截层自动捕获两类失败请求:一是响应状态码≥400的返回结果,二是业务层抛出的未捕获异常,通过给指标增加status、error_type标签,即可自动对所有失败请求按失败类型(4xx客户端错误、5xx服务端错误、自定义业务异常)分类统计,不需要额外做日志解析
  • 轻量替代方案:自定义拦截计数器(适配无Spring依赖的老旧Java EE应用)
    如果应用没有引入Spring生态,可直接实现javax.servlet.Filter接口,在拦截链中实现两个核心计数逻辑:
    • 用滑动窗口算法维护近1秒的全局请求计数,直接暴露无依赖的HTTP指标端口
    • 在拦截层记录失败请求的路径、状态码、异常类型,将这些短值转成带标签的可采集指标,避免超长内容拖垮存储

指标存储选型

核心要求是和Grafana无缝对接,减少二次开发成本

  • 首选适配存储:Prometheus
    和Micrometer为原生配套组件,埋点侧仅需引入对应的注册器依赖,即可暴露标准的指标拉取端点,Prometheus会按固定周期采集所有请求指标,不需要做格式转换:
    • Grafana原生内置Prometheus数据源插件,配置完成后可直接拉取采集到的指标做可视化
    • 基于内置的PromQL语法,可快速实现QPS统计、失败请求分类占比、单接口失败率排行等面板,不需要自定义开发查询逻辑

需求匹配校验

全方案完全覆盖提出的全部监控目标:

  • 针对每秒HTTP请求总规模统计:通过Micrometer采集的请求计数指标,搭配rate()聚合函数即可计算不同时间窗口的请求规模,精度可根据业务需求调整
  • 针对失败请求识别记录:所有失败请求的类型、关联请求路径、发生时间都会作为指标属性存储,不需要额外搭建日志检索系统即可在Grafana面板中展示各类失败请求的实时数据
  • 针对Grafana接入要求:全链路没有自定义协议,可直接导入Grafana官方提供的Java应用监控模板,微调面板内容即可上线

避坑提示

  • 不要将失败请求的完整请求体、超长异常栈作为指标标签存储,会导致指标基数爆炸,拖垮监控存储,仅保留短文本的错误类型、状态码即可
  • QPS统计的聚合窗口不要设置过长,否则会平滑掉实时请求波动,导致统计的每秒请求规模和实际值存在偏差
  • 老旧Java EE应用引入Micrometer时,仅需引入核心埋点和Prometheus注册器两个依赖即可,不需要引入整个Spring Boot监控全家桶,避免引入额外版本兼容问题

内容的提问来源于stack exchange,提问作者noob123

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.30 03:54:06