evernat edited this page Sep 4, 2018 · 393 revisions

Next release (master)


  • It is a recommended upgrade for security to fix a XML External Entity (XXE) processing vulnerability. CVE-ID is CVE-2018-15531. Thanks to mounsurf & huanying for reporting the vulnerability.
  • fix sql monitoring from jndi datasource when Tomcat's is customized (38211a7)
  • fix: do not require Log4J when sending metrics to InfluxDB or Datadog.
  • In the Jenkins Monitoring plugin, fix #768: warning logs about serializing anonymous classes.
  • added: native calendar widget to choose dates for a custom period (84a1d63, with help from my colleague Fabien at KleeGroup)
  • added: workaround a JBoss and WildFly bug in MBeans tree (#757)
  • added: it is now possible to customize css and js of the monitoring reports by adding the /net/bull/javamelody/resource/themedMonitoring.css and /net/bull/javamelody/resource/themedMonitoring.js files as resources in your application, in order to override or add values. This is the case for example in the javamelody dark theme which is ready to use as a Maven dependency in your pom.xml:

Dark theme: screenshot


  • Compatibility with JDK 9: -Djdk.attach.allowAttachSelf=true is no longer required to have heap histogram and fix the display of source for a JDK class.
  • fix #398: heaphisto report failed -- unsatisfied link error with multiple webapps in tomcat
  • fix #585: ClassNotFound for heap dump on wildfly 10


  • Compatibility with JDK 9: fix heap dump and heap histogram, display again the graphs of cpu, opened files and physical memory. Note: to have the memory histogram in JDK 9 or later, add -Djdk.attach.allowAttachSelf=true in the java command line.
  • Fix "no token found" with Prometheus integration for a Windows server (e47b11b)
  • When using the optional collect server, fix the view of java source (0ea7e76)
  • Upgrade build of javamelody-spring-boot-starter to Java 8 and Spring-boot 2 (#741).
  • Enhancement: When using Spring MVC, use path from @RequestMapping annotations as http request name, in order to reduce the need of http-transform-pattern parameter (242fb14)
  • Enhancement: After generating a heap dump, zip it to reduce its size (98cb8bc)
  • Added: The mean number of allocated Kilobytes per request is now displayed in the stats, next to the mean cpu per request. It is the memory used in the heap per request and which will have to be cleaned by the Garbage Collector later. And when more memory is used per request, more cpu will be used by the GC. As an example, 1 Gb allocated in a request, without a good reason, is probably a problem. (33fe61d)
  • Added: when crash logs (hs_err_pid*.log files) are found, display them in the system actions (5ebb28e)
  • Added: in the zoomed charts, display of the 95th percentile line. It shows what would be the maximum on the period if 5% of the highest values (short peaks) were excluded (9f7acba)
  • If you use SpringBootAdmin v1, there is a new module to integrate javamelody in SpringBootAdmin. See doc. SpringBootAdmin is a server to manage and monitor Spring-boot applications and which is a bit like the javamelody collect server. (Thanks to dvtoever for this PR).
  • fix rare issue: ArithmeticException: / by zero in JRobin RRD files (JENKINS-51590).
  • Removed the prometheus-include-last-value javamelody parameter and replaced it by the includeLastValue http parameter (08aacb2, see doc). So, in the improbable case that you used prometheus-include-last-value for Prometheus integration, change your scrape_config to:
      format: ['prometheus']
      includeLastValue: ['true']


  • In the Jenkins Monitoring plugin, fix #735: NPE when there are no executors.
  • Fix #737 for StatsD integration.
  • Fix #731: When using CloudWatch, Cloudwatch metric upload can't handle more then 20 items (with help from marcrelation).
  • Fix #668: RrdException: Invalid timestamps specified in some particular case when using custom period.
  • Enhanced: when using the optional collect server and when having several nodes in a monitored application, if a node is unavailable, continue to collect data with the others (#736).


  • For the JIRA/Confluence/Bamboo plugin only, fix broken auth when using JIRA 7.7.1.


  • Fix #700 for Prometheus integration (with help from Stefan Penndorf).
  • Fix #701 for Datadog integration (PR #702, thanks to bluegaspode).
  • Fix #718: NPE when displaying the webapp dependencies in some particular case.
  • In the Jenkins Monitoring plugin, added JEP-200 exclusions when using monitoring with slaves (PR #6 thanks to Jesse Glick)
  • improved: Warn in the reports if multiple instances use the same storage directory (#692)
  • improved: If the application-name parameter is defined, use it when publishing metrics to InfluxDB, Graphite, StatsD, CloudWatch or Datadog instead of the context path (#694)
  • improved: When there are more than 10 monitored applications (for ex. 60) in the same optional collector server, display a usable table instead of a long list (#675)
  • added: When using the optional collect server with ephemeral applications or application's nodes (for example with load-based auto scaling), the addresses and status of the nodes may change dynamically and you may find difficult to manually maintain the list of applications to monitor in the collect server. In that case, you can call an api in your application code to automatically register the application or the application's node when starting and unregister it when stopping. See doc. (#679)
  • added: When using the reports by mail, a new javamelody parameter mail-subject-prefix can be used to configure the subject of the mail notification. For example, in a Tomcat context file: <Parameter name='javamelody.mail-subject-prefix' value='Production environment JavaMelody reports for {0}' override='false'/> (PR #710, thanks to vkpandey82)
  • added: In the External API, the url monitoring?part=lastValue&format=json now returns all the last values by names. (The url monitoring?part=lastValue&graph=usedMemory already returns the last value of a single graph by name.)


  • added: integration with Prometheus: Metrics are already displayed in the monitoring reports. You can also scrape the same metrics from Prometheus at the frequency you wish for advanced visualizations, if you have a Prometheus server installed (PR #682 & PR #684, thanks to slynn1324). See doc.
  • added integration with StatsD: Metrics are already displayed in the charts of the monitoring reports. As an extra, you can also publish the same metrics to StatsD, if you have a StatsD daemon installed. The parameter is statsd-address, see doc. (92aeffe)
  • fix #672: because of issues with aspectj / auto-proxy in some cases, methods annotated by @Async, @Scheduled or @Schedules are no longer automatically monitored when using net/bull/javamelody/monitoring-spring.xml. They are now monitored by adding net/bull/javamelody/monitoring-spring-scheduled.xml in the Spring context.
  • fix #681: upgrade prototype.js, effects.js and slider.js
  • fix #665: fix jdbc undeploy in WildFly 10.1.0 / JBoss EAP 7.0 (with help from Christoph Böhme)
  • In Jira 6+, make sure that the current user is an ApplicationUser (PR #2, thanks to Andreas Ebert)
  • In Bamboo 6+, fix #671: Monitoring page forbidden
  • In the javamelody grails plugin, when using Grails 3.2.11, fix #43, "No signature of method: java.lang.String.encodeAsHTML()", (PR #50, thanks to Graeme Rocher and Sébastien Martin) and fix #48: "No value for key [org.springframework.jdbc.datasource.LazyConnectionDataSourceProxy] bound to thread" (PR #51, thanks to Sébastien Martin)


  • fix #648: When using Quartz 2.2, IncompatibleClassChangeError: Found interface org.quartz.Trigger, but class was expected.
  • In the Jenkins plugin, fix NPE when using CloudWatch or Graphite (3e2b872).
  • In the Jenkins plugin with FreeBSD, fix JENKINS-45963: if the collect fails for one slave, continue with the others
  • fix: when having several monitored webapps and for each one a different datasource and the javamelody datasources parameter, the sql statistics may be displayed in the monitoring of the wrong webapp (b06f34f and 93960c0).
  • added integration with InfluxDB: Metrics are already displayed in the charts of the monitoring reports. Like integrations with Graphite and AWS CloudWatch, you can also publish the same metrics to InfluxDB for advanced visualizations, if you have an InfluxDB server installed. The parameter is influxdb-url, see doc. (f7c8503)
  • added integration with Datadog: Like for InfluxDB, you can also publish the same metrics to Datadog for advanced visualizations. The parameter is datadog-api-key, see doc. (239aa4e)
  • Removed HibernateBatchFactory from source and from wiki, which is certainly no longer used by anybody.


(for javamelody-core and javamelody-spring-boot-starter)

  • fix #645: When using Quartz 2, ClassNotFoundException: net.bull.javamelody.Quartz2Adapter (thanks to cyburglar)
  • fix #643: When using the javamelody-spring-boot-starter, scheduling of methods annotated with @Scheduled does not work. The monitoring of those method is now no longer enabled by default. To enable again the monitoring of those methods see the updated doc.


  • improved (Brazilian) Portuguese translation (PR #642, thanks to Sandro Giacomozzi).
  • fix #634: Deployment error related to CDI in WebLogic and warnings in JBoss (thanks to jncharpin)
  • fix #639: Deployment warning related to CDI in WebLogic 12.2 (thanks to Michael Dobrovnik)
  • fix: When using JIRA v7, with the monitoring plugin, add again the "Monitoring" link in the menu of the Administration / System page (38b8593).
  • fix: When using the Spring boot starter, parameters were ignored in Spring Boot app deployed as war in Tomcat (6e0b2cb for #632).
  • fix #638: When using scripts and alerts, ClassNotFoundException in Jenkins if the monitored webapp is using Ehcache or Quartz jobs.
  • fix #42: In the JavaMelody Grails plugin, fix compatibility with Grails 3.3 (and starting with this release, it will not be compatible anymore with Grails 3.1 and before).
  • fix #46: The JavaMelody Grails plugin must load after grails-quartz plugin to allow full reconfiguration of the scheduler thread (thanks to Jerry Boonstra)
  • Internal classes moved: At last, after years of waiting, it's possible in JDK 9 to have internal classes public but not accessible outside of the javamelody jar file, like if these classes were not public. So, many internal classes, which were not public and all in the net.bull.javamelody package, are now moved to net.bull.javamelody.internal.* packages. Beware, applications must not import the classes in the net.bull.javamelody.internal.* packages. And to be sure of that, a file will be added and the internal packages will not be exported outside of the javamelody module. (As a reminder, the goal of having internal classes opposed to a public and documented API is to be able to refactor and improve the implementation freely without ever breaking applications.)
  • added: With Spring, when using net/bull/javamelody/monitoring-spring.xml in the Spring context or when using the Spring boot starter, automatically monitor the execution of methods having a @Controller, @RestController, @Service, @Async, @Scheduled or @Schedules annotation (c7c45ab)
  • added: When using EJB, automatically monitor the execution of methods having an @Asynchronous annotation (31b723c).
  • added integration with Graphite: Metrics are already displayed in the charts of the monitoring reports. As an extra, you can also publish the same metrics to Graphite for advanced visualizations, if you have a Graphite server installed. The parameter is graphite-address, see doc. (ce94787)
  • added integration with AWS CloudWatch: Like for Graphite, you can also publish the same metrics to AWS CloudWatch for custom visualizations and mail or autoscaling alarms, if you have AWS EC2 server instance(s) with detailed monitoring in AWS CloudWatch. The parameter is cloudwatch-namespace, see doc. (e65d605)
  • added: In the list of threads, add an action to send an interrupt signal to a thread. The thread can test Thread.currentThread().isInterrupted() to stop itself. (7977f2b)
  • added: PDF link in the threads page (b356132)


  • known major issue in 1.67.0, #634: Deployment error related to CDI in WebLogic and warnings in JBoss.
  • fix RUM monitoring when the URL ends with '/' in 1.66.0.
  • fix #617: Charts of http/sql stats can not be viewed after restarting the application (with help from goldyliang).
  • fix #622: In the collector server, malformed main html page when the monitored app is down.
  • fix #623: In the collector server, spikes on gc, transaction and cpu graphs after collector restart.
  • fix: In the collector server, after a restart, a monitored application can't be removed if it is no longer available.
  • fix #631: When using the collector server, minor security issue if XML transport format with xstream is configured in the collector server parameters.
  • fix: If the monitoring of an invalid JNDI datasource fails, don't ignore the others (dca0b07).
  • added: When using Ehcache, display keys from the caches and add ability to remove a specific key from a cache (PR #630, thanks to Aleksandr Mashchenko).
  • added: Display the number of http sessions and sessions mean size before the list of sessions, when there are more than 20 (PR #629, thanks to Aleksandr Mashchenko).
  • improved: When displaying Java sources from stack-traces, locate more sources by reading Maven pom.xml of the webapp and of the other dependencies, when they exist.
  • added: Display webapp dependencies in a new page, accessed by a link in the System informations details, and include detailed name, website url, Maven groupId:artifactId:version and license of each dependency, based on Maven pom.xml files. (e7607c1, except in JIRA/Confluence/Bamboo because of OSGi restrictions)
  • added: With Spring, when using net/bull/javamelody/monitoring-spring.xml in the Spring context or when using the Spring boot starter, add a link to display "Spring beans", in System informations next to the "JNDI tree" link (5cd7c5a).
  • added: With Spring again, when using net/bull/javamelody/monitoring-spring.xml in the Spring context or when using the Spring boot starter, if RestTemplate is used and if it is defined as Spring bean (for example, <bean id="restTemplate" class="org.springframework.web.client.RestTemplate" />), then the REST http calls from the webapp with this RestTemplate are monitored and response times are displayed in the Spring statistics of the monitoring report (b672ddb).
  • added: In the database reports, 10 new reports for MySQL (with help from MySQL perf analyzer, Apache license): long running queries, statistics of tables, unused indexes, events waits summary, table access summary, index access summary, table lock wait summary, tables without PK, queries summary for the last 24h, memory summary (this last one works only in MySQL v5.7) and 1 new report for Oracle database: statistics of tables (62d86d1).
  • added: When the webapp is built by Maven or when the javamelody parameter application-version is set, the version of the webapp is displayed at the top of the report and a drop-down list of versions next to "Customized" period allows to display the report for the period of each version deployed, to compare between them for example. (d61e65f, based on an idea by dhartford).
  • added: Like for EJB monitoring, monitor CDI (or EJB 3.1) beans by simply adding the @net.bull.javamelody.Monitored annotation on beans classes or methods to monitor (3f60bff).
  • added: Real User Monitoring (RUM). It allows to measure the experience from the end user perspective, by monitoring times in the browser for each html page until it is displayed and ready to be used (b85652a, see doc).
  • The Real User Monitoring works by injecting on the fly a Boomerang javascript at the end of html pages, just before the </body> end tag, which sends data back to the monitoring in your server. Then in the detailed monitoring report of http requests for html pages, times and percentages are displayed for Network, Server execution, DOM processing and Page rendering, to compare which ones contribute to a good or bad end user experience. The Real User Monitoring does not add a noticeable overhead on the server, but the javascript adds a simple http(s) call for each html page, which may add a small overhead on the client browser.
  • This Real User Monitoring is not enabled by default. To enable it, add a parameter rum-enabled in web.xml, in context or in system properties like the other javamelody parameters. For example in your WEB-INF/web.xml file:
  • improved: when using the net.bull.javamelody.JdbcDriver in your configuration (without a datasource), accept the driver class in the jdbc URL like in the jdbc properties (617adff). For example in hibernate.cfg.xml:
<property name="hibernate.connection.driver_class">net.bull.javamelody.JdbcDriver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/myschema?driver=com.mysql.jdbc.Driver</property>


<property name="hibernate.connection.driver_class">net.bull.javamelody.JdbcDriver</property>
<property name="hibernate.connection.driver">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/myschema</property>


  • fix NoSuchMethodError: net.sf.ehcache.Ehcache.getStatistics() in 1.64 (issue #616)
  • fix compatibility with Java 9. (PR #609 for issue #556 , thanks to James Pether Sörling)
  • In the Jenkins plugin, fix JENKINS-42112 : HTTP user session is reported as "anonymous" when using anything but AbstractPasswordBasedSecurityRealm (like Google login plugin or Cloudbees Operations Center).
  • In the Liferay plugin, fix compatibility with Liferay 7 (649fd35 and PR #7 with help from Inácio Nery from Liferay, fixed in 1.63.1)
  • Liferay plugin is now published in the Liferay marketplace.
  • improved: make easier the selection of the stack-trace text in the tooltips of the threads list (736cf0e)
  • added: javamelody sprint boot starter to simplify configuration of javamelody when using Spring Boot (PR #615 thanks to Georg Wittberger).
  • added: pdf report in the detail page of a request. (28e2474)
  • added: links to view java source from errors and threads stack-traces. (e5263bf)


  • Source from the JDK and source from artifacts built by Maven and available in Maven central can be viewed. So if your server uses a JRE and not a JDK, source from the JDK are not available. And note that many artifacts available in Maven central were not built by Maven, for example Tomcat libraries, so sources of those artifacts can't be located.
  • The javamelody parameter maven-repositories can be used like the other javamelody parameters, to search for sources of Maven artifacts in other repositories than your local repository and than Maven central, and such as your own company repository containing the sources of your own app. The parameter value must be a comma separated list of Maven repositories URLs (~/.m2/repository, by default and recommended as last repositories). And if your repository needs basic authentication, you can insert "username:password" in the URL. For example in the web.xml :
  • added: new javamelody parameter application-name, to override the default one based on the context path of the webapp and on the hostname. Using this parameter will change the default storage directory path. (PR #604 thanks to kai-modrzok)
  • added: if the javamelody parameter jmx-expose-enabled is set to true, then javamelody mbeans are available with aggregated statistics data about requests. See doc. (PR #591 thanks to Alexey Pushkin)



  • Fix Liferay plugin compatibility issue 5: Javamelody breaks web content edition, since Liferay 6.2 CE GA5 and EE SP13 and issue 6: since Liferay 6.2 EE SP15, error "Please select a valid change frequency" when editing a web content. (Fixed in 1.62.1)
  • Sonar v6.1 released on October 13, 2016 is known to be incompatible with the Sonar plugin. There is PR 1305 in Sonar to fix this issue. (Merged and released in Sonar v6.2).
  • When using JPA Criteria API with Hibernate or EclipseLink, fix JPA requests names like CriteriaQueryImpl@3b0cc2d (e60df91, with help from Christoph Linder who is at the origin of this change and this page from Antonio Goncalves). For example, when using Hibernate, it will display JPQL instead, but still waiting Hibernate to implement CriteriaQueryImpl.toString().
  • Refactored JPA code to make it more clear (thanks to Christoph Linder).
  • fix issue 592: some file handles may be left open when having frequent undeploy / redeploy.
  • fix issue 594 and issue 596: StringIndexOutOfBoundsException in the reports and jdbc datasource not monitored, when using Paraya server (thanks to Thomas Kernstock).
  • added: /* BATCH */ prefix in batch sql requests to discern that in this case 1 hit is for a whole batch (44bc752).
  • added: configuration to be able to use forward instead of include in CustomResourceFilter (PR 599 thanks to James Pether Sörling for issue 597 using Vaadin).
  • added: check for updated version of javamelody. If a new version is available, a message is now displayed at the top of the report to notify about the new version. For that, javamelody pings the server And to better understand javamelody users, anonymous data such as java version and OS is sent to that server at the same time. An example of the data sent is: {uniqueId="3d117c04b914c78ddbaf14818c404c8e88c6e56f", serverInfo="Apache Tomcat/8.5.9", javamelodyVersion="1.63.0", applicationType="Classic", javaVersion="Java(TM) SE Runtime Environment, 1.8.0_111-b14", jvmVersion="Java HotSpot(TM) 64-Bit Server VM, 25.111-b14, mixed mode", maxMemory="1024", availableProcessors="4", os="Windows 7, Service Pack 1, amd64/64", databases="", countersUsed="http|sql|error|log", parametersUsed="log", featuresUsed="pdf", locale="fr_FR", usersMean=1, collectorApplications=-1}.
  • Usage stats based on the anonymous data will be publicly available at for applications using JavaMelody v1.63 or later and able to contact the server.
  • You may disable the update check with the javamelody parameter update-check-disabled=true in web.xml, in context or in system properties like the other javamelody parameters.
  • The online demo of javamelody is finally back. To see it, you can play a bit with this app (written by Benjamin Durand some years ago) to be sure to have some data in http and sql statistics, then open the monitoring page to explore the reports.


  • fix XSS (reported by Omar El Mandour, CVE-2016-1000273)
  • In the JavaMelody Grails plugin, fix interception when method is a closure (grails PR 31 and grails PR 37, thanks to Alessandro Gastaldi and Sébastien Martin)


  • fix XSS (reported by Dallas Kaman, Praetorian Group)
  • In the JavaMelody Grails plugin, fix to remove views that cause collision with other plugins/app. (grails PR 36, thanks to Christian Oestreich, fixed in v1.60.1)
  • added: monitoring MongoDB queries. See the documentation.
  • added: in the Spring Boot configuration example, automatic monitoring of Spring services and controllers, without having to use the @MonitoredWithSpring annotation.
  • added jpa-naming-strategy parameter to allow customization of request names displayed in JPA statistics. (based on PR 567, thanks to Christoph Linder). But still waiting Hibernate to implement CriteriaQueryImpl.toString().
  • upgraded jpa api to 2.1.
  • New javamelody plugin to monitor a Alfresco server. Documentation is here


  • Fix XSS in graph page (PR 555, thanks to Tim Helmstedt)
  • In the JavaMelody Grails plugin, migrate the plugin to Grails 3.x and upload it to Bintray (grails PR 33, thanks to Sergio Michels). The plugin is available in Bintray here.
  • Documentation for the JavaMelody Grails plugin is updated and moved at For v1.60, you can install the plugin in Grails 3, with just a dependency:
dependencies {
    runtime 'org.grails.plugins:grails-melody-plugin:1.60.0'
  • Sergio Michels is now committer in the JavaMelody Grails plugin.
  • In the Liferay plugin, fix compatibility issue 5: Javamelody breaks web content edition, since Liferay 6.2 CE GA5 and EE sp13 (fixed in plugin v1.59.2)
  • In the Jenkins plugin, fix JENKINS-34794, Jenkins sometimes doesn't start because of transient NPE (thanks to Félix Belzunce Arcos)
  • Limit error messages to 1000 characters and error stack-traces to 50000 characters, to avoid high memory consumption when log messages are very long (PR 550, thanks to Zdenek Henek)
  • added javamelody parameter csrf-protection-enabled to enable protection against CSRF on actions such as run GC, invalidate sessions, kill thread by id ... (Not enabled by default since an attacker would need to know about javamelody in an application and about its URLs and would need to force an administrator to access the monitoring and even in this case, the attacker certainly can't make the application unvailable and can't steal data or anything.) To enable this protection, add the parameter in web.xml, in context or in system properties like the other javamelody parameters. For example, add the system property javamelody.csrf-protection-enabled=true in $CATALINA_HOME/conf/ if Tomcat.
  • Doc for JIRA / Confluence / Bamboo plugin updated: In the datasource configuration, use maxTotal instead of maxActive since JIRA 7.0 or Confluence 5.9 (that is when using Tomcat 8).


  • fix issue 532: do not flush a closed output stream.
  • fix issue 533: IllegalArgumentException during metrics update (JENKINS-33050)
  • In the Jenkins plugin, fix username in the list of http sessions (d111126)
  • improved: wrap very long http and sql queries without whitespace, in order to fit into the screen and to avoid horizontal scrollbar (3a88a75)
  • added: in the Liferay plugin, monitoring of SQL requests and jdbc connections for Liferay portal and for portlets (in plugin v1.59.1)
  • added: display the client's browser and OS in the list of http sessions (6d89f42)
  • added: Support Log4J 2 since v2.4.1 like Log4J (068139d)
  • added: Support Informix in database reports (319cdbe, thanks to Maciej)
  • added: Show used memory in dialog after manual GC (issue 522)
  • Change the visibility of JpaWrapper.createEntityManagerFactoryProxy to public (PR 521, thanks to domtoupin)


  • fix issue 492: incompatibility of the release v1.57.0 (isAsyncStarted) with servlet api 2.5 (Tomcat 6).
  • fix the datasource monitoring in WildFly 9.0.1 (45203cf thanks to jayblanc)
  • fix JENKINS-23442, In the Jenkins plugin, ClassCircularityError: java/util/logging/LogRecord (0ad60da)
  • improved: In the Jenkins plugin, upgrade the minimum Jenkins version to 1.580.1 and replace use of deprecated Jenkins api
  • fix issue 503: incompatibility with JIRA 7 (fixed in v1.57.1)
  • fix issue 511: rename to remove conflict with jgroups
  • fix from PR 505 and PR 507: German translations (thanks to mawulf)
  • fix from grails PR 27: In the JavaMelody Grails plugin, fix uppercase environment names to lowercase (thanks to timic)
  • fix from grails PR 28: In the JavaMelody Grails plugin, fix cannot disable spring counter (thanks to timic)
  • added: if Java 7 or later, 2 new graphs are displayed in "Other charts", below the main charts: "% System CPU" and "Used buffered memory" (5029404).
    • % System CPU is the CPU usage for the whole system (not just the JVM), between 0 and 100%.
    • Used buffered memory is the memory used, either by direct buffers allocated outside of the garbage-collected heap, using ByteBuffer.allocateDirect, or by mapped buffers created by mapping a region of a file into memory, using
  • improved: limit the different child requests per request in statistics to a raisonnable number (10000), issue 496.


  • fix: check if async before flushing the response (ee87b4b thanks to Mark Thomas)
  • fix issue 338: JavaMelody swallows response when some Spring WebAsyncTask/Callable is used (fix thanks to Violeta Georgieva). The web.xml example in the User's guide is also changed for those Async requests with Servlet API 3.0.
  • fix: used/max file descriptor counts are not displayed in oracle java 8 (c04ef79 thanks to Colin Ingarfield)
  • fix issue 488: IllegalStateException if a filter calls getWriter() before the MonitoringFilter
  • fix: in latest JIRA versions, the monitoring report outputs garbage (because gzip compression is now enabled by default in JIRA ; the fix disables the gzip compression of the monitoring report)
  • fix the monitoring of JNDI DataSources in Tomcat 8, for example in Confluence 5.8 (99767fb).
  • fix issue 480: StackOverflowError when applying sql-transform-pattern
  • improved: SQL keywords are highlighted in statistics (d78734c)
  • added: it's now easy to write scripts to get monitoring data from a monitored webapp and to send alerts based on thresholds using Jenkins. See the documentation.
  • improved: An api page is now available in the monitoring of your webapp with links to the ExternalAPI. The path of the page in your webapp is "monitoring?resource=help/api.html".
  • User's guide updated: better explain when to use http-transform-pattern or sql-transform-pattern (with help from Siegfried Goeschl)
  • User's guide updated: When using Tomcat, you can use variable substitution with system properties in the context xml file or in the web.xml file of your webapp. For example, to set the storage directory relative to the Tomcat home, add the following in the context file of the webapp in Tomcat conf: <Parameter name='' value='${catalina.base}/javamelody' override='false'/>.
  • Advanced User's guide updated: JavaMelody install in Spring-boot is documented, with example app.
  • Jenkins plugin: scripts examples updated to get data from slaves in Jenkins Monitoring Scripts, below the scripts for Jenkins master.
  • added: javamelody-collector-server.war file is published in Maven Central (issue 467). This war file is optional and not needed in most use cases.
  • note: there is an unfortunate incompatibility of this release v1.57.0 (isAsyncStarted) with servlet api 2.5 (Tomcat 6). This is now fixed and the fix is available in nightly build.

JavaMelody migration to Github


See also release notes of previous versions.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.