实操 | 如何通过 SOFALookout & Prom

2018-12-27  本文已影响153人  37ac9d609353

SOFA (Scalable Open Financial Architecture ) 是蚂蚁金服自主研发的金融级分布式中间件,包含了构建金融级云原生架构所需的各个组件,在蚂蚁金服内部经过了将近 10 年的实践以及发展。

SOFA 目前包含了微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控度量,分布式高可用消息队列,分布式事务框架,分布式数据库代理层,Service Mesh 等组件,是一套分布式架构的完整解决方案,也是在金融场景里锤炼出来的最佳实践。

本文知识点:

SOFALookout , 是一个利用多维度的 Metrics 对目标系统进行度量和监控的项目,SOFALookout 项目分为客户端部分与服务器端部分。

由于服务器端代码暂未开源,本文将手把手教你如何将 SOFALookout 的客户端采集到的 Metrics 上报给 Prometheus 进行监控。

SOFALookout :https://github.com/alipay/sofa-lookout

实操:

通过四步,实现通过 SOFALookout & Prometheus 监控 SpringBoot 项目

1. 创建个简单 SpringBoot 的 demo 项目

创建 demo 工程

可以通过 http://start.spring.io/ 创建个 demo 项目(附加个 Web 模块便于演示)。 或者也可以本地快速构建项目,在 *nix系统创建项目结构 mkdir -p demo/src/main/java/hello:

创建个 pom.xml 文件

创建个启动类

在 hello 的包下创建 Application.java文件

2. 配置生效 Prometheus 的 Exports

在 pom.xml 中添加依赖

增加 "lookout-sofa-boot-starter","lookout-reg-prometheus" 两个模块的依赖,版本用最新的(这里以 1.4.1 为例)

新增应用配置文件

首先创建个资源目录mkdir -p demo/src/main/resources,然后新建个 application.properties 文件(或 YAML 文件)。

需要注意的是应用名是必须指定的!

检查启动状态

经过上面简单的配置,就可以运行 demo 了,并访问 http://localhost:9494进行确认

默认 Jvm 的相关指标已经可以获得了。

3. 部署 Prometheus 服务

确认 demo 应用在 9494 端口已经正常提供服务后,就可以编辑一个 prometheus.yml 来抓取该 demo 项目信息,假设本机 IP 地址为 10.15.232.101,那么可以配置如下的 prometheus.yml:

目标的 IP 地址可以是LAN地址,不要是 localhost,要保证 prometheus 容器内部可以访问到。

有了上面的配置文件之后,可以再到本地通过 Docker 来启动 Prometheus:

然后通过浏览器访问: http://localhost:9090,再通过 PromQL 查询即可查询到对应的 Metrics (比如:http://localhost:9090/graph?g0.range_input=1h&g0.expr=jvm_memory_heap_used&g0.tab=0)。

客户端更多内置的 Metrics 指标 (https://github.com/alipay/sofa-lookout/wiki/client-ext-metrics)

4. 通过 Lookout SDK 新增业务埋点

下面我们演示如何统计某个 web 服务被请求的次数,首页在 demo 应用中新增个 RestController 代码如下:

重启应用,并访问:

每访问一次,请求计数器自增一次。然后我们可以在 Prometheus 控制台进行查看(时间跨度可以选择短一点,比如 1~5 分钟)。

总结:

以上内容演示了 Count 型 Metrics 的使用,更多使用说明和 Metrics 类型可以参考 SOFALookout (https://github.com/alipay/sofa-lookout) 的 WIKI 文档。

欢迎大家共同打造 SOFAStack https://github.com/alipay

公众号:金融级分布式架构(Antfin_SOFA)

上一篇 下一篇

猜你喜欢

热点阅读