Spring Boot Admin Prometheus服务发现
#java #spring #prometheus #servicediscovery

SBAPSD-暴露您的春季启动管理员注册申请,以进行Prometheus监视。

介绍

监视您的应用程序对于维持健康系统至关重要。 Spring Boot Admin 是管理和监视Spring Boot应用程序的流行工具,提供了一个中央仪表板来可视化应用程序状态和指标。另一方面, Prometheus 是一种强大的开源监视和警报工具包,已成为许多开发人员的首选解决方案。当您使用Spring Boot Admin管理您的应用程序和Prometheus作为监视解决方案时,必须找到一种将应用程序实例暴露于Prometheus的有效方法。那就是 sbapsd 进来的地方。这个新的Java库允许您以Prometheus HTTP服务发现格式公开在Spring Boot Admin中注册的应用程序实例,从而在没有任何其他手动配置或设置的情况下更容易监视您的应用程序。

sbapsd是一个完美的解决方案,如果您已经具有在Spring Boot Admin中注册的基于Spring Boot的应用程序的设置,并且想在不手动将每个实例添加到Scrape配置或设置的情况下引入基于Prometheus的监视堆栈任何其他服务发现工具。

SBAPSD入门

SBAPSD可以通过两种方式使用:作为A 独立应用程序或作为集成到您现有的Spring Boot Admin Server应用程序或任何其他应用程序中。这是两个用例开始的方法。

使用SBAPSD作为库

1ï¶将sbapsd-server依赖性添加到您的项目中:

Gradle:

implementation("com.github.alexey-lapin.sbapsd:sbapsd-server:latest")

for maven:

<dependency>
    <groupId>com.github.alexey-lapin.sbapsd</groupId>
    <artifactId>sbapsd-server</artifactId>
    <version>latest</version>
</dependency>

确保您的类路径上有弹簧网堆,例如 spring-boot-starter-webflux spring-boot-starter-starter-web 。当 spring-boot-admin-starter-server 已经添加时,没有必要。

2ï¶通过将@EnableAdminServerServiceDiscovery注释应用于您的主类:
来启用服务发现功能:

@SpringBootApplication
@EnableAdminServer
@EnableAdminServerServiceDiscovery
public class App {

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

}

使用SBAPSD作为独立应用程序

1ï¶下载releases page的最新独立罐子:

  • V2基于Spring Boot 2,需要Java 8
  • V3基于Spring Boot 3,需要Java 17

2ï¶运行jar文件:

java -jar sbapsd-standalone-v2-latest.jar


java -jar sbapsd-standalone-v3-latest.jar

独立应用程序也可作为 graalvm linux和Windows的本机二进制文件。

配置SBAPSD

无论您是使用SBAPSD作为库还是独立应用程序,都需要通过将属性添加到application.yml文件中来配置它:

sbapsd:
  providers:
    server-1:
      type: web
      params:
        url: http://localhost:8092/instances # SBA v2/v3
      filters: # optional
        - type: app-name
          params:
            value: app-.*
        - type: status
          params:
            value: UP,DOWN
      labels: # optional
        static-label-1: value-1

最后,配置 Prometheus 使用提供的端点进行服务发现:

scrape_configs:
  - job_name: "spring"
    http_sd_configs:
      - url: http://localhost:8080/service-discovery/prometheus/server-1
    relabel_configs:
      - source_labels: [ __meta_discovery_actuator_path ]
        target_label: __metrics_path__
        replacement: $1/prometheus
      - source_labels: [ __meta_discovery_app_name ]
        target_label: app

结论

使用SBAPSD,将您的Spring Boot Admin注册应用程序与Prometheus Monitoring集成非常容易。该库简化了该过程,使您无需手动配置或其他服务发现工具即可有效地监视应用程序。给出 sbapsd 尝试简化应用程序监视设置!