ARMS: 原来实时计算可以这么简单!

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
注册配置 MSE Nacos/ZooKeeper,118元/月
简介: 业务实时监控服务( ARMS)是一款阿里云应用性能管理(APM)类监控产品。借助本产品,您可以基于前端、应用、业务自定义等服务,迅速便捷地为企业构建秒级响应的业务监控能力。

业务实时监控服务( ARMS)是一款阿里云应用性能管理(APM)类监控产品。借助本产品,您可以基于前端、应用、业务自定义等服务,迅速便捷地为企业构建秒级响应的业务监控能力。
其中自定义监控作为该产品的时序计算和存储的基础,整合和封装了数据收集,消息通道,实时计算,时序存储,以及在线报表等多种先进互联网技术组件。
本文主要介绍一下 ARMS 自定义监控中聚合逻辑以及时序查询设计。

离线计算方式

以一个sql查询为例:
select count(col1), sum(col2) as sum from data_table
where filterCols
group by groupByCols
order by sum desc/asc
limit limitNum

其中第一部分可以抽象为:聚合(sum, count)、过滤(where)和分组(group by)。
第二部分则是在第一部分的计算结果上进行排序(order by)和截断(limit)。

实时计算方式

随着用户数据量的增加,离线的计算会越来越慢,难以满足用户在某些场景下的实时性要求,因此很多解决方案中引入了实时计算。
与离线计算相比,实时计算有两点区别:

  • 需要用户给定时间字段。ARMS支持两种时间,event time(用户切分的时间)和processing time(ARMS切分中的_sysTime)。
  • 数据处理分为了预计算和后计算两个阶段。预计算阶段计算原始数据,并存储预计算的结果,使得数据量大大减少。当用户需要实时查询数据的时候,可以基于预计算的结果,通过后计算方式,得到最终结果。

预计算

select count(col1), sum(col2) as sum from origin_data
where filterCols
group by groupByCols and timeInterval

其中col1、col2、filterCols、groupByCols、time 都是日志切分后的字段,timeInterval是流数据切分所用的时间间隔,如一分钟、五分钟等。

后计算

select count(col1'), sum(clo2') from 预计算结果
where filterCols'
group by groupByCols' and timeInterval'
TimeRange (minTime, maxTime)

其中col1'、clo2'、filterCols'、groupByCols' 中的字段都是来自预计算之后的结果。
timeInterval' 是用户查看每个数据点的时间间隔,TimeRange (minTime, maxTime)是查询数据的时间区间。

ARMS 解决方案

针对上面分析,ARMS 通过两个步骤解决了用户的预计算和后计算的问题。
预计算
在ARMS 自定义监控中,在任务配置的第三个步骤(第一个步骤是配置日志路径,第二个步骤是配置切分),用户需要配置数据集(数据的预计算逻辑),如下图
image

其中指标是数据列的聚合计算、过滤是filter,维度是group by的条件。在ARMS中,维度分位两种,一种是平铺维度,一种是下钻维度。
平铺维度是指将聚合结果按照所有的维度直接存储,比如按照col1、col2、col3字段进行group by,存储结果就是一个包含所有col1、col2、col3字段的全集。
下钻维度是对平铺维度的一种优化,比如对于机器基础监控数据,在问题发生时,用户往往需要从机房维度先发现问题,然后下钻到该机房的应用分组,最终定位到某台机器IP的问题。这个时候,可以针对平铺维度中的机房、分组、IP建立单向索引,即机房中的分组索引,分组中的IP索引,以加快查询速度。这就是下钻维度的作用,类似还有省、市、区的例子。
以三个维度col1, col2, col3进行group by为例,平铺维度和下钻维度的不同如下:
平铺维度在时序数据库中存储的是如下三个维度的聚合结果:

col1, col2, col3, 聚合指标

聚合指标里面包含sum、count、max等聚合的结果
下钻维度在时序数据库中存储的是逐级展开的三个维度的聚合结果,相当于一个以空间换时间的解决方案。

col1,聚合指标
col1, col2,聚合指标
col1, col2, col3,聚合指标

后计算

在ARMS中,预计算的数据存储在时序数据库中,后计算则是基于时序存储的查询时计算。
与OpenTSDB类似,ARMS提供了 过滤、聚合、降精度和汇总等多种计算方式。如下图所示:
image

  • 在维度中选择为“全部”表示会根据该维度再次group by,选择“固定值”表示会在该维度进行过滤。
  • 在指标中,支持选择单个指标或者指标的组合计算。
  • TopN则对应到order by desc 和 limit。
  • 时间粒度可以用户选择,也可以由系统根据用户选择的时间区间确定。目前提供的有一分钟、五分钟、十五分钟、一小时、一天等。

相对OpenTSDB,ARMS还提供了数据集与数据集的 JOIN 操作、占比操作,如果两个数据集包含同样的维度,则数据集可以JOIN,然后基于JOIN后的数据做指标复合计算。

总结

ARMS 自定义监控将用户实际使用中的日志采集、切分、实时聚合、存储,以及在线报表整合为统一的解决方案,方便了用户的使用,欢迎大家尝试。

相关实践学习
通过云拨测对指定服务器进行Ping/DNS监测
本实验将通过云拨测对指定服务器进行Ping/DNS监测,评估网站服务质量和用户体验。
相关文章
|
存储 弹性计算 监控
日志服务SLS实现云产品可观测实践
认证考试:日志服务SLS实现云产品可观测实践
|
2月前
|
监控 DataWorks 前端开发
ARMS错误诊断
【8月更文挑战第22天】
51 4
|
2月前
|
SQL 运维 监控
ARMS全链路监控
【8月更文挑战第22天】
49 3
|
2月前
|
消息中间件 监控 关系型数据库
实时计算 Flink版产品使用问题之运行后,怎么进行监控和报警
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
2月前
|
SQL 大数据 数据管理
EMR Serverless StarRocks体验测评
【8月更文挑战第14天】EMR Serverless StarRocks体验测评
42 0
|
存储 弹性计算 运维
EMR Serverless StarRocks体验报告
本次测评报告我将从功能、稳定性、性能、运维、成本和收益等方面对EMR Serverless StarRocks进行评估,以确保该产品能够满足业务需求并提供有用的参考信息。通过本次测评,我希望能够为用户提供有用的参考信息,帮助他们做出明智的决策。
453 58
|
12月前
|
监控 前端开发
阿里云 ARMS
阿里云 ARMS
304 1
|
SQL 运维 DataWorks
EMR Serverless StarRocks + DataWorks 开启极速分析新体验
EMR Serverless StarRocks + DataWorks ,开启极速分析体验
1091 0
EMR Serverless StarRocks + DataWorks 开启极速分析新体验
|
存储 Prometheus 运维
使用 Prometheus 为 Flink 搭建可观测体系
使用 Prometheus 为 Flink 搭建可观测体系
574 0
使用 Prometheus 为 Flink 搭建可观测体系
|
SQL 数据挖掘 关系型数据库
EMR Serverless StarRocks评测
EMR Serverless StarRocks是开源StarRocks在阿里云上的全托管服务,您可以通过EMR Serverless StarRocks灵活的创建和管理StarRocks实例以及数据。StarRocks作为一款兼容MySQL协议的OLAP分析引擎,提供了极致的性能和丰富的OLAP场景模型,包括OLAP多维分析、数据湖分析、高并发查询以及实时数据分析。
255 1