背景
时序引擎在可观测场景中的重要性
Metrics作为IT可观测性数据的三剑客之一,是可观测场景的重要组成部分,相比Log、Trace数据,具备成本更低、数据源更丰富、适用面更广的特点,SLS在2年多前发布了时序存储引擎,并完全兼容了Prometheus的语法。目前已经有1万+的用户、10万+的实例,每天写入PB级别的时序数据。ref:《阿里可观测性数据引擎的技术实践》 作者:元乙
时序数据的易用性问题
SLS在第一天发布时序引擎时,提供了基础的可视化和指标选择能力,并支持在控制台输入SQL+PromQL的组合语法。但现有的使用方式,对于很多用户还是存在一定的挑战,例如:
语法学习:不仅仅需要学习PromQL,还需要了解SQL+PromQL的组合使用方式,对于第一次接触的用户不是很友好
语法错误排查:在对PromQL不是特别熟悉的情况下,写错查询语句往往需要不断试错才能发现错误点,尤其是在复杂Query的情况下,排查时间更长
数据自动提示:为了更顺滑地编写PromQL,需要对PromQL关键词、MetricStore中存储的指标、Label等进行自动化提示
时序数据自身需要可观测
在发布之初,MetricStore主要对标Prometheus的分布式存储引擎,扮演类似TSDB的角色,提供了一个近乎无限容量、弹性扩容的版本。虽然可以任意使用,但从成本、查询效率的角度上,我们还需要一定程度地观测MetricStore本身,从中探寻MetricStore中存储了哪些数据、数据量多少、是否使用合理等。
从观测目的上,主要有以下两种需求:
数据统计分析:快速了解MetricStore中存了多少个指标、时间线,TOP的数据主要有哪些,和1天、7天相比数据量增加了多少...
数据治理:从成本、时间线膨胀优化的角度出发,快速找到大数据量的指标、发现时间线膨胀,自动发现一些异常并给出治理的建议...
升级概要
此次升级的核心功能如下:
全新时序查询主页面
提供时序库指标探索功能
全方位PromQL自动提示补全
专为时序场景服务的Metric Prometheus
数据统计分析与治理
和旧版本、开源方案对比
功能 |
SLS旧版本 |
Grafana 9.2.4 |
SLS新版本 |
指标探索 |
☑️ 只支持指标名浏览 |
☑️ 只支持基础信息 |
✅ 支持指标名、标签名、标签值、构造SQL,展示时间线、唯一数等信息。支持正则筛选、手动输入 |
PromQL语法 |
❌ 不支持 |
☑️ 支持 |
✅ 支持,自动补全更友好 |
PromQL解释 |
❌ 不支持 |
☑️ 支持,但信息较少 |
✅ 支持,提供语法树状解析、实时语法错误提示 |
图表渲染 |
❌ 2k数据点渲染瓶颈 |
✅ 更高的图表性能(7.4) |
✅ 更高的性能,100000+ 数据点/0.1s |
一键同环比 |
☑️ 支持,性能较差 |
❌ 不支持 |
✅ 支持,性能大幅提升 |
时序库可观测 |
❌ 不支持 |
❌ 不支持 |
✅ 快速找到大数据量的指标、发现时间线膨胀,提供链路式优化数据,提升数据质量方案 |
核心功能体验
案例一:利用PromQL 查询时序库(MetricStore)数据
案例二:时序库探索
易用性提升
1. PromQL全方位语法提示
旧版本 |
新版本 |
❌ PromQL语法支持、高亮显示 ❌ 自动补全功能 (有,但为SQL语法的补全) ❌ 提示语法错误 |
✅ 完全的PromQL语法支持、高亮显示 ✅ 自动补全函数、聚合函数、指标名、标签名、标签值、括号、时间单位 ✅ 实时提示语法错误,无需执行语句 ✅ 提供语法解析树,对长难句可以有更清晰的理解和更准确地排错 |
支持的自动补全内容
1. 聚合函数 |
|
2. 函数 |
|
3. 指标名 |
|
4. 标签名 |
|
5. 标签值 |
|
6. 时间范围 |
2. 时序数据探索
旧版本 |
新版本 |
☑️ 与代码框交互 ☑️ 查看Metric指标名、统计数量 |
✅ 与代码框交互,且支持自定义构建更复杂语句 ✅ 查看Metric指标名、统计数量。且支持搜索指标名、分页展示,无惧指标数量过大 ✅ 指标可进一步探索标签情况,展示时间线信息、标签名、标签值唯一数、标签值示例 ✅ 每一个标签可以自定义筛选,支持选择标签值和手动输入两种方式,支持正则表达 ✅ 更清晰的组件界面设计 |
探索指标常见玩法
1. 大指标数量下检索 |
2. 查看对应指标标签情况和筛选 |
3. 快速查看单个指标图 |
4. 复制指标名称 |
5. 正则表达式筛选 |
6. 根据标签值筛选 |
7. 取消筛选条件 |
8. 查询语句构造和添加 |
3. 可视化能力增强
旧版页面:
更新后页面:
界面设计和交互逻辑优化
新版设计采用上Code下Chart的布局方式,更符合时序库查询的探索性。而在仪表盘中采用上Chart下Code更注重仪表盘的展示性
Code部分只用纯PromQL,集成PromQL语言支持、树状解析,更顺滑的编码体验
完全覆盖所有旧版已有功能,将旧图多层的按钮解脱出来,都在最上一排,并分清主次,一目了然
搭载全新Pro系列图表的同时,将复杂的metric放到底部而不是右侧,且点击一条,会单独浏览这一条线
优化执行主按钮的显示。放在更符合使用习惯的右上角,且交互逻辑更人性化
专为时序场景服务的Metric Prometheus图
1. Metric Prometheus图继承了线图Pro的所有特性,拓展加入同环比功能 |
2. 点击“同比环比”按钮,可以查看对应时间的情况进行对比。 |
3. 最终可以得到如下结果 |
时序数据自身可观测
在新页面的右上角,时序库自身可观测的两个核心功能:数据统计分析和数据治理。
数据统计分析
指标统计是时序重点指标统计汇总,围绕数据量、指标数、时间线、数据条目的指标统计,Top类指标的快速定位展示和同环比变化。
数据治理
指标治理是重点指标的时序场景分析。提供重点指标的时序图变化,提供看板式指标摘要统计, 原生统计->数据分析->优化效果->异常诊断 链路式解决方案。
总结
SLS作为云原生观测数据存储分析平台,在Metric领域,MetricStore 为广大用户提供了低成本且支持超大规模的时序数据引擎。此次升级的核心目的还是为了让大家更加方便的使用SLS的MetricStore,更简单、更直观、更顺滑。
欢迎大家体验新版升级后的时序数据查询页面,如果有其他使用上的建议,也欢迎大家在评论区留言。