Skip to content

Commit 613ebe7

Browse files
committed
Tidy JvmGCPause
1 parent d88f34f commit 613ebe7

File tree

2 files changed

+14
-36
lines changed

2 files changed

+14
-36
lines changed

metrics/src/main/java/io/avaje/metrics/core/DefaultMetricProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,7 @@ public JvmMetrics registerJvmThreadMetrics() {
153153
@Override
154154
public JvmMetrics registerJvmGCMetrics() {
155155
JvmGarbageCollection.createGauges(this, withDetails);
156-
JvmGCPause.createMeters(this, withDetails);
156+
JvmGCPause.createMeters(this);
157157
return this;
158158
}
159159

metrics/src/main/java/io/avaje/metrics/core/JvmGCPause.java

Lines changed: 13 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -24,40 +24,20 @@ final class JvmGCPause {
2424

2525
private static final System.Logger log = AppLog.getLogger("io.avaje.metrics");
2626

27-
static void createMeters(MetricRegistry registry, boolean withDetails) {
27+
static void createMeters(MetricRegistry registry) {
2828
if (!extensionsPresent() || !hasNotifications()) {
2929
return;
3030
}
31-
final var jcPause = new JvmGCPause();
32-
jcPause.createMeters(registry);
33-
}
34-
35-
// private final List<Runnable> cleanup = new ArrayList<>();
3631

37-
void createMeters(MetricRegistry registry) {
38-
final var listener = new GcListener(registry);
32+
final var listener = new Listener(registry);
3933
final var filter = new Filter();
4034
for (GarbageCollectorMXBean gcBean : ManagementFactory.getGarbageCollectorMXBeans()) {
41-
if (!(gcBean instanceof NotificationEmitter)) {
42-
continue;
35+
if (gcBean instanceof NotificationEmitter) {
36+
final var emitter = (NotificationEmitter) gcBean;
37+
emitter.addNotificationListener(listener, filter, null);
4338
}
44-
final var emitter = (NotificationEmitter) gcBean;
45-
emitter.addNotificationListener(listener, filter, null);
46-
47-
// cleanup.add(() -> {
48-
// try {
49-
// notificationEmitter.removeNotificationListener(listener);
50-
// } catch (ListenerNotFoundException ignore) {
51-
// // ignore
52-
// }
53-
// });
5439
}
5540
}
56-
//
57-
// @Override
58-
// public void close() {
59-
// // cleanup.forEach(Runnable::run);
60-
// }
6141

6242
static final class Filter implements NotificationFilter {
6343
@Override
@@ -66,12 +46,14 @@ public boolean isNotificationEnabled(Notification notification) {
6646
}
6747
}
6848

69-
static final class GcListener implements NotificationListener {
49+
static final class Listener implements NotificationListener {
7050

71-
private final MetricRegistry registry;
51+
private final Meter concurrent;
52+
private final Meter pause;
7253

73-
GcListener(MetricRegistry registry) {
74-
this.registry = registry;
54+
Listener(MetricRegistry registry) {
55+
this.concurrent = registry.meter("jvm.gc.concurrent");
56+
this.pause = registry.meter("jvm.gc.pause");
7557
}
7658

7759
@Override
@@ -83,14 +65,10 @@ public void handleNotification(Notification notification, Object ref) {
8365
String gcCause = notificationInfo.getGcCause();
8466
long duration = notificationInfo.getGcInfo().getDuration();
8567

86-
//Tags tags = Tags.of("gc:" + gcName, "action:" + gcAction, "cause:" + gcCause);
8768
if (isConcurrentPhase(gcCause, gcName)) {
88-
Meter meter = registry.meter("jvm.gc.concurrent");//, tags);
89-
meter.addEvent(duration);
90-
69+
concurrent.addEvent(duration);
9170
} else {
92-
Meter meter = registry.meter("jvm.gc.pause");//, tags);
93-
meter.addEvent(duration);
71+
pause.addEvent(duration);
9472
}
9573
}
9674
}

0 commit comments

Comments
 (0)