JVM (Micrometer)

Dashboard for Micrometer instrumented applications (Java, Spring Boot, Micronaut)

JVM (Micrometer) screenshot 1
JVM (Micrometer) screenshot 2
<h2 id="jvm-micrometer">JVM (Micrometer)</h2> <p>A dashboard for <a href="https://micrometer.io" target="_blank" rel="noopener noreferrer">Micrometer</a> instrumented applications (Java, Spring Boot, Micronaut).</p> <h2 id="features">Features</h2> <ul> <li>JVM memory</li> <li>Process memory (provided by <a href="https://github.com/mweirauch/micrometer-jvm-extras" target="_blank" rel="noopener noreferrer">micrometer-jvm-extras</a>)</li> <li>CPU-Usage, Load, Threads, Thread States, File Descriptors, Log Events</li> <li>JVM Memory Pools (Heap, Non-Heap)</li> <li>Garbage Collection/Pressure</li> <li>Classloading</li> <li>Direct-/Mapped-Buffer</li> <li>minimalist I/O Overview <ul> <li>HTTP - Rate, Errors, Duration</li> <li>TOMCAT/JETTY - Utilisation</li> </ul> </li> </ul> <h2 id="note">Note</h2> <p>Instead of using the <code>job</code> tag to distinct different applications, this dashboard makes use of a <a href="https://micrometer.io/docs/concepts#_common_tags" target="_blank" rel="noopener noreferrer">common tag</a> called <code>application</code> applied to every metric.</p> <p>In a Spring Boot setting, this could look like this:</p> <div class="code-snippet "><div class="lang-toolbar"> <span class="lang-toolbar__item lang-toolbar__item-active">java</span> <span class="code-clipboard"> <button x-data="app_code_snippet()" x-init="init()" @click="copy()"> <img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13"> <span>Copy</span> </button> </span> <div class="lang-toolbar__border"></div> </div><div class="code-snippet "> <pre data-expanded="false"><code class="language-java">@Bean MeterRegistryCustomizer&lt;MeterRegistry&gt; configurer( @Value(&#34;${spring.application.name}&#34;) String applicationName) { return (registry) -&gt; registry.config().commonTags(&#34;application&#34;, applicationName); }</code></pre> </div> </div> <p>Or since Spring Boot <code>2.1</code> / Micrometer <code>1.1.0</code> with a property:</p> <div class="code-snippet "><div class="lang-toolbar"> <span class="lang-toolbar__item lang-toolbar__item-active">properties</span> <span class="code-clipboard"> <button x-data="app_code_snippet()" x-init="init()" @click="copy()"> <img class="code-clipboard__icon" src="/media/images/icons/icon-copy-small-2.svg" alt="Copy code to clipboard" width="14" height="13"> <span>Copy</span> </button> </span> <div class="lang-toolbar__border"></div> </div><div class="code-snippet "> <pre data-expanded="false"><code class="language-properties">management.metrics.tags.application=${spring.application.name}</code></pre> </div> </div> <h2 id="compatibility">Compatibility</h2> <ul> <li>micrometer:1.1.0+</li> <li>micrometer-jvm-extras:0.1.2+</li> </ul> <h2 id="changelog">Changelog</h2> <ul> <li>2023-05-04 (Revision 10) <ul> <li>added GC Pressure panel in JVM Misc section</li> <li>changed process average CPU usage query from 1h to 15m</li> <li>reworked Buffer Pool panels <ul> <li>combined buffer usage and buffer count into one panel</li> <li>fixed buffer detection (where hardcoded to &ldquo;direct&rdquo; and &ldquo;mapped&rdquo; before)</li> </ul> </li> <li>removed JVM Memory Pool selection dropdown</li> </ul> </li> <li>2019-11-03 (Revision 9) <ul> <li>adjusted &ldquo;JVM Process Memory&rdquo; panel to <a href="https://github.com/mweirauch/micrometer-jvm-extras/releases/tag/0.2.0" target="_blank" rel="noopener noreferrer">micrometer-jvm-extras:0.2.0</a> (removed &lsquo;pss&rsquo; and &lsquo;swappss&rsquo;)</li> <li>dropped micrometer:1.0.x query fallbacks from PromQL</li> <li>minor polish</li> </ul> </li> <li>2019-04-15 (Revision 8) <ul> <li>fixed PromQL query for Java11 non-heap areas</li> <li>GC allocation/promotion unit changed to bytes/s (from byte)</li> <li>moved process memory metrics to dedicated panel</li> </ul> </li> <li>2018-11-14 (Revision 7) <ul> <li>updated some metric queries (with fallbacks) due to meter name changes from Micrometer <code>1.0.x</code> to <code>1.1.x</code></li> <li>added Thread States panel</li> </ul> </li> </ul> <h2 id="contact">Contact</h2> <p>For suggestions or bug reports, please go to the <a href="https://github.com/mweirauch/grafana-dashboards" target="_blank" rel="noopener noreferrer">GitHub Project</a>.</p>
Revisions
RevisionDescriptionCreated
Java Virtual Machine (JVM)

Java Virtual Machine (JVM)

by Grafana Labs
Grafana Labs solution

Easily monitor a Java virtual machine, which allows computers to run Java programs, with Grafana Cloud's out-of-the-box monitoring solution.

Learn more

Get this dashboard

Import the dashboard template

or

Download JSON

Datasource
Dependencies