001package io.prometheus.metrics.exporter.httpserver; 002 003import com.sun.net.httpserver.HttpExchange; 004import com.sun.net.httpserver.HttpHandler; 005import io.prometheus.metrics.annotations.StableApi; 006import java.io.IOException; 007import java.nio.charset.StandardCharsets; 008 009/** Handler for the /-/healthy endpoint */ 010@StableApi 011public class HealthyHandler implements HttpHandler { 012 013 private final byte[] responseBytes; 014 private final String contentType; 015 016 public HealthyHandler() { 017 String responseString = "Exporter is healthy.\n"; 018 this.responseBytes = responseString.getBytes(StandardCharsets.UTF_8); 019 this.contentType = "text/plain; charset=utf-8"; 020 } 021 022 @Override 023 public void handle(HttpExchange exchange) throws IOException { 024 try { 025 exchange.getResponseHeaders().set("Content-Type", contentType); 026 exchange.getResponseHeaders().set("Content-Length", Integer.toString(responseBytes.length)); 027 exchange.sendResponseHeaders(200, responseBytes.length); 028 exchange.getResponseBody().write(responseBytes); 029 } finally { 030 exchange.close(); 031 } 032 } 033}