Web应用测试监控执行时间 -- JavaSimon

javasimon性能监控工具使用总结 javasimon性能统计工具,每次记录约消耗5纳秒 使用样例: PerfMonitor monitor = PerfManager.getWatcher("moduleName","customInfo") PerfPoint point = point.start(); doSomeThing(); point.stop; pom.xml需要加入依赖: &... 阅读详情

在系统性能调优时以前介绍过使用jmeter-plugins和VisualVM监控系统的总体性能,有时候要找出瓶颈便需要了解某些具体方法调用消耗的时间。VisualVm可以做到,不过如果做profiler就太耗资源了。个人觉得JavaSimon是一个很不错的选择。不仅可以方便的监控数据层,业务层,Web层的各自访问时间,还提供了Web页面查看统计数据和系统告警通知功能,非常不错。
描述一下基于Spring的Web系统中如何使用JavaSimon。

1. Web.xml 开启Web层统计,Web页面查看以及如何通知告警

<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
        <filter>
        <!-- simon统计filter -->
                <filter-name>simon-filter</filter-name>
                <filter-class>org.javasimon.javaee.SimonServletFilter</filter-class>
                <!-- optional -->
                <init-param>
                        <param-name>prefix</param-name>
                        <param-value>com.cloud.web</param-value>
                </init-param>
                <!-- optional basic plain-text console -->
                <init-param>
                        <param-name>console-path</param-name>
                        <param-value>/simon-filter</param-value>
                </init-param>
                <!-- optional, 需要报告的阀值 -->
                <init-param>
                        <param-name>report-threshold-ms</param-name>
                        <param-value>1000</param-value>
                </init-param>
                <!-- optional, 告警 - 显示到标准输出,可以自己定制报告 -->
                <init-param>
                        <param-name>request-reporter-class</param-name>
                        <param-value>org.javasimon.javaee.reqreporter.StandardRequestReporter</param-value>
                </init-param>
                <!-- optional, StopwatchSource instance -->
                <init-param>
                        <param-name>stopwatch-source-props</param-name>
                        <param-value>includeHttpMethodName=ALWAYS</param-value>
                </init-param>
        </filter>

        <!-- Web Console 显示Web统计信息,访问/simon-console 查看-->
        <filter>
                <filter-name>simon-console-filter</filter-name>
                <filter-class>org.javasimon.console.SimonConsoleFilter</filter-class>
                <init-param>
                        <param-name>url-prefix</param-name>
                        <param-value>/simon-console</param-value>
                </init-param>
        </filter>

        <!-- 大部分情况web查看console不是需要监控的,注意filter顺序 -->
        <filter-mapping>
                <filter-name>simon-console-filter</filter-name>
                <url-pattern>/*</url-pattern>
        </filter-mapping>

        <filter-mapping>
                <filter-name>simon-filter</filter-name>
                <url-pattern>/*</url-pattern>
        </filter-mapping>
</web-app>

2. Spring配置文件

注意这里只对Spring配置文件中定义的bean有效(spring-mvc中controller无效)

       <bean id="monitoringInterceptor" class="org.javasimon.spring.MonitoringInterceptor"/>

        <aop:config>
                <!-- name of the class or interface -->
                <aop:pointcut id="monitoringPointcut" expression="execution(* com.cloud.service.ServiceImpl.*(..))"/>
                <aop:advisor advice-ref="monitoringInterceptor" pointcut-ref="monitoringPointcut"/>
        </aop:config>

3. JDBC 层

直接使用simon的jdbc driver替代官方driver,或者包装datasource就可以达到目的。

可以在Web应用中查看不同层访问时间来定位系统瓶颈了。

Automon一个非常灵活的JAVA监控工具 Automon是一个非常灵活的JAVA监控工具,它结合了AOP(AspectJ)以及JDK和其他依赖库的功能特性,以声明方式去监控你的Java代码。它可以与JAMon,JavaSimon,Yammer Metrics,StatsD和像 perf4j,log4j,sl4j这样的logging库结合使用。 立即下载

相关推荐

ComfyUI的G-Dino模型加载器报错解决方案:从崩溃到重生

遇到G-Dino模型加载器报错不要慌,按照本文的步骤操作,99%的问题都能解决。模型文件正确下载到指定位置segment_anything节点安装完整且无冲突需要补充更多细节或故障排除方法吗?可以随时告诉我。

2301_78150483的博客 4023

Java Simon:Java应用的简单监控利器

Java Simon:Java应用的简单监控利器 项目介绍 Java Simon,全称为Java Simple Monitors for Java,是一个轻量级的Java监控API,旨在帮助开发者更好地理解和优化他们的应用程序。通过在代码中嵌入监控器(称为Simons),开发者可以轻松地对应用程序的性能进行实时监控。Java Simon支持两种类型的监控器:Counter用于计数,Stopwatc...

gitblog_00413的博客 405

Unity类银河战士恶魔城学习总结(P162 Improve skeleton提升敌人的效果)

为敌人添加了快慢刀

suzh1qian的博客 572

逐点分析,这样做Web项目性能测试分析更简单

性能测试结果分析的一个重要的原则是以性能测试的需求指标为导向。我们回顾一下本次性能测试的目的,正如所列的指标,本次测试的要求是验证在30分钟内完成2000次用户登录系统,然后进行考勤业务,最后退出,在业务操作过程中页面的响应时间不超过3秒,并且服务器的CPU使用率、内存使用率分别不超过75%、70%;

497

XC95144XL-10TQG144I Xilinx XC9500XL 高性能 CPLD

XC95144XL-10TQG144I 属于 Xilinx 的 XC9500XL 高性能 CPLD 家族,是一颗面向 3.3V 低电压系统的可编程逻辑器件。该器件以小封装、高速响应和良好的系统兼容性为设计目标,常用作系统控制/ glue-logic、I/O 缓冲、状态机、总线桥接与接口协议前端等场景中的可重编程逻辑单元。产品支持现场(in-system)编程与 IEEE-1149.1 JTAG 边界扫描,能在系统板上直接更新逻辑。

2403_90082736的博客 1060

嵌入式通讯协议全解析:UART、I2C、SPI、CAN与Modbus实战指南

通讯协议是嵌入式系统设计的核心基础,也是面试与工程实践中避不开的关键环节。从串口UART的异步收发,到I2C总线寻址与SPI高速全双工传输,再到RS485差分长距离通信、CAN总线多主仲裁机制,以及工业领域事实标准的Modbus RTU协议,每一种技术都对应着特定的应用场景与设计权衡。理解协议背后的物理层原理、时序特征和工程坑点,才能真正解决设备间通信的选型、调试与健壮性问题。本文从基础概念出发,系统梳理各类嵌入式通讯协议的工作机制,并结合实际代码示例与对比表格,帮助开发者在面对面试问题或项目设计时,构建从

weixin_42520573的博客 276

SPRING INTERCEPTOR 监控 JMS 发送接受性能

将spring aspectj 和 jms 整合了一下,用spring interceptor 监控jms 发送接受方法。通过方法注解 标记执行总次数,拦截器在指定的方法执行到目标执行次数后,将性能跟踪信息记录日志。 aop-conf.xml [code="java"] 1 ...

新博客地址:www.threeperson.com 302

SAP CBC 集成质量系统初始化接入实战指南

摘要 本文探讨了SAP S/4HANA Cloud Public Edition项目中质量系统的初始接入过程。质量系统并非开箱即用,而是需要经过SAP Central Business Configuration(CBC)的Scope and Organizational Structure阶段部署后才能具备完整功能。文章重点分析了几个关键环节:CBC里程碑确认的时机选择、Identity Authentication的初始管理员设置、Business Role Template的创建规范等。实施过程中需特

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1407

服务器性能监控javamelody配置使用

Documentation of JavaMelody Table of contents IntroductionOverheadJavaMelody Plugins Jenkins PluginAtlassian JIRA, Confluence and Bamboo PluginLiferay PluginSonar PluginGrails Plugin Jav

al_jin的专栏 4847

基于 InceptionNeXt 模块增强的 YOLOv8 模型:针对多尺度目标检测的改进与实现

modules.py。

know_F0727的博客 203

020、Sensor 供电设计:AVDD、DVDD、IOVDD 的上电时序与纹波要求

本文总结了图像传感器(Sensor)供电设计中的关键要点与常见问题:1. 三路供电特性差异:AVDD(模拟供电)对纹波最敏感(通常<30mVpp),DVDD需应对大电流瞬态变化,IOVDD需满足MIPI接口电压稳定要求。2. 上电时序至关重要,应遵循"模拟→数字→IO"的启动顺序,时序偏差可能导致初始化失败。3. 纹波控制需合理选择电容组合(如10μF+0.1μF),注意布局走线及电容ESR/ESL特性。4. 调试建议使用示波器多通道测量时序和纹波,重点关注传感器启动瞬间的电源特性。5. 经验教训包括预留设

sundong_81的博客 523

Java Simon--性能瓶颈分析工具

使用Java Simon监控系统中方法执行时间,帮助分析性能瓶颈。

cloud的技术积累 5569

Python - 多页pdf 合称为一页

尝试使用 ReportLab 来重画 pdf,但探索起来有点麻烦。重要的是解决手头这个问题,所以就算方法蠢,但简单完事。以下生成结果,最有一页 pdf 可能会显示在第一页,手动编辑下 pdf 即可;或者你也可以修改代码逻辑来完善。打印ppt,一页占用A4纸比较浪费,想多页合成一个 A4大小;安装 fitz,单独安装 fitz 使用可能会报错。将 PDF 拆分为 图片来保存。

AI工程化、开源分享、文档翻译、代码笔记 1425

Java 判断线程池 执行完毕

工作中,遇到很多情况需要使用线程,或者线程池。但往往我们需要dengda

Paul Xin 5984

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

深入浅出JProfiler

该文章来自阿里巴巴技术协会(ATA) 由于最近工作的原因,使用了JProfiler(8)来做性能瓶颈分析,发现这个工具使用起来确实挺方便,现在整理一下JProfiler相关知识(在google查了一通,没有我想要的)。 一.JProfiler是什么 JProfiler是由ej-technologies GmbH公司开发的一款性能瓶颈分析工具(该公司还开...

weixin_34244102的博客 2025

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Java TagSupport实现Web页面执行时间标签

 以下是本人在项目中实现的Web页面执行时间标签(和本博客中发布的web页面执行时间过滤器配合使用):package com.sunfairs.tags;import java.io.IOException;import javax.servlet.http.HttpServletRequest;import javax.servlet.jsp.JspException;

独行者的专栏 1724

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

统计WebService的调用者、调用函数、运行时间

系统WebServic分布太久了, 都不知道哪些系统在用? 调用的哪些函数?于是乎,写一个Soap Extension, 再加一个页面,来查询一下。 先看一下配制说明,和效果 web.config中 &lt;system.web&gt; &lt;compilation debug="true" targetFramework="4.0" /&gt; ...

weixin_34348174的博客 196

五大最佳开源java性能监控工具

如果你正在寻找性能监控工具,不妨看看以下推荐的这五款开源工具,这些工具目前已经可以替代付费工具了,你可以看看是否是你的最佳选择。本文推荐的五款开源工具目前是开源社区中最受欢迎的。   1. Stagemonitor   Stagemonitor提供了一个Java监控代理程序,它是使用集群应用程序堆栈构建的。意思是它旨在监控在多个服务器上运行的应用程序。该工具与时间序列数据库(TSDB)

Seeker-Wu的专栏 2万+

Java框架介绍-13个不容错过的框架项目

Java框架介绍-13个不容错过的框架项目 本文转自互联网,个人收藏所用。 下面,我们将一同分享各有趣且颇为实用的Java库,大家请任取所需、不用客气~ 1.极致精简的Java Bootique是一项用于构建无容器可运行Java应用的极简技术。该项目允许大家创建REST服务、Web应用、任务、数据库迁移等等,且一切都立足于模块实现。...

weixin_34238642的博客 992

StopWatch 监控Java代码运行时间和分析性能

我们在日常进行Java语言开发时,可能需要监控不同方法的运行时间,知道性能瓶颈在哪。利用springframework框架的工具类StopWatch可以快速方便的查看到每段代码运行的时间,准确确定性能瓶颈所在。 原文:http://blog.csdn.net/hj289860219/article/details/75262037 使用StopWatch类也很简单。

longfulong的专栏 1万+

使用Docker运行war包Java应用

在之前的文章Docker部署Spring Boot中,应用编译的结果是jar包,而在很多情况下J2EE应用的编译结果是war包。本节将使用Docker部署war包Java应用。 一、构建tomcat的基础镜像 下载并上传tomcat到linux服务器 在这里我使用的tomcat版本是8.5.33,上传后解压文件并重命名: $ tar -zxvf apache-tomcat-8.5.3...

AaronSimon的博客 2096

Shiro 自己实现登录后重新生成sessionid

学Spring Security来实现重新生成Session

cloud的技术积累 2万+
上一篇: Guava RateLimiter在Web应用中的使用
下一篇: Shiro 自己实现登录后重新生成sessionid
开心的D哥
博客等级 码龄22年 63粉丝 110原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值