如何在非Spring Boot应用程序中设置Prometheus端点

时间:2018-09-10 10:54:11

标签: java spring spring-boot prometheus

我想使用Prometheus在我的应用程序中添加路径“ localhost:8080 / metrics”,以查看变量上的Counter。我读到,对于Spring Boot应用程序,我只需要主类上的注释。

package hello;

import io.prometheus.client.spring.boot.EnablePrometheusEndpoint;
import io.prometheus.client.spring.boot.EnableSpringBootMetricsCollector;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnablePrometheusEndpoint
@EnableSpringBootMetricsCollector
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

如何在没有@SpringBootApplication的非Spring Boot应用程序中获得相同的结果。

可以通过注册多个servlet来实现吗?

1 个答案:

答案 0 :(得分:3)

您可能想将Prometheus servlet添加到您的应用程序。

我将举例说明the documentation中引用的Jetty服务器:

Server server = new Server(1234);
ServletContextHandler context = new ServletContextHandler();
context.setContextPath("/");
server.setHandler(context);

context.addServlet(new ServletHolder(new MetricsServlet()), "/metrics");

依赖项io.prometheus.simpleclient_spring_boot是Spring Boot的集成。相反,您应该查看核心库io.prometheus.simpleclient