布景

最近收到一份关于杭州亚运会技能保障的大众号文章(mp.weixin.qq.com/s/YO_bq62L…

其间观测云Function函数渠道与云商产品整合的部分个人会觉得很有意思。之前简略聊过Function这个产品在数据整合及数据开发方面的功用。今天借杭州亚运会数据可视化这个主题,测验运用Function合作云厂商可视化套件给公司新上线的测验机做了个监控大屏,再次感受了一下Function强大的数据功用。以下就是这个进程的简略分享。

观测云数据的获取

依据Function官网的介绍,经过开发渠道访问观测云特定作业空间的数据主要有几种获取方法。一种是经过Datakit连接器连接到空间进行数据查询的方法。这种方法关于初次接触观测云的同学来说会比较友爱。因为连接器目标自身封装了一些数据查询方法,咱们能够依照官网的比如方便的完成数据查询功用。另一种是经过观测云网关连接器进行对应作业空间的访问,这种方法的学习成本相对较高,需求了解观测云OpenAPI的设计及恳求结构方法。不过适用场景方面应该会更灵活一些。本文运用的是datakit连接器的query方法进行数据的获取:

开源数据整合利器DataFlux Func——与云可视化组件的数据交互实践

经过datakit连接器进行数据查询,就必须要引入另一个概念——DQL言语。DQL言语的全称,没记错的话应该是Debug Query Language(或者DataFlux Query Lauguage?),是观测云封装的一款混合查询语法工具。DQL经过一定的语法规则,将原先不同数据引擎和数据类型的查询语法简化为一套查询语法,降低运维监控场景下数据查询操作的复杂度。在本文的比如中,建立datakit连接器后咱们能够直接运用DQL句子来获取这个datakit对应空间的某个数据。以下图中查询CPU负载为例:

开源数据整合利器DataFlux Func——与云可视化组件的数据交互实践

在选定咱们需求查询的数据后,只需求在目标剖析的目标选项右侧,点击「</>」按钮,即可获取查询这个目标所对应的DQL句子。关于不是很熟悉观测云DQL语法系统的同学或者初学者来说是十分友爱的功用:

开源数据整合利器DataFlux Func——与云可视化组件的数据交互实践

将上面这个句子放入咱们在Function渠道编写的代码中,点击运行即可检查数据读取的作用:

开源数据整合利器DataFlux Func——与云可视化组件的数据交互实践

这儿为了演示清晰以及减少数据处理作业量,咱们对原查询句子增加了group by条件和查询数据量的限制。这些小的语法技巧咱们能够在官网资料:DQL查询 这个链接中学习和了解。

到这儿咱们就完成了样本数据获取的预备作业。当然,在构建整个运维监控大屏的进程中,一两个目标数据的查询肯定是不行的,这需求咱们分别获取不同目标、不同维度的数据进行展示和剖析。不过这个操作详细到代码层面就只是DQL言语参数上的差异而已,运用Python处理这些差异仍是比较简略的。

Function数据接口对外封装

完成观测云数据的对接后,如果想要将这些数据封装给外部系统运用,需求用到Function渠道的第二个功用——授权链接。授权链接能够了解为一套内置的Http Server,用户无需关心其详细完成,只需求聚焦需求敞开的接口和详细的处理参数,即可完成函数功用的对外暴露

在暴露接口之前,还需求做两方面的预备。一个是咱们接口对外供给的数据格局。这个信息需求依据咱们所选用的可视化产品,依照产品要求的数据格局对外回来数据。另一个是接口对入参的处理,这个取决咱们对接口功用的界说和设计。仍是以上面CPU负载这个目标为例,假设考虑最简略的完成方法,调用方无需下发入参,仅以接口区别获取数据的类型。则对上述代码再次封装,处理好回来值格局后将这个接口函数经过装修器声明给Function渠道:

开源数据整合利器DataFlux Func——与云可视化组件的数据交互实践

声明的作用是让Function渠道能够获取需求对外暴露服务的地址。接下来需求在「办理」-「授权链接」页面中点击新建,履行函数选择上面声明的datav_interface_demo并保存。

开源数据整合利器DataFlux Func——与云可视化组件的数据交互实践

这个操作之后,一个可对外调用的授权链接就生成了。点击授权链接的示例,能够获取怎么调用链接的提示:

开源数据整合利器DataFlux Func——与云可视化组件的数据交互实践

访问这个链接地址,即可看到调用后的回来数据:

开源数据整合利器DataFlux Func——与云可视化组件的数据交互实践

以这样的方法供给对外封装,则每个接口只能获取对应的目标或数据。如希望经过下发参数的方法来区别不同的查询恳求或者获取不同的数据,则需求对函数的入参**kwargs进行处理,依照约好的参数履行相关操作。

阿里云DataV视图控件数据对接

完成数据封装后。就能够开始在阿里云DataV可视化控件上运用接口了。咱们首先为这次测验创建一个新的画布,在画布上拖拽一个控件来验证方才咱们接口数据的作用。

开源数据整合利器DataFlux Func——与云可视化组件的数据交互实践
开源数据整合利器DataFlux Func——与云可视化组件的数据交互实践

以这个数字翻牌器为例,双击数据显现区域,设置数据源选择类型为API,在URL地址中填入咱们方才生成的接口:

开源数据整合利器DataFlux Func——与云可视化组件的数据交互实践

这儿就完成了FunctionAPI到DataV视图控件的打通。操作起来仍是比较简略的,不过有两个点仍是提示一下。一个是关于数据回来格局,方才提到咱们接口回来的数据需求与调用建议方所需的数据格局匹配。那么怎么确认建议调用的数据接口需求什么样格局的回来值呢?咱们在DataV视图控件修改的最下方能够看到数据呼应结果的按钮,周围通常会供给当时这个视图控件所需的数据格局样例:

开源数据整合利器DataFlux Func——与云可视化组件的数据交互实践

关于数字翻牌器来说,咱们需求回来一个json数组,每个数组中的k-v取值和类型依照图中表格进行配置,就能够将数据正确发送给对应控件了。编写针对其他控件的Function API时,如果不知道怎么确认回来值格局,就去看一下示例吧。

第二个需求注意的点是带参数调用的入参格局问题:

开源数据整合利器DataFlux Func——与云可视化组件的数据交互实践

其实在上面示例代码中应该能够看到咱们预留了接口调用时传入参数的处理。如果在实际运用时希望知道阿里云管控台配置的参数是以什么格局传入Function API的,能够在进口方位print(**kwargs),然后将代码发布给授权链接。在授权链接的任务记录中,点击最近一次调用的“显现详情”,详情信息就能够看到DataV组件下发的参数格局了:

开源数据整合利器DataFlux Func——与云可视化组件的数据交互实践

开源数据整合利器DataFlux Func——与云可视化组件的数据交互实践

开源数据整合利器DataFlux Func——与云可视化组件的数据交互实践

知道了入参格局和回来格局,就能够套用给其他DataV组件,依据自己的需求构建大屏

总结

最终作用嘛。。比较观测云官方的亚运会大屏仍是粗陋了一些,部分图例的参数还在研究和学习中。不过数据打通的主要部分仍是根本都触及到了。Function的数据封装和发布功用十分简略,简单上手,稍作研究即可完成对数据的提取和对外发布,确实是一款十分好用的数据处理渠道。等待官方推出更多Function的场景来教咱们怎么用好Function~

开源数据整合利器DataFlux Func——与云可视化组件的数据交互实践

与本文相关的链接:

DataFlux Func开源项目地址:github.com/GuanceCloud…

DataV产品文档:help.aliyun.com/document_d…

杭州亚运会官方文章:mp.weixin.qq.com/s/YO_bq62L…