xref: /OpenGrok/opengrok-web/src/main/java/org/opengrok/web/servlet/MetricsServlet.java (revision aa6abf429bacc2c0baa482bff3022e77ef23c183)
1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License (the "License").
6  * You may not use this file except in compliance with the License.
7  *
8  * See LICENSE.txt included in this distribution for the specific
9  * language governing permissions and limitations under the License.
10  *
11  * When distributing Covered Code, include this CDDL HEADER in each
12  * file and include the License file at LICENSE.txt.
13  * If applicable, add the following below this CDDL HEADER, with the
14  * fields enclosed by brackets "[]" replaced with your own identifying
15  * information: Portions Copyright [yyyy] [name of copyright owner]
16  *
17  * CDDL HEADER END
18  */
19 
20 /*
21  * Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
22  */
23 package org.opengrok.web.servlet;
24 
25 import jakarta.servlet.annotation.WebServlet;
26 import jakarta.servlet.http.HttpServlet;
27 import jakarta.servlet.http.HttpServletRequest;
28 import jakarta.servlet.http.HttpServletResponse;
29 import org.opengrok.indexer.Metrics;
30 
31 import java.io.IOException;
32 import java.io.PrintWriter;
33 
34 @WebServlet("/metrics/prometheus")
35 public class MetricsServlet extends HttpServlet {
36 
37     private static final long serialVersionUID = 0L;
38 
39     @Override
doGet(final HttpServletRequest req, final HttpServletResponse resp)40     protected void doGet(final HttpServletRequest req, final HttpServletResponse resp) throws IOException {
41         try (PrintWriter pw = resp.getWriter()) {
42             pw.print(Metrics.getPrometheusRegistry().scrape());
43         }
44     }
45 }
46