diff --git a/flatmap-core/src/main/java/com/onthegomap/flatmap/config/Arguments.java b/flatmap-core/src/main/java/com/onthegomap/flatmap/config/Arguments.java index 63f145aa..be4f1ed6 100644 --- a/flatmap-core/src/main/java/com/onthegomap/flatmap/config/Arguments.java +++ b/flatmap-core/src/main/java/com/onthegomap/flatmap/config/Arguments.java @@ -1,7 +1,6 @@ package com.onthegomap.flatmap.config; import com.onthegomap.flatmap.geo.GeoUtils; -import com.onthegomap.flatmap.stats.PrometheusStats; import com.onthegomap.flatmap.stats.Stats; import java.nio.file.Files; import java.nio.file.Path; @@ -130,7 +129,7 @@ public class Arguments { LOGGER.info("Using prometheus push gateway stats"); String job = get("pushgateway.job", "prometheus pushgateway job ID", "flatmap"); Duration interval = duration("pushgateway.interval", "how often to send stats to prometheus push gateway", "15s"); - return new PrometheusStats(prometheus, job, interval); + return Stats.prometheusPushGateway(prometheus, job, interval); } else { LOGGER.info("Using in-memory stats"); return Stats.inMemory(); diff --git a/flatmap-core/src/main/java/com/onthegomap/flatmap/stats/PrometheusStats.java b/flatmap-core/src/main/java/com/onthegomap/flatmap/stats/PrometheusStats.java index a5be44b4..917f4bb7 100644 --- a/flatmap-core/src/main/java/com/onthegomap/flatmap/stats/PrometheusStats.java +++ b/flatmap-core/src/main/java/com/onthegomap/flatmap/stats/PrometheusStats.java @@ -47,7 +47,7 @@ public class PrometheusStats implements Stats { private final Map heapObjectsToMonitor = Collections .synchronizedMap(new LinkedHashMap<>()); - public PrometheusStats(String job) { + PrometheusStats(String job) { this.job = job; DefaultExports.register(registry); new ThreadDetailsExports().register(registry); @@ -57,7 +57,7 @@ public class PrometheusStats implements Stats { new PostGcMemoryCollector().register(registry); } - public PrometheusStats(String destination, String job, Duration interval) { + PrometheusStats(String destination, String job, Duration interval) { this(job); try { URL url = new URL(destination); diff --git a/flatmap-core/src/main/java/com/onthegomap/flatmap/stats/Stats.java b/flatmap-core/src/main/java/com/onthegomap/flatmap/stats/Stats.java index 360a4a10..3447643b 100644 --- a/flatmap-core/src/main/java/com/onthegomap/flatmap/stats/Stats.java +++ b/flatmap-core/src/main/java/com/onthegomap/flatmap/stats/Stats.java @@ -4,6 +4,7 @@ import static io.prometheus.client.Collector.NANOSECONDS_PER_SECOND; import com.onthegomap.flatmap.util.MemoryEstimator; import java.nio.file.Path; +import java.time.Duration; import java.util.Map; import java.util.function.Supplier; @@ -55,6 +56,10 @@ public interface Stats extends AutoCloseable { return new InMemory(); } + static Stats prometheusPushGateway(String destination, String job, Duration interval) { + return new PrometheusStats(destination, job, interval); + } + class InMemory implements Stats { private final Timers timers = new Timers();