From 966fa9957d5a57fa5633ba9c8d6eef091fb545c1 Mon Sep 17 00:00:00 2001 From: a10zn8 Date: Tue, 18 Jul 2023 15:33:07 +0400 Subject: [PATCH] add gzip to prom endpoint --- .../io/emeraldpay/dshackle/monitoring/MonitoringSetup.kt | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/io/emeraldpay/dshackle/monitoring/MonitoringSetup.kt b/src/main/kotlin/io/emeraldpay/dshackle/monitoring/MonitoringSetup.kt index b407d687..374513f7 100644 --- a/src/main/kotlin/io/emeraldpay/dshackle/monitoring/MonitoringSetup.kt +++ b/src/main/kotlin/io/emeraldpay/dshackle/monitoring/MonitoringSetup.kt @@ -33,6 +33,7 @@ import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service import java.io.IOException import java.net.InetSocketAddress +import java.util.zip.GZIPOutputStream import javax.annotation.PostConstruct @Service @@ -83,9 +84,12 @@ class MonitoringSetup( ) server.createContext(monitoringConfig.prometheus.path) { httpExchange -> val response = prometheusRegistry.scrape() - httpExchange.sendResponseHeaders(200, response.toByteArray().size.toLong()) + httpExchange.responseHeaders.add("Content-Encoding", "gzip") + httpExchange.sendResponseHeaders(200, 0) httpExchange.responseBody.use { os -> - os.write(response.toByteArray()) + GZIPOutputStream(os).use { gzos -> + gzos.write(response.toByteArray()) + } } } Thread(server::start).start()