云应用接入Prometheus监控

更新时间:2021/05/06 访问次数:838

写在前面

应用Prometheus监控由阿里云提供,是一款收费的云产品,按照应用上报的监控指标数量收费。注意:应用上报的监控指标对应阿里云Prometheus中的自定义指标,是需要收费的,所以在接入prometheus之前,需要先开通服务。参考文档:

什么是阿里云Prometheus监控

阿里云Prometheus收费标准


2021-04-07注:

暂时只支持Java SpringBoot应用的接入,其他语言正在支持中,有需求可以直接联系@杭羽


ARMS应用监控与Prometheus监控对比

严格来说,Prometheus监控和ARMS应用监控都是属于应用实时监控下的一款子产品,可以看成是平行关系,产品购买和费用都是分开的,在使用上可以也相互补充。应用监控更注重应用进程本身的性能、接口性能、调用链路、JVM运行时、PHP工作线程等等。Prometheus则是是云原生生态下的一套监控和报警标准,任何实现了这一标准的应用或者中间件均能无缝对接,由于社区发展比较好,Prometheus的二方和三方 Exporter已经比较全面,很多都能较为简单的接入。( Exporter可以理解为一个黑盒子,它能将各类数据转为Prometheus标准的metric,并进行暴露,Prometheus server即可将数据采集存储,然后通过grafana这样的开源视图方便地呈现)


ARMS应用监控 Prometheus监控

备注

产品特点

应用性能监控(APM)产品,帮助快速定位错误接口和慢接口、异常失误,慢查询等

全面对接开源的Prometheus生态,只要应用满足标准,就能上报指标和查看大盘。支持各类自定义指标的上报,可以在应用代码中手动打点


收费

按探针收费,一个容器一个探针,按量付费的话每探针每天6.72元

按总的指标数量收费,例如0-50(百万条)之间,收费0.8元/百万条


使用流程

组件安装

应用配置

应用发布

查看视图

组件安装

应用配置

应用发布

查看大盘

接入流程类似,只是组件和配置不一样

使用步骤

1.开通服务

聚石塔控制台-资源视图-应用实时监控服务-Prometheus监控。

image.png

默认会自动开通试用版,试用期内不会收费。试用期结束后,如果仍需要采集监控数据,则需要开通Prometheus专家版。

2.安装集群插件

1)运维中心-插件管理,找到Prometheus插件

image.png

2)选中集群进行安装

image.png

3.开启监控配置

云应用-环境-管理-部署配置

image.png

开发语言和类型:选择相应的语言和数据上报类型,决定了监控大盘的呈现方式;

监控路径:Prometheus采集数据时访问应用的路径;

监控端口:Prometheus采集数据时访问应用的端口;


举个例子,示例中配置了JAVA类型的应用,使用的springboot集成micrometer的方式暴露指标(即埋点),Prometheus通过访问应用8081端口的/actuator/prometheus能够查询到符合prometheus标准的数据,如下图:

image.png

4.应用指标上报

应用自身需要暴露相应的prometheus格式的指标,才能够被采集,所以可能需要一定程度的改造适配;根据开发语言的不同,改造的方式不同,具体可以参考下面文档中“应用指标上报”的介绍。

5.查看监控大盘

应用监控-Prometheus监控。这里是阿里云prometheus提供的grafana大盘。特别的,示例图中的大盘为定制的JVM大盘,适用于springboot集成micrometer的方式。

image.png


应用指标上报

JAVA类应用

SpringBoot Micrometer

这里以springboot2.x为例进行说明,

参考:https://blog.csdn.net/aixiaoyang168/article/details/100866159

1)maven依赖

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

这里依赖io.micrometer,起到了exporter的作用,即对prometheus进行了兼容,将jvm或java的数据转化为标准的prometheus监控指标暴露出去


2)application.properties 暴露管理端口和endpoint

management.server.port=8081 management.endpoints.web.exposure.include=*

这里 management.endpoints.web.exposure.include=* 配置为开启 Actuator 服务,因为Spring Boot Actuator 会自动配置一个 URL 为 /actuator/prometheus 的 HTTP 服务来供 Prometheus 抓取数据。


综上,经过这两步配置,访问应用的8081端口/actuator/prometheus,即可抓取到应用的监控数据,这也是需要在环境配置中配上该端口和路径。


PHP应用

待续...


GO应用

待续...

FAQ

关于此文档暂时还没有FAQ
返回
顶部