prometheus集成

集成prometheus必须是一个web项目,因为需要将接口发布,提供一些监控数据供其他前端工具展示;所以如要需要集成prometheus,需要考虑下能否将项目转成web项目,如sdk,则不建议; prometheus监控数据及格式如下:

        

        

 

1.       Springboot2项目集成prometheus

1)       pom依赖

 

<dependency>
   <
groupId>org.springframework.boot</groupId>
   <
artifactId>spring-boot-starter-actuator</artifactId>
</
dependency>
<
dependency>
   <
groupId>io.micrometer</groupId>
   <
artifactId>micrometer-registry-prometheus</artifactId>
</
dependency>

 

 

2)       配置文件

 

management.endpoint.metrics.enabled=true
management.endpoints.web.exposure.include
=*
management.endpoint.prometheus.enabled=true
management.metrics.export.prometheus.enabled
=true

 

 

3)       启动类引入prometheusMeterRegistry

 

@Bean
MeterRegistryCustomizer meterRegistryCustomizer(MeterRegistry meterRegistry) {
  
return meterRegistry1 -> {
     
meterRegistry.config()
            .commonTags(
"application", "HsdtsOracle");
   };
}
 
1. 引入MeterRegistry
2. 自定义应用名称,并且作为全局tag发布到监控数据中

                  

4)       测试示例

 

 

5)       访问验证

 

访问:http://ip:port/actuator/prometheus

 

2.       普通java项目集成prometheus

如前言中写道,集成prometheus必须得是一个web项目;设计流程也比较简单,整体的开发设计方案:

1.       启动一个httpwebserver

2.       将需要发布的数据作为一个servlet注册到httpwebserver

 

以下示例通过一个全新的maven工程来做说明,项目如下附件:

 

 

a)       加入依赖

 

<dependency>

        <groupId>javax.servlet</groupId>

        <artifactId>javax.servlet-api</artifactId>

        <version>4.0.1</version>

        <scope>provided</scope>

    </dependency>

   

   

    <dependency>

        <groupId>io.micrometer</groupId>

        <artifactId>micrometer-registry-prometheus</artifactId>

        <version>1.3.5</version>

    </dependency>

    <dependency>

        <groupId>io.prometheus</groupId>

        <artifactId>simpleclient_hotspot</artifactId>

        <version>0.3.0</version>

    </dependency>

    <dependency>

        <groupId>io.prometheus</groupId>

        <artifactId>simpleclient_servlet</artifactId>

        <version>0.3.0</version>

    </dependency>

   

   

    <dependency>

        <groupId>org.eclipse.jetty</groupId>

        <artifactId>jetty-server</artifactId>

        <version>9.4.24.v20191120</version>

    </dependency>

    <dependency>

        <groupId>org.eclipse.jetty</groupId>

        <artifactId>jetty-servlet</artifactId>

        <version>9.4.25.v20191220</version>

</dependency>

 

b)       创建自定义的servlet

参考附件中的CustomServlet.java

                  

c)       关联MetricsServlet

参考附件中的MetricsServlet.java

 

d)       启动webserver

参考附件中的AppLauncher.java

 

e)       测试

 

 


发表评论 取消回复