问题标签 [java-melody]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
118 浏览

java - 如何使 JavaMelody 与 SparkJava 一起工作?

如果我想对 SparkJava 的嵌入式 Jetty 服务器使用简单配置,将JavaMelodySparkJava集成的最佳方法是什么?

这就是我启动 SparkJava 的方式:

这就是我开始 javamelody 的方式:

这种 JavaMelody 启动的问题在于它创建了另一个码头服务器。它适用于 Spring 和 Hibernate,因此您可以看到所有统计信息,但您看不到 HTTP 请求统计信息,因为它是另一个码头服务器。

所以确切的问题是:如何使用 SparkJava 启动 JavaMelody,以便您可以看到 JavaMelody 中的所有统计信息,包括 Http 统计信息。

ps:反射黑客作为解决方案对我来说是可以的

0 投票
1 回答
579 浏览

java - 与 JavaMelody 集成后,每次 Rest 调用都会出现 404

我一直在使用 spring boot、java 8、tomcat 8.5 等开发一个 web 应用程序。我有一堆 Rest Controller,在我与 JavaMelody 集成之前,一切都运行良好。我遵循了专注于 Spring Boot 的官方 JavaMelody 指南(https://github.com/javamelody/javamelody/wiki/UserGuideAdvanced#spring-boot-app)。

JavaMelody 现在可以正常工作,因为我可以毫无问题地访问 /monitoring,但在 Web 应用程序的其余部分中,每次 Rest Api 调用我都会收到 404 Not Found。

我一直在搜索,但我没有找到与此相关的任何帮助,因为似乎最常见的问题是 /monitoring 上的 404,我运行良好。

提前致谢。

编辑 如果我删除 JavaMelodyConfiguration.java 一切都会重新开始工作。

编辑 2 我意识到如果我从其余控制器中删除 @PreAuthorize 注释(Spring Security),服务就会工作,所以看起来问题来自使用 Spring Security 和 JavaMelody。关于配置它们的任何提示?

0 投票
1 回答
726 浏览

spring-security - JavaMelody 和 Spring 安全性

我一直在使用 Spring Boot 和 Spring Security 开发一个 Web 应用程序。

在我与 JavaMelody 集成之前,一切都运行良好。现在,每个带有注释的 REST API 调用@PreAuthorize都给出了 HTTP 状态404

如何配置 JavaMelody 以使用 Spring Security?我按照官方指南将 JavaMelody 集成到 Spring Boot 应用程序(https://github.com/javamelody/javamelody/wiki/UserGuideAdvanced#spring-boot-app)中,所以 JavaMelody 正在工作,但是......我没有找到关于我的情况的任何信息。

0 投票
2 回答
492 浏览

garbage-collection - 如何使用 java melody 自动执行垃圾收集?

我使用 java melody 来监控生产环境中的内存使用情况。要求是内存不应该超过256MB/512MB

我已经做了最大的代码优化,但仍然是使用,448MB/512MB 但是当我在 java melody 中手动执行垃圾收集器时,内存消耗是109MB/512MB

0 投票
1 回答
1211 浏览

java - 如何将 web.xml 代码转换为 java melody 的 java 配置

是否可以从项目中完全消除 web.xml 并将其转换为 Java 配置?

如何将以下 web.xml 转换为 java 配置?

我已经通过几个链接来理解这一点

其中一些是: 如何用应用程序上下文配置文件替换 web.xml?

但是找不到任何教程/博客如何将 web.xml 的每个成员替换为对应的 java 配置。如果有任何可用的东西,那将非常有帮助。

例如,一些过滤器来自库,我们只需要在 web.xml 中声明功能即可。如何在 java config 中实现相同的功能(用 java config 替换整个 web.xml)

0 投票
2 回答
1120 浏览

java - 使用的 jdbc 连接似乎正在泄漏,我不知道为什么

我多年来一直在与这个问题作斗争,但我一生都无法弄清楚问题所在。让我为我们正在使用的堆栈做好准备:

  • 基于 Web 的 Java 8 应用程序
  • GWT
  • 休眠 4.3.11
  • MySQL
  • MongoDB
  • 春天
  • Tomcat 8(例如,包括 Tomcat 连接池而不是 C3PO)
  • 休眠搜索/Lucene
  • 兵马俑和 EhCache

问题是每隔几天(有时每隔一天,有时每隔 10 天一次,它会有所不同)在凌晨,我们的应用程序“锁定”。澄清一下,它不会崩溃,您只是无法登录或为此做任何事情。所有后台任务 - 一切 - 只是停止。如果我们在此状态下尝试登录,我们可以在日志文件中看到它正在将我们验证为有效用户,但从未发送任何响应,因此应用程序只是“旋转”。

迄今为止,我们发现与这些“锁定”发生时间相关的唯一模式是,它发生在我们早上计划的任务或 SAP 导入运行时。但是,运行的进程并不总是相同,有时锁定发生在我们的 SAP 导入之一期间,有时在内部计划任务执行期间发生。所有这些事情的共同点是它们在工作时间之外(凌晨 1 点到 6 点之间)运行,并且它们是相当密集的过程。

我们正在使用 JavaMelody 进行监控,我们每次看到的是,在这个凌晨 1 点到 6 点的窗口中,从不同时间开始,使用的 jdbc 连接数刚刚开始飙升(根据所附图像)。一旦开始,锁定发生只是时间问题,解决它的唯一方法是反弹 Tomcat 从而重新启动应用程序。

据我所知,内存、CPU 等在发生锁定时都很好,唯一看起来有问题的是使用的 jdbc 连接数量不断增加。

我已经多次检查我们的事务管理代码,以确保事务被正确关闭(事务管理代码非常老式:在 try 块中显式开始和提交,在 catch 块中回滚和实体管理器在 finally 中关闭堵塞)。这一切对我来说似乎都是正确的,所以我真的,真的很难过。除此之外,我最近也将Hibernate连接释放模式正确显式配置为after_transaction,但问题依然存在。

另一件奇怪的事情是,我们为不同的客户端运行同一个应用程序的多个实例,而这个问题只在一个客户端上经常发生。他们是我们的客户,迄今为止要处理的数据最多,尽管所有客户都运行这些计划任务,但这个大客户是唯一一个使用 SAP 导入的客户。这就是为什么我最初认为 SAP 导入是问题所在,但它在今天凌晨 1 点之后就锁定了,那是导入甚至开始运行之前的几个小时。在这种情况下,它在内部计划任务执行期间被锁定。

有谁知道是什么导致了这种奇怪的行为?我已经研究了我能想到的一切,但无济于事。

在此处输入图像描述

0 投票
1 回答
971 浏览

java - JavaMelody - 在 GlassFish v3+ 中监控 sql 请求和 jdbc 连接

我想使用 JavaMelody 来监控 Glassfish 应用服务器请求的 SQL。https://github.com/javamelody/javamelody/wiki/UserGuideAdvanced#monitoring-of-sql-requests-and-of-jdbc-connections-in-glassfish-v3上有分步说明,但第二个步骤对我不起作用。

指令是:

例如,在 GlassFish 管理控制台中,将 JDBC 资源(数据源)从“jdbc/MyDataSource”重命名为“jdbc/MyDataSource_uncached”

我找不到任何方法来编辑重命名 JDBC 资源。

以下屏幕截图显示了 Glassfish 管理控制台的 JDBC 数据源选项卡: Edit JNDI Name of a JDBC Resource

你知道如何重命名 JDBC 资源的 JNDI 名称吗?

0 投票
1 回答
1276 浏览

tomcat - tomcat jdbc连接池中的JavaMelody集成

我正在尝试将 JDBC 监控集成到 JavaMelody 中。我使用 Tomcat jdbc 池连接。我的设置是这样的(简化):

(我更喜欢这种设置而不是 web.xml 中的 <context> 描述)

我得到以下异常

java.sql.SQLException:找不到适用于 java.sql.DriverManager.getConnection(DriverManager.java:596) 的 jdbc:mysql://127.0.0.1:3306/mydatabase?autoReconnect=true&characterEncoding=UTF-8 的驱动程序。 sql.DriverManager.getConnection(DriverManager.java:187) at net.bull.javamelody.JdbcDriver.connect(JdbcDriver.java:83) at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:278)在 org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:182) 在 org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:701) 在 org.apache.tomcat.jdbc .pool.ConnectionPool.borrowConnection(ConnectionPool.java:635) 在 org.apache.tomcat.jdbc.pool.ConnectionPool.init(ConnectionPool.java:486) 在 org.apache.tomcat.jdbc.pool.ConnectionPool.(ConnectionPool.爪哇:144) 在 org.apache.tomcat.jdbc.pool.DataSourceProxy.createPool(DataSourceProxy.java:103) 在 org.apache.tomcat 的 org.apache.tomcat.jdbc.pool.DataSourceProxy.pCreatePool(DataSourceProxy.java:116) .jdbc.pool.DataSourceProxy.getConnection(DataSourceProxy.java:127) at ...(我的方法)

如果没有 javamelody 运行良好,javamelody 总体上运行良好。

我究竟做错了什么?有任何想法吗?

0 投票
3 回答
2193 浏览

java - 如何让Javamelody使用不同的端口(Spring Boot+暴露的两个HTTP端口)

我有 Spring Boot Web 应用程序。它在端口 8080 上公开 REST API。它还公开了带有 Spring Boot 管理端点的管理端口 8081 ( http://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-monitoring.html ) . 我没有任何自定义 Tomcat 配置来实现这一点。management.port=8081我的文件中只有财产application.properties

我已经按照https://github.com/javamelody/javamelody/wiki/UserGuideAdvanced#spring-boot-app中的描述配置了 JavaMelody (我有我的自定义JavaMelodyConfiguration类,带有org.springframework.boot.web.servlet.FilterRegistrationBean该寄存器net.bull.javamelody.MonitoringFilter)。

通过这种配置,Javamelody 暴露在 8080 端口(业务端口)上。我想把它移到 8081(管理端口)。如何改变它?

我使用 Spring Boot 1.4.2.RELEASE,javamelody 1.62.0

0 投票
1 回答
573 浏览

java - JavaMelody - 以 JSON 或 XML 监控可用磁盘空间

我正在使用 Tomcat 和 Javamelody,需要机器的“可用磁盘空间”。在正常的 Web 视图中,有一个表格行,但在 XML 或 JSON 输出 (format=xml) 中缺少此值?!这是错误吗?如何在不修改我的 java 应用程序的情况下获得可用磁盘空间?