Skip to end of metadata
Go to start of metadata

Plugin Information

Plugin ID monitoring Changes In Latest Release
Since Latest Release
Latest Release
Latest Release Date
Required Core
1.58.0 (archives)
Nov 26, 2015
Source Code
Issue Tracking
Pull Requests
Open Issues
Pull Requests
Emeric Vernat (id: evernat)
Usage Installations 2014-Nov 5740
2014-Dec 5709
2015-Jan 6002
2015-Feb 6161
2015-Mar 6461
2015-Apr 6472
2015-May 6496
2015-Jun 6849
2015-Jul 6975
2015-Aug 6960
2015-Sep 7126
2015-Oct 7093


 Monitoring plugin: Monitoring of Jenkins itself with JavaMelody. Open the report (or http://yourhost/monitoring) after installation.

Features summarized

  • Charts of memory, cpu, system load average, http response times by day, week, month, year or custom period
  • Statistics of http requests with mean response times, mean cpu times, mean response size by request and by day, week, month, year or custom period
  • Errors and logs
  • Current http requests
  • Threads
  • Heap histogram (instances and sizes by class)
  • Http sessions
  • Process list of OS
  • MBeans
  • Actions for GC, heap dump and invalidate session(s)
  • Report in html or pdf
  • In English, German, French, Portuguese or Chinese
  • Jenkins security
  • For Jenkins nodes (slaves in general):
    • The report for the nodes is available at http://yourhost/monitoring/nodes
    • Charts aggregated for all nodes of memory, cpu, system load average, number of running builds, build queue length, build times by period
    • Detailed statistics of the build times and of the build steps by period
    • Threads, process list and MBeans for each nodes
    • Heap histogram aggregated for all nodes
  • For each individual node (each node in http://yourhost/computer), reports and actions are available from the "Monitoring" page in the contextual menu or in the detail of the node:
    • Threads, process list, MBeans of that node only
    • Heap histogram of that node
    • Actions for GC, heap dump
  • And more...

Online help of JavaMelody

Some Monitoring Scripts can be executed using the Jenkins Script Console.
The "Monitoring" plugin can be installed by point and click in the plugin manager of a Jenkins server, or it can be downloaded from

Release notes


  • fix username in the list of http sessions

1.58.0 (Nov 26, 2015)

  • fix JENKINS-23442, ClassCircularityError: java/util/logging/LogRecord (0ad60da)
  • Upgraded mininum Jenkins version to 1.580.1
  • replace use of deprecated Jenkins api
  • fix from PR 505 and PR 507: German translations (thanks to mawulf)
  • fix issue 492: incompatibility of the release v1.57.0 (isAsyncStarted) with servlet api 2.5 (when using mvn hpi:run in development).
  • added: 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

1.57.0 (Aug 31, 2015)

  • fix: check if async before flushing the response (ee87b4b thanks to Mark Thomas)
  • fix: used/max file descriptor counts are not displayed in oracle java 8 (c04ef79 thanks to Colin Ingarfield)
  • Jenkins plugin: scripts examples updated to get data from slaves in Jenkins Monitoring Scripts, below the scripts for Jenkins master.
  • improved: An api page is now available in the monitoring with links to the ExternalAPI. The path of the page in your Jenkins is "monitoring?resource=help/api.html".
  • 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 for Continuous Monitoring. See the documentation.

JavaMelody migration to Github

1.56.0 (May 2, 2015)

  • fix issue 477: In the processes list, CPU and Command are sometimes in the wrong column
  • added: MULTILINE & DOTALL flags for transform-patterns regexps (issue 474, thanks to Michal Bergmann).

1.55.0 (Jan 30, 2015)

  • fix issue 453: Chinese translation for heap dump (thanks to chuxuebao)
  • fix issue 436: implement Servlet 3.1 new methods (JavaEE 7), in FilterServletOutputStream and others
  • fix issue 455: HTTP-401 / WWW-Authenticate wrongly reported as HTTP error

1.54.0 (Now 30, 2014)

  • fix: Monitoring reports of a slave didn't work if its name contains a space.
  • fix issue 440: Not able to start Desktop version.

1.53.1 (Oct 3, 2014)

  • fix: in v1.52.0 with Tomcat, graphs of bytes received/sent and of Tomcat active threads were not displayed anymore in "Other charts" (revision 3908).
  • fix issue 439: Display Linux version in "System informations", and not "Linux unknown"
  • improved: Portuguese translation (revision 3885, thanks to Fernando Boaglio)
  • added: new system property "javamelody.sampling-included-packages" for a white list in cpu hotspots, instead of using the "javamelody.sampling-excluded-packages" system property (issue 424, thanks to alf.hogemark)

1.53.0 (Oct 1, 2014)

1.52.1 (Aug 6, 2014)

  • fix: for Maven type jobs on recent Jenkins versions, builds of Maven modules are displayed as always running in the /monitoring/nodes page
  • fix: the logout action in the menu did not work in the /monitoring/nodes page

1.52.0 (Aug 3, 2014)

  • Upgraded mininum Jenkins version to 1.509.3
  • added: display of build steps and their durations, in the detail of each build statistics in the "/monitoring/nodes" page. Example:
  • added: The system property "javamelody.nodes-monitoring-disabled" can be used to disable the periodic monitoring of slaves. Either at startup, for example "-Djavamelody.nodes-monitoring-disabled=true" in the jenkins.xml file, or even at runtime. Disabling periodic monitoring of slaves can help against issues, if there are Jenkins slaves and if the communication with slaves is too unstable in the Jenkins remoting.
  • improved: reduce the number of RRD files created in some conditions, by not creating a RRD file of mean times if a request is called only once (revision 3836). Otherwise, obsolete RRD files are automatically deleted after 3 months like before.
  • added: links "View in a new page" below the tables of threads and of current requests (revision 3839). For example when Jenkins is under load, the new pages make it easy to refresh at will the details of threads or of the current requests to see if states change or not, without refreshing all the main page.
  • added: logout action in the menu on the right of the main report (revision 3859)
  • fixed JENKINS-21357 Node monitoring action: Use the specific computer's sidepanel instead of Jenkins default page. But the actions on the left sidepanel may be broken because of JENKINS-23963.

1.51.0 (Jun 5, 2014)

  • fix: when using java 8, cpu graph was not displayed
  • Drop Java 5 support (revision 3795)
  • Optimized desktop UI startup time, by downloading desktop app and caching locally (revision 3762)
  • improved: in a graph detail, a checkbox can now hide maximum values in the graph, so that average values are better displayed when much lower than the maximum (issue 368)
  • added: PID in the heap dump file name (revision 3773)

1.50.0 (Mar 27, 2014)

  • Fix icons and links on some Jenkins servers in the new Monitoring page of individual nodes (JENKINS-20935)
  • fix issue issue 370: work around ConcurrentModificationException during Tomcat startup (which is a Tomcat bug)
  • fix issue issue 386: IllegalArgumentException: No enum const class ..., in Turkish
  • improved: In the US, depending on the browser's language or on the javamelody parameter "locale", the paper size is now Letter in the US, instead of A4 like in the other countries. (revision 3679, thanks to Dennis)
  • improved css styles: font finally fixed to Arial/Helvetica (revision 3718).
  • added: Menu. A floating button is available on the right of the main report to drag a menu in or out. The menu displays the list of chapters in the report and allows to jump easily between them (revision 3705).
  • added: Custom reports. Links to custom reports can be included in the floating menu described above.
    For that, add a system property named "javamelody.custom-reports". In the value of this system property, put the list of names of the custom reports separated with commas. Then for each custom report, add a system property with the same name and its path as value. By default, the following properties are already defined:

1.49.0 (Jan 12, 2014)

  • added: For each individual node (each slave in http://yourhost/computer), reports and actions are available from the "Monitoring" page in the contextual menu or in the detail of the node:
    • Threads, process list, MBeans of that node only
    • Heap histogram of that node
    • Actions for GC, heap dump
    • (JENKINS-20935, with help from Oleg Nenashev)
  • improved: When I call the "Invalidate http sessions" action, invalidate all sessions except mine (I can still invalidate my session individually after that)
  • improved: In the list of http sessions, a bullet shows which one is my own session, if I have a session
  • improved css styles with the come back of shadows in Firefox and with hovers for images, ~see JavaMelody Demo~ (revision 3614)

1.48.0 (Nov 20, 2013)

1.47.0 (Sep 29, 2013)

  • fix issue 339: "One day" memory leak
  • fix issue 346: XSS through X-Forwarded-For header spoofing
  • fix issue 232: Use the path of -XX:HeapDumpPath=/tmp if defined, for the directory of heap dump files (otherwise use the temp directory of the server as before)
  • added: detection of cpu hotspots can be enabled (issue 149, with some ideas from Cédric Lime).
    • In the monitoring reports, the new Hotspots screen displays CPU hotspots in executed methods for all the JVM. Like javamelody, the overhead of hotspots is low: it is based on sampling of stack-traces of threads, without instrumentation. And like javamelody, it is made to be always active if enabled. (It is currently not enabled by default. It may be enabled by default in the future.) Two parameters can be defined as system properties in the jenkins.xml file:
    • "javamelody.sampling-seconds" to enable the sampling and to define its period. A period of 10 seconds can be recommended to have the lowest overhead, but then a few hours may be needed to have significant results for a webapp under real use. If you don't mind having a bit more overhead or want a result faster in test, you can use a value of 1 or 0.1 in second for this parameter.
    • "javamelody.sampling-excluded-packages" to change the list of the excluded packages ("java,sun,com.sun,javax,org.apache,org.hibernate,oracle,org.postgresql,org.eclipse" by default)

1.46.0 (Aug 4, 2013)

  • fix JENKINS-17757 IllegalStateException: Timer already cancelled from NodesCollector.scheduleCollectNow
  • use a timeout for the monitoring of slaves, when a slave is online but does not respond
  • fix NPE when manually purging the obsolete monitoring files of slaves

1.45.0 (Jun 6, 2013)

  • added: button to kill a thread from the current requests (issue issue 302)
  • added: button to donate in the html reports, to better inform users of this possibility

1.44.0 (Mar 30, 2013)

  • fix: it is currently useless to display the sql hits for the current requests
  • fix: better aggregation of http requests in the statistics, for URLs /adjuncts/... and /$stapler/bound/... (also reduces the disk space used to store data)
  • fix issue 289, JENKINS-15529: NoClassDefFoundError: com/sun/management/OperatingSystemMXBean, in JBoss AS 7 without configuration of modules
  • page added: Some Monitoring Scripts can be executed using the Jenkins Script Console.

1.43.0 (Jan 27, 2013)

  • fix issue 270: French Canadians can't choose a customized period
  • fix: in the current requests, use the chosen period to display the statistics of mean times, besides the elapsed times
  • added: PDF report of the current requests
  • added: optional parameter "locale" to fix the locale of the reports, whatever the language in the browser (issue 271, thanks to xiukongtiao). You can add, for example, the system property -Djavamelody.locale=en_US

1.42.0 (Dec 2, 2012)

  • fix issue 262 NullPointerException in MonitoringFilter.doFilter(), when the webapp is undeployed and after a timeout
  • added: New alternative User Interface for the monitoring reports with a Rich Desktop Application. Highlights :
    • All reports and data like in the web UI
    • Exports to PDF, XML and JSON formats, even if the monitored application does not have the dependencies to do the same in the web UI
    • Tabs to view different reports
    • Columns of tables may be sorted, resized and moved
    • Exports with right-click for all tabular data to CSV, PDF, RTF, HTML, XML, JSON formats
    • Shortcuts, such as F5
    • Started in one-click with the "Desktop" link at the top of the web UI. The required libraries are downloaded automatically from ~googlecode~ github on the first launch.
    • Uses JavaWebStart and requires JRE 1.7 on the client
    • This new UI may be an alternative to the web UI for advanced users or for exports

1.41.0 (Sep 30, 2012)

  • fix issue 252 Add XSS protection
  • fix issue 255 exception while collecting data Could not open ....rrd existent

1.40.0 (Aug 26, 2012)

  • fix issue 14050, also for the monitoring reports of Nodes.
  • added in the external API: XML and JSON exports of MBeans, and of JNDI tree given a JNDI context path. Documentation is here. For example: MBeans and JNDI.

1.39.0 (Jun 21, 2012)

  • fix issue 14050, also when security is enabled in Jenkins: Unreadable HTML response for the monitoring reports. Compression of the monitoring reports is now disabled in the plugin and the reports will be compressed by Jenkins starting with v1.470.

1.38.0 (Jun 17, 2012)

  • fix issue 14050, but only when security is not enabled in Jenkins: Unreadable HTML response for the monitoring reports

1.37.0 (Apr 29, 2012)

  • fix issue 207: Incompatibility with servlet api 2.4 (Tomcat 5.5) in Monitoring plugin 1.36.0
  • added: Reduce the possibility of storage overload by deleting automatically the obsolete RRD files (which were not updated for the last 3 months), and which were for requests which do not exist anymore. Note: the size of existing RRD files is fixed for ever and old .ser.gz files are already automatically deleted after a year.
  • added: Display the disk usage of the storage at the bottom of the report

1.36.0 (Mar 30, 2012)

  • JavaMelody is used inside the Monitoring plugin. Thanks to CloudBees Jenkins CI, nightly build, javadoc and sources of JavaMelody are available.
    ~And there is a public demo of JavaMelody. It is based on the latest source in trunk and is continuously deployed. It is currently not a demo in Jenkins, but instead in an application with GWT, services and SQL.~
    ~First, you can play with this quick and dirty GWT application to have some data (thanks Benjamin)~
    ~Then you can view the charts and the statistics in the monitoring reports (no password)~
  • Other notes:
    • fix blocking issue 194: The jrobin v1.5.9 artifacts are now available in the Maven central repository as you can see here. The external (and currently unreachable) repository in the javamelody pom is now useless and removed.
    • fix issue 201: Unable to render MBeans tree when some JMX-retrieval exception occurs
      added: if there are deadlocked threads in the JVM, print a warning message with the names of the deadlocked threads at the top of threads dump, like in the html and pdf reports (revision 2678)
    • This version requires a Servlet 2.5 container (fixed in 1.37.0)

1.35.0 (Feb 28, 2012)

  • fix issue 178: Since v1.32, "Nb of http sessions" is 0 and "View http sessions" is always empty.
  • added: graphic of "Build queue length" in the monitoring of nodes, next to the graphic of "Running builds" (done in Jenkins Hackathon, with help from Kohsuke Kawaguchi)
  • added: optional parameter (-Djavamelody.dns-lookups-disabled=true) to allow disabling of dns lookups with InetAddress.getLocalHost() to prevent long hangs on startup/shutdown in some particular environments (issue 181, thanks to r6squeegee)

1.34.0 (Jan 28, 2012)

  • Minor bugfixes such as fonts in the PDF reports for Chinese people, when the first PDF report was made for non Chinese people

1.33.0 (Nov 29, 2011)

  • fix issue 11293 Monitoring plugin not installed because of NoClassDefFoundError: org.slf4j.ILoggerFactory on IBM J9 JVM (rev 40073)

1.32.1 (Oct 14, 2011)

  • fix issue 151: a Java 1.6 dependency was introduced in 1.32.0 (NoSuchFieldError: ROOT)

1.32.0 (Oct 13, 2011)

  • fix issue 141: exception while collecting data Read failed, file xyz not mapped for I/O (after out of disk space)
  • added: Chinese translation, and fix display of Chinese characters in the JRobin graphics and in the PDF reports (issue 150)
  • added: Action "Generate a heap dump" added for IBM JDK like for Oracle JDK, patch by David Karlsen in the javamelody users' group
  • added: Add link "Dump threads as text" below the list of threads
  • added: Provide an url (monitoring?action=mail_test) to test sending a pdf report by mail (issue 145).

1.31.0 (Aug 14, 2011)

  • fix issue 128: Clean the shutdown process
  • To display the username in the list of http sessions, look at ACEGI_SECURITY_LAST_USERNAME if getRemoteUser() was null.

1.30.0 (Jul 15, 2011)

  • fix issue 116: MBeans overview does not work with java 1.5
  • fix issue 117: Sorting of numbers is based on String comparison in German
  • fix issue 122: Average number of requests per minutes seems to be wrong, with a single day in a custom period
  • fix issue 124: Start date removed from the text at the top of the monitoring page, except if the "All" period is selected.


  • fix issue 106: a few HTTP hits are lost in the statistics for the first hit(s) on new requests (no impact on statistics once requests are known)


  • fix issue 99: NullPointerException when displaying the list of process on AIX


  • added: pdf report of MBeans


  • fix issue 8344 (ClassNotFoundException: net.bull.javamelody.SessionListener)
  • added: Portuguese Brazil translation, including the online help, thanks to Luiz Gonzaga da Mata and Renan Oliveira da Cunha. This translation is the default for all Portuguese people. The first language in the browser settings should be Portuguese (pt) or Portuguese/Brazil (pt-br) to use it. The online help in Portuguese Brazil is also available.
  • added: in the nodes report, chart of the number of the running builds by period


  • fix some issues in the monitoring of Jenkins nodes when the operating systems of the nodes are heterogeneous
  • fix issue 80: Memory histogram should be supported on Mac OS X
  • added: if JRockit, display the JRockit specific MBeans
  • added: pdf reports of http sessions and of heap histogram


  • fix issue 74: "View OS Processes" does not work on MAC OS X Server
  • added: In the system actions, new view "MBeans" with the values and the descriptions of the attributes. (MBeans contain configuration and low-level data on the application server and on the JVM). The values are viewable but not writable and operations can not be performed.
  • added: Monitoring of the Jenkins nodes (slaves in general) similar to the monitoring of the Jenkins master.

    If the monitoring of the Jenkins master is available at http://localhost:8080/monitoring then the monitoring of the Jenkins nodes is available at http://localhost:8080/monitoring/nodes.

    The monitoring of the Jenkins nodes includes:
    • Aggregated "used memory" chart, aggregated "% cpu" chart (between 0 and 100) for day, week, month, year or a custom period.
    • Chart of the build times over time for the selected period
    • Other aggregated charts: % GC, threads count, loaded classes count, system load average, open file descriptors count and more for the selected period
    • Statistics of the build times for the selected period
    • Running builds with time elapsed
    • Threads informations for each node including name, state, stack-trace and an action to kill any thread
    • Heap histogram aggregated for all nodes
    • Current system informations for each node
    • MBeans for each node
    • Last values in charts and MBeans values. For example, the following URLs can be used: 1 and 2 (the plugin-authentication-disabled parameter could be used)
    • Process informations for each node
    • Actions to execute the GC or to generate a heap dump on each node


  • fix issue 66: Since tomcat 6.0.21 and when tomcat based authentication is used, session count is false and there is a possible memory leak for invalidated http sessions in v1.22.0. This is because of the changes for tomcat enhancement 45255. To tomcat experts: Isn't an http session supposed to die first before being able to born a second time?


  • fix: Maximum values in statistics could be incorrect
  • added major feature: graphic of the number of sessions and details on http sessions with the link in "System informations" (this is emulated without httpsessionlistener, because httpsessionlistener can't be used in Jenkins plugins)
  • added: If Jenkins security is enabled, the system property -Djavamelody.plugin-authentication-disabled=true can be added to a Jenkins server in order to disable authentication of the monitoring page in the Monitoring plugin and to be able to add the server to a javamelody centralized collect server. (A system property like -Djavamelody.allowed-addr-pattern=127\.0\.0\.1 can also be added with the ip address of the collect server)


  • fix to display the list of http sessions when Tomcat throws an exception "Session already invalidated"
  • fix to display the list of process when using Windows in Germany
  • added: If Tomcat or JBoss, new graphics in "Other charts" for the number of active http and ajp threads in the server, the number of bytes received per minute and the number of bytes sent per minute by the server.


  • added: German translation thanks to Ewald Arnold. We would like to have feedback here.
  • fix: In the html display of the current requests, put back the complete http request with query parameters and values, like it was displayed before v1.17.0


  • fix NumberFormatException requesting process information.
  • fix (removed) jndi link in Winstone.
  • added debugging logs.


  • other minor bugs fixed.


  • some minor bugs fixed.


  • change to reduce disk usage: Some common http requests are now aggregated in statistics, for example on build numbers.

The javamelody.http-transform-pattern parameter has now the default value of


and all matches in http URLs will be replaced by "$". Note that it is possible on each Jenkins server to change the value of this parameter with a system property -Djavamelody.http-transform-pattern=xxx in the java command line.


  • change to reduce disk usage: Graphics in http errors and in errors logs are no longer displayed


  • fix: There was an InternalError on ubuntu or debian using the tomcat package with jsvc


  • added: remember the last selected period (with a persistent cookie in the browser)
  • added: UI option to display graphs and statistics for custom periods, via fields of start and end dates of period to display


  • added: New charts "Threads count", "Loaded classes count", "Used non heap memory", "Used physical memory", "Used swap space" (displayed with the new link "Other charts")
  • added: Button to kill a java thread
  • added: parameters can now be specified in environment variables like in system properties or webapp context
  • added: new parameter "monitoring-path" to change the url "/monitoring" of the report to "/admin/monitoring" for example
  • added: new parameter "mail-periods" to change the period of mail reports from weekly to daily or monthly or a combination of the 3
  • added: display the version of JavaMelody at the bottom of the html and pdf reports
  • added: display of "ajax GET" or "ajax POST" in http requests names for ajax requests


  • English: For people outside US, UK and France, default language is now the default locale of the server or English.


  • Fix: The "Monitoring" link in "/manage" page did not work when Jenkins was in a servlet context (not in the root context of the server).
  • JavaMelody fix: someone had an exception in report on Solaris 10 (getPID)


  • Removed jdbc graphs as there is no database in Jenkins,
  • Removed sessions graph, values and links as the javamelody SessionListener can't be registered without modifying web.xml
  • Added a link in "/manage" page
  • Added checkPermission to check authentication if configured


  • Initial


Translations for other languages such as Spanish, Italian are welcomed.

The files to translate are:
in English:
the same in French:
the same in German:
the same in Portuguese:
the same in Chinese:
If you want to do some translation notify me at evernat at, then I will include your files in next release.


plugin-misc plugin-misc Delete
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

Add Comment