问题描述
我一直在从事涉及以下方面的要求:
- 创建一个可以被任何项目引用的库,该库将跟踪一些指标和信息,例如每个请求/响应的执行时间。所有这些信息都应该存储在内存中,而不要存储在任何其他数据源(例如数据库)中。
- 创建一个可以显示库收集的指标的网页
到目前为止,我想解决的是:
创建一个简单的Java项目(用作库),并使用@WebFilter
批注创建Web过滤器,例如:
@WebFilter(urlPatterns = {"/*"})
public class MetricGatheringFilter implements Filter {
@Override
public void doFilter (ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,servletexception {
//Gather the information here,using System.nanoTime() and some additional logic for any other information I would like to get
}
}
我认为对于需求的第一部分就足够了。我可以编译Java项目并导出为jar文件,然后将其作为库添加到要测试的Web项目中。
我不确定的是如何创建类似Web UI的东西来查看存储在内存中的指标。
我想到的最简单的方法是将度量标准存储在使用该库的任何Web应用程序的ServletContext之类的东西中,然后创建一个JSP文件,该文件可以引用存储的那些变量并将其显示给任何会喜欢看这些信息。
另一方面,我认为可行的方法是在过滤器内部实现一些逻辑,以将信息存储在某种临时文件中。然后,我可以创建一个类似“ Metrics Web UI Reporter”的东西,它是一个Java Web应用程序,可以查找临时文件并读取度量以“用户友好”的方式显示它们。
以防万一,我不要求在本文中回答整个代码,我只想知道是否还有另一种方法来实现这种要求。
此外,该要求还指出,我需要从头开始实现所有功能,而无需使用任何其他库或外部组件。
谢谢。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)