我正在使用Spring Boot 2.x和Prometheus。
我想公开一个Prometheus可以刮除的端点:端口,该端口与执行器路径上的其他端点分开。
这是为了允许围绕执行器和度量标准使用不同的安全模型,有人知道这是否可行以及如何实现?
答案 0 :(得分:1)
您可以使用io.prometheus。
添加到您的pom.file
<groupId>io.prometheus</groupId>
<artifactId>simpleclient</artifactId>
<version>${prom.version}</version>
</dependency>
<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient_hotspot</artifactId>
<version>${prom.version}</version>
</dependency>
<dependency>
<groupId>io.prometheus</groupId>
<artifactId>simpleclient_httpserver</artifactId>
<version>${prom.version}</version>
</dependency>
并创建一个像这样的类
@Configuration
@ComponentScan(basePackageClasses = MetricConfiguration.class)
public class MetricConfiguration {
private static final Logger LOGGER = LoggerFactory.getLogger(MetricConfiguration.class);
private HTTPServer server;
private static final int DEFAULT_PORT = 28080;
@PostConstruct
private void init() {
DefaultExports.initialize();
server = new HTTPServer(DEFAULT_PORT);
LOGGER.info("prometheus exporter started on port {}", DEFAULT_PORT);
}
@PreDestroy
private void destroy() {
server.stop();
LOGGER.info("prometheus exporter stopped");
}
}
在应用程序上享受指标:28080 /指标
答案 1 :(得分:0)
这是我从Slack频道获得的答案。希望这会有所帮助
此类https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/export/prometheus/PrometheusScrapeEndpoint.java公开了Spring Boot上的默认Prometheus端点
您可以在下面创建另一个具有不同ID的第二类
@WebEndpoint(id = "prometheus")
这将公开第二个端点。然后,您可以配置Prometheus以不同的刮擦间隔刮擦两个单独的端点