SLS数据可视化发展简史
2017年前:第三方可视化的依赖
在最开始的阶段,SLS还未自研可视化仪表盘,只能通过接入第三方可视化来实现日志服务的可观测。包括:
图片来源:《如此简单的日志可视化方案,还不快来制作属于你的仪表盘》作者:沐自
2018-2020:自研与能力的闭环
随着日志服务能力的提升、用户需求的不断增加,很容易听到这样的呼声:
功能增强:如何增加仪表盘订阅(定时发送邮件、钉钉等)、配置告警、高精度国内外地图、复合图表
数据互通:如何从图表中快速跳转SLS日志服务的查询页面
仪表盘互通:如何关联几个相关仪表盘并互相跳转,并且支持各类变量的传递
二次嵌入:如何将仪表盘和企业内的系统平台打通,关联企业内权限与阿里云权限
问题排查:第三方可视化平台上发现了异常,如何定位是三方平台问题、插件问题还是SLS后端问题
这些需求和问题,纯粹通过三方可视化平台很难解决,因此,SLS在三方可视化的基础上,设计了一套阿里云日志服务可视化仪表盘,并包含表格、折线图、柱状图、条形图、饼图、数字图、面积图、地图、流图、桑基图、词云等10余种图表类型,且根据日志服务产品特性,针对性提供了强交互式、灵活变换、开放性强的可视化能力。真正实现了采集-计算-存储-可观测自研能力的闭环。
图片来源:《如此简单的日志可视化方案,还不快来制作属于你的仪表盘》作者:沐自
2021-2023:性能与表现的跃进
伴随着日志服务数据量、用户量的快速增长,可视化上的诉求也越来越多,在这两年也陆续发布了二十多种图表类型,用户已经在SLS中创建了数百万张仪表盘,仪表盘页面每周有数十万次访问。
随着数据量不断膨胀,V1版本可视化的性能瓶颈越发突出:当线图点数超过2000时,图表卡顿非常明显;而且同一个仪表盘可能同时存在数十张大数据量的图表,浏览器页签经常崩溃。为此,SLS推出了全新的可视化架构,一方面优化了性能,另一方面统一配置逻辑,支持多查询等。ref:《SLS全新可视化功能发布》作者:灵亦
图片来源:《SLS全新可视化功能发布》作者:灵亦
生态互通的期待
以Grafana为代表的开源可视化
Grafana是一个基于 Web 的开源可观察性和数据可视化平台。它以创建出色的数据可视化的能力而闻名。支持连接到不同的多个数据源或存储,包括 Elasticsearch、Prometheus、InfluxDB 等等。它收集数据,包括Metric、Log、和Trace,并生成可视化效果。
Grafana在可观测数据可视化具有非常大的影响力和用户群体。而SLS也在产品发布初期就支持对接Grafana。SLS日志服务的仪表盘设计初衷是强交互式、灵活变换、开放性强,具备更多更切合日志场景的可观测能力。因此从总体上看,在日志服务场景下,SLS的仪表盘可以更切合用户需求,更灵活。而Grafana更擅长监控、时序领域的可观测能力。但总体上都是针对可观测场景,因此两者还是有很多共同的场景。
可视化方案屏障
在过去,用户可以选择使用SLS或者Grafana的可视化方案,但两者的方案都需要单独建设,如果想从Grafana仪表盘想转到SLS仪表盘,需要逐个复制语句、调整语句、调整图表位置。存在这样一批用户,他们使用了SLS的存储,而因为历史原因仪表盘使用了Grafana,想更换为SLS仪表盘以体验更多高级“黑科技”功能时,由于仪表盘迁移工作太过繁琐,最终望而却步。同样,从SLS转为Grafana也有与之类似的问题。
迁移,如今不再繁琐
如今SLS日志服务往前更进一步,推出了SLS仪表盘与Grafana互转互通的能力,1分钟内就能完成SLS转Grafana或Grafana转SLS。让两个产品之间用户的互通更加便捷。相比之前手动的模式,互转能力带来了如下改变:
更方便地转化操作,无需一条条复制语句,调整图表,实现准确快速的跨平台仪表盘迁移。
更多的仪表盘使用机会,打破两者用户“转化难”的困境。
更多样的生态引入,支持Grafana仪表盘转化SLS,意味着间接引入广阔的Grafana Template广场。
更广阔的进步空间,生态拉通给予用户更多的选择权,进一步促进SLS提升用户体验。
如何使用互转功能
此次升级的核心功能如下:
新建仪表盘支持多种方式,包括“导入Grafana仪表盘”
SLS仪表盘支持“转为Grafana仪表盘”
前提条件
若以最佳方式使用仪表盘转化,需要明确几个前提条件:
Grafana需安装SLS数据源插件v2,需保证Grafana版本号不小于8.0.0。详见插件配置文档。
目前互相转化注重变量、语句、图表的功能性转化,在图表细节上(线型、定制化等)暂不涉及,如有需要,将在未来逐步完善升级转化功能。更具体的能力支持范围见本文的后续章节说明。
支持Grafana中Prometheus、SLS插件作为数据源,其他数据源暂不支持。
导入Grafana仪表盘
使用文档:https://help.aliyun.com/document_detail/474599.html
目前,导入Grafana仪表盘到日志服务功能处于公测中。如果您要提前使用该功能,请联系我们开放权限。
核心功能展示
操作步骤:
在您的Grafana中找到希望转化到SLS的仪表盘,单击“Dashboard Settings”,单击“JSON Model”。
Ctrl+A复制当前界面全部Json内容,回到SLS仪表盘界面。
单击左侧菜单“仪表盘”,在弹出侧边栏中点击,单击“导入Grafana仪表盘”,弹出导入页面。
将上述Json内容粘贴在编辑框中,点击“解析json”。
选择grafana数据源对应的SLS数据源。全部选择完成后,单击“下一步”。
查看转换提示信息,单击“生成仪表盘”。
此时即跳转到转化后仪表盘,可继续浏览、编辑内容。
多种方式导入
您可以通过复制仪表盘json的方式导入,也可以通过json文件进行导入。
如何快速找到Grafana datasource id对应的Logstore
在导入Grafana仪表盘的第二步中,如果您的Grafana版本比较新,id是一组9位的字符串。进入Grafana数据源页面,点击具体数据源,在URL处可找到:{
{您的Grafana IP+端口}}/datasources/edit/{
{该数据源id}}
。导入工具也提供一个简便方法,可以将您的Grafana 域名或IP+端口号,输入表单上方的地址栏,此时会提供id链接,此链接会跳转到您输入的地址,并打开对应id的数据源。
如果您的Grafana版本较老(例如8.1.0),id不是字符串,而是您的数据源命名,此时就无需此功能,可以直接看出对应的Logstore。
能力范围
支持 |
不支持 |
|
图表种类 |
|
原因:1. 插件暂不支持该图。 2. 图表语句的写法与在SLS不同。eg. Geomap |
数据源 |
|
其他数据源暂不支持。 |
变量 |
|
|
Query转换 |
|
|
图表样式 |
位置、大小、标题匹配 PromQL Legend 匹配 |
其余定制化样式、自定义样式(Override)等暂不支持转换。 以SLS默认样式转换。 |
其他功能 |
其他不常用、无法等价转换的功能。
|
SLS仪表盘转换到Grafana
使用文档:https://help.aliyun.com/document_detail/474601.html
目前,转换到Grafana仪表盘到日志服务功能处于公测中。如果您要提前使用该功能,请联系我们开放权限。
核心功能展示
操作步骤:
找到希望转化到Grafana的仪表盘,单击“编辑”-“设置”,切换到“转为Grafana仪表盘”Tab页。
选择您的Grafana版本号。
点击错误按钮查看转化错误提示信息。
点击“复制Grafana格式json”,或点击“下载Grafana格式json”获取内容。
到您的Grafana页面,依次点击“Dashboards”-“Browse”-“New”-“Import”,将上述文件上传或粘贴。
选择提示的Logstore在Grafana的位置。完毕后点击“Import”。
此时即可查看转化后的仪表盘。
详细的转化提示信息
在转化完成后,会展示详细的转化提示信息,该信息包含转化不支持提示、错误提示、格式规范矫正提示等。点击按钮后可在侧边栏查看所有卡片内容。
能力范围
支持 |
不支持 |
|
图表种类 |
|
原因:1. Grafana/插件暂不支持该图。 2. 图表语句的写法与在SLS不同。eg.高德地图 |
数据源 |
|
无 |
变量 |
|
|
Query转换 |
|
无 |
图表样式 |
位置、大小、标题匹配 Legend 匹配 |
其余定制化样式、自定义样式等暂不支持转换。 以Grafana默认样式转换。 |
其他功能 |
|
其他无法等价转换的功能。
|
其他限制(若触发,在转化提示信息中均会显示)
SLS 的过滤器/变量替换组件 相比于Grafana功能更丰富。转化需要注意:
①Grafana只支持SLS变量替换,过滤器不支持。
②Grafana不支持query与常值并存。
③Grafana不支持仪表盘输入自定义Key名称。
Grafana不支持SLS的自由布局,转换后会出现布局混乱。切换为网格布局可以达到较高还原度。
部分配置缺失(例如x轴或y轴配置)可能会造成图表显示问题,需要检查【查询分析配置】。部分情况下,必须设置完全,以适配Grafana插件(即使在SLS可以显示成功)。且由于Grafana限制,尽量避免选择“所有数字字段”。
SLS的单值图配置更丰富,包括同环比、定制化等功能,在Grafana无法设置。只可转化主数值部分。
Grafana表格配置功能较少,无法复现SLS表格配置。SLS的表格配置支持更自由的自定义功能,比如迷你线图迷你柱状图,以及自定义交互事件,搭配过滤器等。在Grafana均无法实现。将转化语句及基本配置。
Grafana多版本适配情况
Grafana -> SLS |
SLS -> Grafana |
|
|
❌不适配。SLS插件必须为v2版本。 |
|
|
✅适配 |
✅适配 |
|
✅适配 |
✅适配 |
|
✅适配 |
✅适配 |
|
✅适配 |
不推荐。该版本存在混合数据源卡死问题。 |
|
✅适配 |
✅适配 |
|
✅适配 |
✅适配 |
|
✅适配 |
✅适配 |
|
✅适配 |
✅适配 |
总结与后续工作
此次升级主要满足具有Grafana与SLS仪表盘互相转化的用户需求,不再需要繁琐地一个个复制语句、调整语句、调整图表位置,同时给SLS的仪表盘生态带来更多可能性。
后续SLS将继续完善并扩充转换能力,并持续关注开源生态,做好版本适配。欢迎大家体验SLS仪表盘的生态扩展,如果有其他使用上的建议,也欢迎大家在评论区留言人。