2022-05-23 17:15:46 +02:00
|
|
|
package org.gcube.smartgears.extensions.resource;
|
|
|
|
|
|
|
|
import static org.gcube.smartgears.Constants.plain_text;
|
|
|
|
import static org.gcube.smartgears.extensions.HttpExtension.Method.GET;
|
|
|
|
|
|
|
|
import java.io.IOException;
|
|
|
|
|
2024-03-11 10:22:25 +01:00
|
|
|
import jakarta.servlet.ServletException;
|
|
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
|
|
import jakarta.servlet.http.HttpServletResponse;
|
2022-05-23 17:15:46 +02:00
|
|
|
|
|
|
|
import org.gcube.smartgears.extensions.ApiResource;
|
|
|
|
import org.gcube.smartgears.extensions.ApiSignature;
|
|
|
|
|
|
|
|
import io.micrometer.core.instrument.Metrics;
|
|
|
|
import io.micrometer.prometheus.PrometheusMeterRegistry;
|
|
|
|
|
|
|
|
public class MetricsResource extends ApiResource {
|
|
|
|
|
|
|
|
private static final long serialVersionUID = 1L;
|
|
|
|
|
|
|
|
public static final String mapping = "/metrics";
|
|
|
|
|
|
|
|
private static final ApiSignature signature = handles(mapping).with(method(GET).produces(plain_text));
|
|
|
|
|
|
|
|
|
|
|
|
MetricsResource() {
|
|
|
|
super(signature);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
|
|
|
|
PrometheusMeterRegistry registry = (PrometheusMeterRegistry) Metrics.globalRegistry.getRegistries().stream().findFirst().get();
|
|
|
|
registry.scrape(resp.getWriter());
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|