mysql5.7用declare声明失败_「Java监控系列」用javamelody监控java应用

本文介绍了如何在Spring项目中集成JavaMelody进行性能监控,特别是对SQL的监控。通过添加依赖、配置web.xml和Spring监听器,实现对Java项目运行状态的图表化展示。同时,强调了安全设置,如启用登录验证,以保护监控信息。环境为JDK8、Tomcat7、Spring4.1.4和JavaMelody1.71.0。
摘要由CSDN通过智能技术生成

javamelody是用来监控java项目的,和之前介绍的psi-probe不同,javamelody只能监控一个项目,也就是说,你的每个项目都需要一个javamelody,它是一个jar包,你也可以理解成一个插件。

它提供一些图表让你知道项目的运行情况,可以按天、周、月、年、全部(从运行至今)来查看监控信息。这些信息是持久化的,保存在tomcat的temp目录下,里面有一些rrd文件。

对我来说,其最大的用处是用来监控sql,本文主要讲spring集成javamelody。如果本文不能对你提供帮助,请尝试阅读项目UserGuide或者项目GitHub地址

UserGuide里面还包括了javamelody和hibernate集成、安全管理器,真实用户体验等内容,由于我暂时用不到,没深入研究,在此抛砖引玉。

b1b1a88a56ecf75adefd82b057ef5fd2.png

本文环境:JDK8 ( javamelody要求JDK6以上 ) + apache-tomcat-7.0.88 + Spring 4.1.4 + javamelody1.71.0,数据库用的是Spring自带的JdbcTemplete

安装

添加依赖jar包

这里我用的是gradle,javamelody版本是1.71.0,下面也有maven依赖。

//gradle compile group: 'net.bull.javamelody', name: 'javamelody-core', version: '1.71.0'//mavennet.bull.javamelody javamelody-core 1.71.0

配置web.xml

这里需要注意的是官方说如果servlet API版本是在3.0以上的可以不用再web.xml里面配置东西,因为3.0以上支持模块化,即javamelody的jar包就是一个模块,jar包里面的META-INF/web-fragment.xml配置了启动javamelody的相关信息。

查看web.xml是否有声明版本信息比如version="3.0"就知道是什么版本。

我的web.xml声明的是version="3.1",按理说不用配置什么也能开启,但是第一次失败,我在web.xml里面配置了相关的filter/listener才开启,后来我又注释掉了依然可以用,反正,如果开启不了,加上一下配置信息试一下。

而且,javamelody的web-fragment.xml配置默认是不带登录验证的,这样谁都可以访问,及其不安全,下面的配置带登录验证。

javamelodynet.bull.javamelody.MonitoringFilter true authorized-userstomcat1:1, tomcat2:2javamelody/*REQUESTASYNCnet.bull.javamelody.SessionListener

下面是和Spring集成,监控JDBC的配置,在Spring的监听器里面将javamelody的sql监控配置加进去。

org.springframework.web.context.ContextLoaderListenercontextConfigLocation classpath:net/bull/javamelody/monitoring-spring.xml classpath*:spring-core.xml 

开启

最后访问http://ip:port/{你的应用名字}/monitoring,输入上文web.xml里面配置的账号和密码。

  • 主页面,上面可以选择时间段
96ab18f646115db308d539462fecd080.png
  • http监控,可以查看请求接口的信息
f725dda215393d469d72033ba3a6b77a.png
  • sql监控,查看sql执行信息
2fa75a54b2dfb13ef88cb1219dc46695.png
  • http错误信息,鼠标移上去会有错误详情
3cba5c9e9fbef8e862ebe659a48e42f7.png
  • 系统错误信息,鼠标移上去会有应用详情
d49c3498583357ba7cfc07bee1f60bf7.png
  • 下面是系统和线程的信息
8ea69c44a43d6c018b8c036364eb04ff.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DECLARE_MYSQL_PLUGIN宏的使用是用于在MySQL插件开发中声明一个自定义的MySQL插件。该宏在mysql_com.h头文件中定义。使用该宏需要在宏之后填写自定义插件的st_mysql_plugin结构的各个成员,并通过mysql_declare_plugin_end宏结束这个数组。\[1\]这个宏的使用可以参考plugin/daemon_example/daemon_example.cc文件中的例子,该例子是一个动态MYSQL_DAEMON_PLUGIN类型的插件,通过在Makefile.am文件中添加-DMYSQL_DYNAMIC_PLUGIN来定义。\[2\]这个宏的使用在MySQL 8.0.18版本中引入了一个新的功能,即支持Hash Join算法。如果优化器选择没有索引的情况下,会直接使用Hash Join,这个功能比MariaDB实现的要好。\[3\] #### 引用[.reference_title] - *1* *2* [Mysql源代码分析(5): Plugin架构介绍--转载](https://blog.csdn.net/weixin_36205186/article/details/113225861)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [mysql 5.7不支持declare_B站直播MySQL冲冲冲第一期文稿版](https://blog.csdn.net/weixin_39671374/article/details/111699497)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值