| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 使用 JavaMelody 监控 Java EE 应用程序 -> 正文阅读 |
|
[Java知识库]使用 JavaMelody 监控 Java EE 应用程序 |
软件开发不仅仅是根据需求对应用程序进行编码并将其部署到生产环境中,因为真正的工作在交付后才真正开始:维护、改进和解决问题。为此,最好有一些数据。据说“如果你不能测量它,你就不能改进它”,在理想情况下,你计划测量你的应用程序,但通常你必须在生产中进行它以检测和诊断性能问题。有不同的方法来衡量 Java EE 应用程序,实现性能和监控统计数据的一个好工具是Javamelody,它具有低开销、非侵入性、信息丰富且易于设置,但仍然非常强大。
应用程序性能可以通过两种主要方法来衡量:应用程序使用的计算资源和应用程序用户看到的性能。通过测量这些量,我们得到了应用程序的经验性能基线,然后可以用来检测性能的变化。通过使用性能监控,这是一种非侵入式地收集或观察正在运行的应用程序的性能数据的行为,我们可以通过测量来识别或隔离应用程序实际操作中的潜在问题,而不会对运行时响应性或吞吐量产生严重影响。 有不同的方法可以实现性能和监控统计数据,在开发过程中计划测量应用程序的性能很有用,因为稍后您肯定想知道它的性能。您可以通过利用不同的基于 JMX 的工具(如Metrics和Servo?)来做到这一点,但如果您没有真正计划好,您仍然可以选择。您可以使用标准 JDK 工具(jconsole、jstat、jmap、jstack、hprof)等工具进行低级 JVM 监控或一些监控应用程序(如Javamelody)。由于开发中的时间总是稀缺的,因此部署像 JavaMelody 这样的工具非常有用,它可以快速轻松地访问性能监控。但如果你对一些窄焦测量感兴趣,你 使用 JavaMelody 进行监控JavaMelody是一个开源 (LGPL) 应用程序,用于监控 QA 和生产环境中的 Java 或 Java EE 应用程序服务器。是根据用户对应用程序的使用情况,对应用程序实际运行情况进行衡量和统计的工具,主要是基于请求的统计和可以查看当前日、周、月、年的演化图或自定义期间。可以在 HTML 页面上查看统计数据,并通过电子邮件将其作为 PDF 报告发送。 JavaMelody 列出了以下用例:
配置设置 JavaMelody 非常简单,用户指南中介绍了所需的步骤。通过自动发现环境,将 JavaMelody 集成到您的应用程序可以在不到 10 分钟内完成:它只需要复制 2 个 jar 文件并在 xml 文件中添加 10 行。但是对于更详细和更广泛的测量,您需要在 xml 文件中添加更多行,这里是我为我们的 Wicket、Spring、JPA、Hibernate -Java EE 项目所做的更改。 JavaMelody 和依赖项 使用 Maven2 可以轻松获取 JavaMelody 及其依赖项,您只需要添加javamelody-core,如果您想在pom.xml中也有 iText 的 PDF 报告:
监控应用 JavaMelody 只需要在WEB-INF/web.xml中 webapp 的 servlet 描述之前有一个监控过滤器,甚至不需要用户指南中描述的那个。但通常您需要比web.xml中至少 10 行多一点。 通过添加customResourceFilter,您可以获得自定义外观,您可以使用url-exclude-pattern正则表达式模式从统计信息中排除一些 url,eamil-parameters 用于每周报告,并且通过包含monitoring-spring.xml,您可以使用 Spring 监视 DataSource使用 Spring 初始化的后处理器和对象。 春季安全配置 为了限制对监控统计的访问,我在 Spring Security 的applicationContext-security.xml中添加了以下内容。还有其他安全选项。这里的关键是确保web.xml中的监控过滤器(上图)是在 Spring Security 过滤器链之后定义的。
监控 SQL 和数据源 为了监控数据源和 SQL,我刚刚将 jndi-lookup 添加到applicationContext-persist.xml。启用JDBC 监视的其他选项在用户指南中进行了描述。
商业外墙(春季) 如果要监视的应用程序包含一些由 Spring、EJB 或 Guice 初始化的对象,则它们的方法执行也可以添加到统计信息中。正如用于监控 Spring Business 门面的用户指南中所述,有几个选项,例如使用applicationContext-web.xml中的 JdkRegexpMethodPointcut,您可以使用正则表达式捕获对象,例如“所有名称中包含 Service”的对象。
EHCache 统计 如果您还想查看 EHCache 统计信息,请将statistics="true"添加到ehcache.xml配置文件。
数据库信息和统计 JavaMelody 已经显示了数据源和 SQL 信息,但它也可以显示有关数据库的信息和统计信息,例如累积时间中最长的请求,并显示 CPU 时间和基本成本。为了显示该信息,受监控应用程序使用的数据库中的用户必须具有读取这些信息和统计数据的必要权限。 在 Oracle 数据库中,请求实际上意味着 报告 还可以通过电子邮件将每周、每日或每月的报告以 pdf 格式发送给一个或几个人。它需要用于 webapp 的 iText 库和用于邮件会话的服务器中的 Java 的 JavaMail 和 Activation 库。 使用 WebLogic,您可以在 webapp 的web.xml?(上图)中添加一些电子邮件参数,并在 WebLogic AdminServer 中配置邮件会话:Services > Mail Sessions以及 JNDI Name 和 JavaMail 属性。该报告提供的信息与您在监控网页中可以找到的相同信息具有高级和详细的信息。 统计存储 Javamelody 数据存储在磁盘上的文件中,有两种类型的文件:*.rrd 文件用于 RRD 格式的图形值(使用 jrobin 库)和 *.ser.gz 用于统计值。 默认情况下,性能统计信息存储在 temp/javamelody 目录中,这意味着在 Linux 中是/tmp/javamelody,在 Windows 中,当在 Eclipse 中运行 webapp 时,例如 Users/developer/AppData/Local/Temp/javamelody。如果要重置计数器,只需删除所有文件。可以通过storage-directory参数更改位置,如果目录名称以“/”开头,则视为绝对路径,否则视为相对于临时目录。 还可以选择使用集中收集服务器来存储统计数据并监控多个应用程序。 查看性能监控在您设置您的 web 应用程序以进行监控后,您可以在 URL 上查看统计信息,例如取决于您的配置。 开发中的一些示例 JavaMelody 统计信息: 有关 CPU、内存等的图表。 HTTP 请求 SQL信息 详细的 SQL 信息 春豆 其他信息,如系统、线程、缓存 高架监控和过滤并非没有成本,JavaMelody wiki 上已经讨论过监控的开销。据说开销非常低,可以在质量保证环境中持续启用,如果在 QA 中没有出现问题,也可以在生产环境中持续启用。只需很少的开销,您就可以知道在 QA 或生产服务器中需要优化什么,因此 JavaMelody 的开销实际上是负数。 讨论包含一些注释:
概括“如果你不能衡量它,你就不能改进它。”?不管你怎么做,但如果你想使用真实的用户数据和环境,只需使用 Javamelody 等性能监控工具以非侵入方式进行。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 3:10:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |