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库结合使用。 立即下载

相关推荐

【信号与系统实战解析】—— 拉普拉斯变换在电路分析中的关键应用

本文深入解析了拉普拉斯变换在电路分析中的关键应用。通过将时域微分方程转换为复频域的代数方程,系统化处理初始条件,并利用零极点图分析电路稳定性与频率响应。文章以RLC串联电路为例,详细演示了s域建模、性质运用及综合分析方法,为工程师提供了分析动态电路的强大工具与清晰视角。

weixin_29093017的博客 174

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

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

gitblog_00413的博客 405

LBM模式学习·保姆级安装及初步使用教程

在学习LBM的过程中,我感觉可供参考的材料较为有限,对于一个独立学习LBM模式的初学者非常不友好(我就是这个初学者哈哈),因此萌生了写一篇保姆级的LBM模式教程,并将我踩过的坑一一指出,有助于后来者更快地上手该模式,而非半途而废。

weixin_42762673的博客 1万+

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

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

497

Ansys Maxwell磁场仿真入门:无线传能线圈自感与互感计算全流程

本文详细介绍了使用Ansys Maxwell进行无线充电线圈磁场仿真的全流程,包括模型建立、求解器设置、电感参数提取及优化策略。通过实战案例,帮助工程师掌握线圈自感与互感计算技巧,提升无线充电系统设计效率与精度。重点解析了Maxwell在磁场仿真中的关键应用,适用于电磁场仿真初学者和进阶用户。

weixin_29047545的博客 438

C# 进程间 双内存共享 高帧率图像传输

演示了两个进程之间通过 双内存共享 的方式, 来实时处理图像,并以高帧率(40~60FPS)传输的基本示例。 进程间内存共享的优点:高性能、低延迟、资源效率高、简单可靠。 适用场景:实时图像处理、大数据传输、多进程协作、实时监控系统,等等。

qianqiansd 1996

SPRING INTERCEPTOR 监控 JMS 发送接受性能

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

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

解决Windows无法卸载补丁的实用方法

无法卸载Windows补丁可能是一个棘手的问题,但通过上述方法,你应该能够找到解决方案。无论是通过控制面板、命令提示符还是手动重置Windows更新组件,都有可能成功卸载问题补丁。如果所有方法都无效,系统还原将是一个值得尝试的备选方案。希望这篇文章能帮助你解决无法卸载补丁的问题。

mmoo_python的博客 1万+

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

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

al_jin的专栏 4847

NTN(三) Timing

这篇看下k_offset和k_mac,如38.300所述,k_offset是配置的调度偏移量,需要大于或等于service link RTT和Common TA之和;k_mac 是配置的偏移量,需要大于或等于 RP 和 gNB 之间的 RTT。 相关参数会通过RRC层NTN-config配置,其中的cellSpecificKoffset-r17和kmac-r17主要用于各种Timing场景的偏移。 kmac:如果DL和UL frame timing 在 gNB端未对齐,网络端

asd199086的博客 4826

华为自研 ERP、Oracle EBS 与 SAP 上线时系统配置思路设计差异深度分析

本文对比分析了华为自研ERP、Oracle EBS和SAP S/4HANA三大ERP系统在上线配置思路上的核心差异。从架构设计看,华为采用分布式微服务架构,SAP采用分层服务架构,Oracle采用集中式一体化架构;在模块配置上,华为以业务场景为导向,SAP基于行业模板,Oracle强调模块独立性;数据迁移方面,华为侧重业务规则清洗,SAP注重数据质量监控,Oracle依赖标准化工具;流程适配上,华为系统随流程调整,SAP在框架内优化,Oracle需定制开发;定制开发模式差异明显,华为采用插件化扩展,SAP使

金牌架构师 1452

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

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

cloud的技术积累 5569

ABAP CDS View 从入门到精通教程第一篇:ABAP CDS View 在 SAP 技术体系中的重要地位

摘要:本文介绍了SAP开发技术专家提供的多套SAP开发教程,涵盖ABAP、UI5、Fiori、OData、BTP等技术领域。重点阐述了ABAP CDS View在SAP S/4HANA中的核心地位,作为虚拟数据模型(VDM)的关键技术,它实现了OLTP和OLAP的统一处理。文章还说明了学习CDS View的前置条件,包括需要SAP NetWeaver 7.50 SP01或更高版本系统,以及使用SAP ABAP Development Tool进行开发实践。作者具有16年SAP开发经验,这些教程形成了完整的S

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

Java 判断线程池 执行完毕

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

Paul Xin 5984

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

深入浅出JProfiler

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

weixin_34244102的博客 2025

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

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

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

独行者的专栏 1724

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

统计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、付费专栏及课程。

余额充值