Repository: quarkusio/quarkus
Issue: [Smallrye Metrics] Some memory pool metrics are missing

**Describe the bug**
When using quarkus-smallrye-metric extension, some memory pool metrics are missing. Looking at the code in `SmallRyeMetricsRecorder.memoryPoolMetrics` it registers metrics for all pools. 

Running Java 11 I have the following pools
```
CodeHeap 'non-nmethods'
Metaspace
Compressed Class Space
G1 Eden Space
G1 Old Gen
G1 Survivor Space
CodeHeap 'non-profiled nmethods'
```

But only metrics for three pools are displayed:

```
    "memoryPool.usage.max;name=G1 Old Gen": 9825056,
    "memoryPool.usage.max;name=G1 Survivor Space": 16777216,
    "memoryPool.usage.max;name=G1 Eden Space": 157286400,
    "memoryPool.usage;name=G1 Eden Space": 0,
    "memoryPool.usage;name=G1 Survivor Space": 14680064,
    "memoryPool.usage;name=G1 Old Gen": 0,
```
All non-heap memory pools are missing.

**Expected behavior**
Metrics for all memory pools should be displayed when going to the /metrics endpoint.

**Actual behavior**
Some memory pool metrics are missing.

**To Reproduce**
Steps to reproduce the behavior:
1. Add quarkus-smallrye-metric extension to your project.
2. Go to /metrics endpoint.

**Environment (please complete the following information):**
 - Output of `uname -a` or `ver`:  Linux 5.0.0-25-generic #26-Ubuntu SMP Thu Aug 1 12:04:58 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
 - Output of `java -version`: openjdk version "11.0.4" 2019-07-16
 - Quarkus version or git rev: master


Changed files:
extensions/smallrye-metrics/runtime/src/main/java/io/quarkus/smallrye/metrics/runtime/SmallRyeMetricsRecorder.java

diff --git a/extensions/smallrye-metrics/runtime/src/main/java/io/quarkus/smallrye/metrics/runtime/SmallRyeMetricsRecorder.java b/extensions/smallrye-metrics/runtime/src/main/java/io/quarkus/smallrye/metrics/runtime/SmallRyeMetricsRecorder.java
index d5f1bdac04d..ed09afc43f7 100644
--- a/extensions/smallrye-metrics/runtime/src/main/java/io/quarkus/smallrye/metrics/runtime/SmallRyeMetricsRecorder.java
+++ b/extensions/smallrye-metrics/runtime/src/main/java/io/quarkus/smallrye/metrics/runtime/SmallRyeMetricsRecorder.java
@@ -354,10 +354,20 @@ private void memoryPoolMetrics(MetricRegistry registry, List<String> names) {
                     .build();
             for (MemoryPoolMXBean mp : mps) {
                 if (mp.getCollectionUsage() != null && mp.getPeakUsage() != null) {
+                    // this will be the case for the heap memory pools
                     registry.register(usageMetadata, new LambdaGauge(() -> mp.getCollectionUsage().getUsed()),
                             new Tag("name", mp.getName()));
                     names.add(usageMetadata.getName());
 
+                    registry.register(maxMetadata, new LambdaGauge(() -> mp.getPeakUsage().getUsed()),
+                            new Tag("name", mp.getName()));
+                    names.add(maxMetadata.getName());
+                } else if (mp.getUsage() != null && mp.getPeakUsage() != null) {
+                    // this will be the case for the non-heap memory pools
+                    registry.register(usageMetadata, new LambdaGauge(() -> mp.getUsage().getUsed()),
+                            new Tag("name", mp.getName()));
+                    names.add(usageMetadata.getName());
+
                     registry.register(maxMetadata, new LambdaGauge(() -> mp.getPeakUsage().getUsed()),
                             new Tag("name", mp.getName()));
                     names.add(maxMetadata.getName());