aboutsummaryrefslogtreecommitdiffstats
path: root/standardization/moher-api/metrics/src/main
diff options
context:
space:
mode:
authorFilip Krzywka <filip.krzywka@nokia.com>2019-05-30 09:58:19 +0200
committerFilip Krzywka <filip.krzywka@nokia.com>2019-06-03 10:09:05 +0200
commitd907c2636bf32979dea48348e41487685f776fc4 (patch)
tree68188706f15ef8841c110a6c7939063f6f7b1b6a /standardization/moher-api/metrics/src/main
parentda54f3e4c7e825908ef332e7913e1c4eb4fa82d1 (diff)
Bind default metrics to registry in monitoring SDK
Change-Id: I074d28355eebe1dfb04e9dff1cc9580e68f10f2b Issue-ID: DCAEGEN2-1522 Signed-off-by: Filip Krzywka <filip.krzywka@nokia.com>
Diffstat (limited to 'standardization/moher-api/metrics/src/main')
-rw-r--r--standardization/moher-api/metrics/src/main/java/org/onap/dcaegen2/services/sdk/standardization/moher/metrics/api/MetricsFactory.java16
-rw-r--r--standardization/moher-api/metrics/src/main/java/org/onap/dcaegen2/services/sdk/standardization/moher/metrics/impl/MetricsImpl.java13
2 files changed, 28 insertions, 1 deletions
diff --git a/standardization/moher-api/metrics/src/main/java/org/onap/dcaegen2/services/sdk/standardization/moher/metrics/api/MetricsFactory.java b/standardization/moher-api/metrics/src/main/java/org/onap/dcaegen2/services/sdk/standardization/moher/metrics/api/MetricsFactory.java
index 359f7470..33772c2f 100644
--- a/standardization/moher-api/metrics/src/main/java/org/onap/dcaegen2/services/sdk/standardization/moher/metrics/api/MetricsFactory.java
+++ b/standardization/moher-api/metrics/src/main/java/org/onap/dcaegen2/services/sdk/standardization/moher/metrics/api/MetricsFactory.java
@@ -20,6 +20,7 @@
package org.onap.dcaegen2.services.sdk.standardization.moher.metrics.api;
+import io.micrometer.core.instrument.binder.MeterBinder;
import io.micrometer.prometheus.PrometheusConfig;
import io.micrometer.prometheus.PrometheusMeterRegistry;
import org.onap.dcaegen2.services.sdk.standardization.moher.metrics.impl.MetricsImpl;
@@ -42,6 +43,14 @@ public class MetricsFactory {
/**
* Method for creating default Prometheus registry.
+ * <p>
+ * Client is expected to populate registry with custom metrics.
+ * Exact procedure can be found at Micrometer project site.
+ * </p>
+ * <p>
+ * It is recommended to search through available implementations of {@link MeterBinder}
+ * as there exists a plenty of them for most common use cases.
+ * </p>
*
* @since 1.2.0
*/
@@ -51,11 +60,16 @@ public class MetricsFactory {
/**
* Method for creating {@link Metrics} with configured Prometheus registry.
+ * <p>
+ * Returned object will add to registry few default JVM (memory and threads usage, garbage collection)
+ * and system metrics (CPU usage). For exact list of metrics added, please refer to implementation.
*
* @param registry Prometheus registry to be used
* @since 1.2.0
*/
public static Metrics createMetrics(PrometheusMeterRegistry registry) {
- return new MetricsImpl(registry);
+ MetricsImpl metrics = new MetricsImpl(registry);
+ metrics.configureDefaultMetrics();
+ return metrics;
}
}
diff --git a/standardization/moher-api/metrics/src/main/java/org/onap/dcaegen2/services/sdk/standardization/moher/metrics/impl/MetricsImpl.java b/standardization/moher-api/metrics/src/main/java/org/onap/dcaegen2/services/sdk/standardization/moher/metrics/impl/MetricsImpl.java
index 068a2db4..5fe4e12a 100644
--- a/standardization/moher-api/metrics/src/main/java/org/onap/dcaegen2/services/sdk/standardization/moher/metrics/impl/MetricsImpl.java
+++ b/standardization/moher-api/metrics/src/main/java/org/onap/dcaegen2/services/sdk/standardization/moher/metrics/impl/MetricsImpl.java
@@ -21,6 +21,11 @@
package org.onap.dcaegen2.services.sdk.standardization.moher.metrics.impl;
+import io.micrometer.core.instrument.binder.jvm.ClassLoaderMetrics;
+import io.micrometer.core.instrument.binder.jvm.JvmGcMetrics;
+import io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics;
+import io.micrometer.core.instrument.binder.jvm.JvmThreadMetrics;
+import io.micrometer.core.instrument.binder.system.ProcessorMetrics;
import io.micrometer.prometheus.PrometheusMeterRegistry;
import org.onap.dcaegen2.services.sdk.standardization.moher.metrics.api.Metrics;
import reactor.core.publisher.Flux;
@@ -45,4 +50,12 @@ public class MetricsImpl implements Metrics {
return Flux.interval(interval)
.map((l) -> registry.scrape());
}
+
+ public void configureDefaultMetrics(){
+ new ClassLoaderMetrics().bindTo(registry);
+ new JvmThreadMetrics().bindTo(registry);
+ new JvmMemoryMetrics().bindTo(registry);
+ new JvmGcMetrics().bindTo(registry);
+ new ProcessorMetrics().bindTo(registry);
+ }
}