From 03d52e668d332fc98ed0e7ad50e5ddf2603bbcb3 Mon Sep 17 00:00:00 2001 From: Tom Wieczorek Date: Wed, 19 Dec 2018 13:08:05 +0100 Subject: [PATCH] Allow DefaultExports to be registered with an arbitrary CollectorRegistry Signed-off-by: Tom Wieczorek --- .../client/hotspot/DefaultExports.java | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/simpleclient_hotspot/src/main/java/io/prometheus/client/hotspot/DefaultExports.java b/simpleclient_hotspot/src/main/java/io/prometheus/client/hotspot/DefaultExports.java index a3a36732f..79cd6ed5e 100644 --- a/simpleclient_hotspot/src/main/java/io/prometheus/client/hotspot/DefaultExports.java +++ b/simpleclient_hotspot/src/main/java/io/prometheus/client/hotspot/DefaultExports.java @@ -1,5 +1,7 @@ package io.prometheus.client.hotspot; +import io.prometheus.client.CollectorRegistry; + /** * Registers the default Hotspot collectors. *

@@ -15,21 +17,31 @@ */ public class DefaultExports { private static boolean initialized = false; + /** - * Register the default Hotspot collectors. + * Register the default Hotspot collectors with the default + * registry. It is safe to call this method multiple times, as + * this will only register the collectors once. */ public static synchronized void initialize() { if (!initialized) { - new StandardExports().register(); - new MemoryPoolsExports().register(); - new MemoryAllocationExports().register(); - new BufferPoolsExports().register(); - new GarbageCollectorExports().register(); - new ThreadExports().register(); - new ClassLoadingExports().register(); - new VersionInfoExports().register(); + register(CollectorRegistry.defaultRegistry); initialized = true; } } + /** + * Register the default Hotspot collectors with the given registry. + */ + public static void register(CollectorRegistry registry) { + new StandardExports().register(registry); + new MemoryPoolsExports().register(registry); + new MemoryAllocationExports().register(registry); + new BufferPoolsExports().register(registry); + new GarbageCollectorExports().register(registry); + new ThreadExports().register(registry); + new ClassLoadingExports().register(registry); + new VersionInfoExports().register(registry); + } + }