From 78228c6331be27029d74922c655ef578830f141a Mon Sep 17 00:00:00 2001 From: izeye Date: Mon, 8 Feb 2021 23:00:59 +0900 Subject: [PATCH] Demonstrate how to log meters having a specific prefix in their name See https://github.com/micrometer-metrics/micrometer/issues/2426 --- build.gradle | 2 +- .../java/com/izeye/sample/TestRunner.java | 8 +++ .../FilteredPrometheusScrapeEndpoint.java | 54 ------------------- 3 files changed, 9 insertions(+), 55 deletions(-) delete mode 100644 src/main/java/com/izeye/sample/support/metrics/FilteredPrometheusScrapeEndpoint.java diff --git a/build.gradle b/build.gradle index d146b8b..7502dc2 100644 --- a/build.gradle +++ b/build.gradle @@ -34,7 +34,7 @@ dependencies { implementation("org.springframework.boot:spring-boot-starter-web") implementation("org.springframework.boot:spring-boot-starter-actuator") - implementation("io.micrometer:micrometer-registry-prometheus") +// implementation("io.micrometer:micrometer-registry-prometheus") compileOnly("com.google.code.findbugs:jsr305:latest.release") diff --git a/src/main/java/com/izeye/sample/TestRunner.java b/src/main/java/com/izeye/sample/TestRunner.java index 7dffdf0..52f4a53 100644 --- a/src/main/java/com/izeye/sample/TestRunner.java +++ b/src/main/java/com/izeye/sample/TestRunner.java @@ -1,5 +1,6 @@ package com.izeye.sample; +import io.micrometer.core.instrument.Meter; import io.micrometer.core.instrument.MeterRegistry; import io.micrometer.core.instrument.Tags; import io.micrometer.core.instrument.binder.jvm.ExecutorServiceMetrics; @@ -33,6 +34,13 @@ public void run(ApplicationArguments args) { createExecutor(executorServiceName, tags); } + + for (Meter meter : this.meterRegistry.getMeters()) { + Meter.Id id = meter.getId(); + if (id.getName().startsWith("executor.")) { + System.out.println(id); + } + } } private void createExecutor(String executorServiceName, Tags tags) { diff --git a/src/main/java/com/izeye/sample/support/metrics/FilteredPrometheusScrapeEndpoint.java b/src/main/java/com/izeye/sample/support/metrics/FilteredPrometheusScrapeEndpoint.java deleted file mode 100644 index 03a8342..0000000 --- a/src/main/java/com/izeye/sample/support/metrics/FilteredPrometheusScrapeEndpoint.java +++ /dev/null @@ -1,54 +0,0 @@ -package com.izeye.sample.support.metrics; - -import java.io.IOException; -import java.io.StringWriter; -import java.io.Writer; -import java.util.Enumeration; -import java.util.Set; - -import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; -import org.springframework.boot.actuate.endpoint.web.annotation.WebEndpoint; -import org.springframework.lang.Nullable; -import org.springframework.stereotype.Component; - -import io.prometheus.client.Collector; -import io.prometheus.client.CollectorRegistry; -import io.prometheus.client.exporter.common.TextFormat; - -/** - * Filter-supported {@link org.springframework.boot.actuate.metrics.export.prometheus.PrometheusScrapeEndpoint}. - * - * @author Johnny Lim - */ -@Component -@WebEndpoint(id = "filteredPrometheus") -public class FilteredPrometheusScrapeEndpoint { - - private final CollectorRegistry collectorRegistry; - - public FilteredPrometheusScrapeEndpoint(CollectorRegistry collectorRegistry) { - this.collectorRegistry = collectorRegistry; - } - - @ReadOperation(produces = TextFormat.CONTENT_TYPE_004) - public String scrape(@Nullable Set includedNames) { - try { - Writer writer = new StringWriter(); - TextFormat.write004(writer, getSamples(includedNames)); - return writer.toString(); - } - catch (IOException ex) { - // This actually never happens since StringWriter::write() doesn't throw any - // IOException - throw new RuntimeException("Writing metrics failed", ex); - } - } - - private Enumeration getSamples(@Nullable Set includedNames) { - if (includedNames == null) { - return this.collectorRegistry.metricFamilySamples(); - } - return this.collectorRegistry.filteredMetricFamilySamples(includedNames); - } - -}