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}