You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@geode.apache.org by kl...@apache.org on 2019/03/19 23:31:13 UTC
[geode] branch develop updated: GEODE-6528: Use Micrometer Binder
for JVM Metrics (#3312)
This is an automated email from the ASF dual-hosted git repository.
klund pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/geode.git
The following commit(s) were added to refs/heads/develop by this push:
new 6fc7ea4 GEODE-6528: Use Micrometer Binder for JVM Metrics (#3312)
6fc7ea4 is described below
commit 6fc7ea4601141fe16912afeefb3f29193705afc6
Author: Kirk Lund <kl...@apache.org>
AuthorDate: Tue Mar 19 16:31:02 2019 -0700
GEODE-6528: Use Micrometer Binder for JVM Metrics (#3312)
Co-Authored-By: Dale Emery demery@pivotal.io
Co-Authored-By: Michael Oleske moleske@pivotal.io
---
.../metrics/CacheMeterRegistryFactory.java | 18 +++-----
.../metrics/CacheMeterRegistryFactoryTest.java | 52 ++++++++++++++++++----
2 files changed, 49 insertions(+), 21 deletions(-)
diff --git a/geode-core/src/main/java/org/apache/geode/internal/metrics/CacheMeterRegistryFactory.java b/geode-core/src/main/java/org/apache/geode/internal/metrics/CacheMeterRegistryFactory.java
index e4336f9..70c1ac5 100644
--- a/geode-core/src/main/java/org/apache/geode/internal/metrics/CacheMeterRegistryFactory.java
+++ b/geode-core/src/main/java/org/apache/geode/internal/metrics/CacheMeterRegistryFactory.java
@@ -15,27 +15,21 @@
package org.apache.geode.internal.metrics;
import io.micrometer.core.instrument.MeterRegistry;
+import io.micrometer.core.instrument.binder.jvm.JvmMemoryMetrics;
import io.micrometer.core.instrument.composite.CompositeMeterRegistry;
-import org.apache.geode.annotations.VisibleForTesting;
-
public class CacheMeterRegistryFactory implements CompositeMeterRegistryFactory {
- @VisibleForTesting
- static final String CLUSTER_ID_TAG = "cluster.id";
- @VisibleForTesting
- static final String MEMBER_NAME_TAG = "member.name";
- @VisibleForTesting
- static final String HOST_NAME_TAG = "host.name";
-
@Override
public CompositeMeterRegistry create(int systemId, String memberName, String hostName) {
CompositeMeterRegistry registry = new CompositeMeterRegistry();
MeterRegistry.Config registryConfig = registry.config();
- registryConfig.commonTags(CLUSTER_ID_TAG, String.valueOf(systemId));
- registryConfig.commonTags(MEMBER_NAME_TAG, memberName == null ? "" : memberName);
- registryConfig.commonTags(HOST_NAME_TAG, hostName == null ? "" : hostName);
+ registryConfig.commonTags("cluster.id", String.valueOf(systemId));
+ registryConfig.commonTags("member.name", memberName == null ? "" : memberName);
+ registryConfig.commonTags("host.name", hostName == null ? "" : hostName);
+
+ new JvmMemoryMetrics().bindTo(registry);
return registry;
}
diff --git a/geode-core/src/test/java/org/apache/geode/internal/metrics/CacheMeterRegistryFactoryTest.java b/geode-core/src/test/java/org/apache/geode/internal/metrics/CacheMeterRegistryFactoryTest.java
index a7d76cb..de83322 100644
--- a/geode-core/src/test/java/org/apache/geode/internal/metrics/CacheMeterRegistryFactoryTest.java
+++ b/geode-core/src/test/java/org/apache/geode/internal/metrics/CacheMeterRegistryFactoryTest.java
@@ -14,14 +14,15 @@
*/
package org.apache.geode.internal.metrics;
-import static org.apache.geode.internal.metrics.CacheMeterRegistryFactory.CLUSTER_ID_TAG;
-import static org.apache.geode.internal.metrics.CacheMeterRegistryFactory.HOST_NAME_TAG;
-import static org.apache.geode.internal.metrics.CacheMeterRegistryFactory.MEMBER_NAME_TAG;
import static org.assertj.core.api.Assertions.assertThat;
+import java.util.Collection;
+
+import io.micrometer.core.instrument.Gauge;
import io.micrometer.core.instrument.Meter;
import io.micrometer.core.instrument.Tag;
import io.micrometer.core.instrument.composite.CompositeMeterRegistry;
+import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
import org.junit.Test;
public class CacheMeterRegistryFactoryTest {
@@ -45,10 +46,11 @@ public class CacheMeterRegistryFactoryTest {
CompositeMeterRegistry registry = factory.create(CLUSTER_ID, theMemberName, HOST_NAME);
- Meter meter = registry.counter("my.meter");
+ Meter meter = registry
+ .counter("my.meter");
assertThat(meter.getId().getTags())
- .contains(Tag.of(MEMBER_NAME_TAG, theMemberName));
+ .contains(Tag.of("member.name", theMemberName));
}
@Test
@@ -58,10 +60,11 @@ public class CacheMeterRegistryFactoryTest {
CompositeMeterRegistry registry = factory.create(theSystemId, MEMBER_NAME, HOST_NAME);
- Meter meter = registry.counter("my.meter");
+ Meter meter = registry
+ .counter("my.meter");
assertThat(meter.getId().getTags())
- .contains(Tag.of(CLUSTER_ID_TAG, String.valueOf(theSystemId)));
+ .contains(Tag.of("cluster.id", String.valueOf(theSystemId)));
}
@Test
@@ -71,9 +74,40 @@ public class CacheMeterRegistryFactoryTest {
CompositeMeterRegistry registry = factory.create(CLUSTER_ID, MEMBER_NAME, theHostName);
- Meter meter = registry.counter("my.meter");
+ Meter meter = registry
+ .counter("my.meter");
assertThat(meter.getId().getTags())
- .contains(Tag.of(HOST_NAME_TAG, theHostName));
+ .contains(Tag.of("host.name", theHostName));
+ }
+
+ @Test
+ public void addsGaugesForHeapMemory() {
+ CacheMeterRegistryFactory factory = new CacheMeterRegistryFactory();
+
+ CompositeMeterRegistry registry = factory.create(CLUSTER_ID, MEMBER_NAME, HOST_NAME);
+ registry.add(new SimpleMeterRegistry());
+
+ Collection<Gauge> heapGauges = registry
+ .find("jvm.memory.used")
+ .tag("area", "heap")
+ .gauges();
+
+ assertThat(heapGauges).isNotEmpty();
+ }
+
+ @Test
+ public void addsGaugesForNonHeapUsedMemory() {
+ CacheMeterRegistryFactory factory = new CacheMeterRegistryFactory();
+
+ CompositeMeterRegistry registry = factory.create(CLUSTER_ID, MEMBER_NAME, HOST_NAME);
+ registry.add(new SimpleMeterRegistry());
+
+ Collection<Gauge> nonheapGauges = registry
+ .find("jvm.memory.used")
+ .tag("area", "nonheap")
+ .gauges();
+
+ assertThat(nonheapGauges).isNotEmpty();
}
}