点击▲关注 “爪哇笔记” 给公众号标星置顶
更多精彩 第一时间直达
前言
阿里巴巴提供的控制台只是用于演示 Sentinel 的基本能力和工作流程,并没有依赖生产环境中所必需的组件,比如持久化的后端数据库、可靠的配置中心等。目前 Sentinel 采用内存态的方式存储监控和规则数据,监控最长存储时间为 5 分钟,控制台重启后数据丢失。
企业版
这里推荐一下阿里云的官方版,AHAS Sentinel 控制台 是 Sentinel 控制台的阿里云上版本,提供企业级的控制台服务,包括:
实时请求链路查看
还有各种酷炫的监控图表
可靠的实时监控和历史监控数据查询,无需自行存储、拉取
动态规则管理/推送,无需自行配置外部数据源
免费版,可以提供 5 个节点的免费额度。开通专业版即可享受不限量节点额度。
专业版没有实例连接限制,开通后每天前5个限流降级节点不计费,超出部分按3元/天/实例收取相应的费用。
思路
官方文档也提供了思路,若需要监控数据持久化的功能,可以自行扩展实现 MetricsRepository 接口(0.2.0 版本),然后注册成 Spring Bean 并在相应位置通过 @Qualifier 注解指定对应的 bean name 即可。MetricsRepository 接口定义了以下功能:
save 与 saveAll:存储对应的监控数据
queryByAppAndResourceBetween:查询某段时间内的某个应用的某个资源的监控数据
listResourcesOfApp:查询某个应用下的所有资源
其中默认的监控数据类型为 MetricEntity,包含应用名称、时间戳、资源名称、异常数、请求通过数、请求拒绝数、平均响应时间等信息。
对于监控数据的存储,用户需要根据自己的存储精度,来考虑如何存储这些监控数据。显然我们要使用目前最流行的时序数据库 InfluxDB
解决方案,不要问什么?闭眼享受就可以了。
选型
InfluxDB
是一个开源分布式时序、事件和指标数据库。使用 Go 语言编写,无需外部依赖。
应用:性能监控,应用程序指标,物联网传感器数据和实时分析等的后端存储。
强大的类SQL语法
内置http支持,使用http读写
基于事件:它支持任意的事件数据
无结构(无模式):可以是任意数量的列
可度量性:你可以实时对大量数据进行计算
持续高并发写入、无更新、数据压缩存储、低查询延时
支持min, max, sum, count, mean, median 等一系列函数
基于时间序列,支持与时间有关的相关函数(如最大,最小,求和等)