<groupId>io.micrometer</groupId>
<artifactId>micrometer-tracing-bridge-otel</artifactId>
</dependency>
+ <dependency>
+ <groupId>io.github.mweirauch</groupId>
+ <artifactId>micrometer-jvm-extras</artifactId>
+ </dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
package org.onap.cps.config;
import com.hazelcast.map.IMap;
+import io.github.mweirauch.micrometer.jvm.extras.ProcessMemoryMetrics;
+import io.github.mweirauch.micrometer.jvm.extras.ProcessThreadMetrics;
import io.micrometer.core.aop.TimedAspect;
import io.micrometer.core.instrument.Gauge;
import io.micrometer.core.instrument.MeterRegistry;
+import io.micrometer.core.instrument.binder.MeterBinder;
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
return new TimedAspect(meterRegistry);
}
+ @Bean
+ public MeterBinder processMemoryMetrics() {
+ return new ProcessMemoryMetrics();
+ }
+
+ @Bean
+ public MeterBinder processThreadMetrics() {
+ return new ProcessThreadMetrics();
+ }
+
/**
* Register gauge metric for cm handles with state 'advised'.
*
def simpleMeterRegistry = new SimpleMeterRegistry()
def 'Creating a timed aspect.'() {
- expect: ' a timed aspect can be created'
+ expect: 'a timed aspect can be created'
assert objectUnderTest.timedAspect(simpleMeterRegistry) != null
}
+ def 'Creating JVM process metrics.'() {
+ expect: 'process memory metrics can be created'
+ assert objectUnderTest.processMemoryMetrics() != null
+ and: 'process thread metrics can be created'
+ assert objectUnderTest.processThreadMetrics() != null
+ }
+
def 'Creating gauges for cm handle states.'() {
given: 'cache returns value for each state'
cmHandlesByState.get(_) >> 1
<type>pom</type>
<scope>import</scope>
</dependency>
+ <dependency>
+ <groupId>io.github.mweirauch</groupId>
+ <artifactId>micrometer-jvm-extras</artifactId>
+ <version>0.2.2</version>
+ </dependency>
<dependency>
<groupId>io.gsonfire</groupId>
<artifactId>gson-fire</artifactId>