From bcac58614a2c46c3e661447a05d57ddefe381f95 Mon Sep 17 00:00:00 2001 From: tinybad <469436113@qq.com> Date: Sun, 9 Aug 2026 22:35:31 +0800 Subject: [PATCH] Set Content-Type for Prometheus metrics response --- .../org/apache/bifromq/demo/plugin/DemoPlugin.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/build/build-plugin-demo/src/main/java/org/apache/bifromq/demo/plugin/DemoPlugin.java b/build/build-plugin-demo/src/main/java/org/apache/bifromq/demo/plugin/DemoPlugin.java index 0a5817556..9da9c31ce 100644 --- a/build/build-plugin-demo/src/main/java/org/apache/bifromq/demo/plugin/DemoPlugin.java +++ b/build/build-plugin-demo/src/main/java/org/apache/bifromq/demo/plugin/DemoPlugin.java @@ -29,9 +29,11 @@ import io.micrometer.core.instrument.distribution.DistributionStatisticConfig; import io.micrometer.prometheus.PrometheusConfig; import io.micrometer.prometheus.PrometheusMeterRegistry; +import io.prometheus.client.exporter.common.TextFormat; import java.io.IOException; import java.io.OutputStream; import java.net.InetSocketAddress; +import java.nio.charset.StandardCharsets; import java.time.Duration; import lombok.extern.slf4j.Slf4j; import org.apache.bifromq.plugin.BifroMQPlugin; @@ -79,10 +81,12 @@ public DistributionStatisticConfig configure(Meter.Id id, DistributionStatisticC try { prometheusExportServer = HttpServer.create(new InetSocketAddress(exportPort), 0); prometheusExportServer.createContext(getContext(), httpExchange -> { - String response = registry.scrape(); - httpExchange.sendResponseHeaders(200, response.getBytes().length); + byte[] response = registry.scrape().getBytes(StandardCharsets.UTF_8); + httpExchange.getResponseHeaders() + .set("Content-Type", TextFormat.CONTENT_TYPE_004); + httpExchange.sendResponseHeaders(200, response.length); try (OutputStream os = httpExchange.getResponseBody()) { - os.write(response.getBytes()); + os.write(response); } }); serverThread = new Thread(prometheusExportServer::start);