SAE应用能够将程序中自定义的监控指标采集到可观测监控 Prometheus 版。您仅需在代码中进行监控指标埋点,应用部署到SAE后开启Prometheus监控,即可实现自动采集监控指标。
Prometheus监控仅适用于SAE应用标准版、专业版。
1. 代码埋点
以Spring Boot应用为例,采用Micrometer框架收集应用程序的监控指标,通过引入Actuator和Prometheus依赖来暴露指标端点,供Prometheus自动采集。
引入Actuator和Prometheus依赖:
# pom.xml ... <dependencies> <!-- Actuator依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <!-- Prometheus依赖 --> <dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency> </dependencies> ...
配置采集端口和指标标签:
# src/main/resources/application.properties # 服务器端口配置 # 设置Spring Boot应用监听的端口号为8080 server.port=8080 # 应用名称配置 # 设置应用的名称,该名称会在监控指标中作为标签使用 spring.application.name=frontend # Actuator管理端口配置 # 设置管理端点使用独立的端口8091,与主应用端口分离,提高安全性 management.server.port=8091 # Actuator端点暴露配置 # '*' 表示暴露所有可用的管理端点,包括health、info、metrics以及prometheus等 # 引入micrometer-registry-prometheus依赖后,会暴露/actuator/prometheus端点用于监控指标采集 management.endpoints.web.exposure.include=* # 监控指标标签配置 # 将应用名称作为统一标签添加到所有指标中,便于在监控系统中区分不同应用的指标 management.metrics.tags.application=${spring.application.name}
通过Micrometer自定义监控指标:
// src/main/java/com/example/webframework/WebFrameworkApplication.java import io.micrometer.core.annotation.Timed; ... @GetMapping("/") // 本例将请求当前路径的响应定义为监控指标,详见https://javadoc.io/doc/io.micrometer/micrometer-core/1.3.1/io/micrometer/core/annotation/Timed.html,其他指标埋点方法请参考相应的API。 @Timed(value = "main_page_request_duration", description = "Time taken to return main page", histogram = true) public ResponseEntity<String> welcome() {...} ...
2. 部署应用
将应用打包为JAR包后,部署到SAE。示例JAR包可供快速部署和测试验证:
在SAE应用列表中,在顶部选择目标地域和命名空间,点击创建应用。
自定义应用名称。
应用部署方式选择代码包部署,点击设置代码包部署。
技术栈语言选择Java。
代码包类型选择JAR包部署。
Java环境根据代码中的Java版本来选择,示例JAR包需要选择Open JDK 8。
在上传JAR包区域,上传实际应用打包后的JAR包或示例JAR包。
点击一键创建应用,等待应用创建完成。
3. 开启Prometheus监控
在SAE应用列表中,在顶部选择目标地域和命名空间,点击目标应用ID跳转到应用详情页。
点击Prometheus监控,点击配置Prometheus监控,开启Prometheus 监控。
采集间隔(秒)可自定义,例如
10
。目标端口设置为
8091
。指标路径设置为
/actuator/prometheus
。
等待Prometheus监控配置生效,再次点击Prometheus监控跳转到Prometheus监控的实例列表。
点击
。在查询框中输入自定义的监控指标名称,例如示例代码中的main_page_request_duration
,根据智能提示选择需要查看的监控指标,选择时间范围,点击执行查询,显示监控指标的图表,表明配置成功。