序
运维模块是区块链BaaS的核心模块之一。我们为联盟链、主机、系统等多个监控对象提供丰富的监控指标。通过BaaS提供的综合监控画面,用户可以直观了解区块链业务的整体情况,实现7*24小时监控全覆盖。
但是,随着BaaS业务的扩展,对监控运维模块提出了更高的挑战:
1)业务场景越来越丰富,监控对象的种类也越来越多,导致BaaS平台需要不断适应不同的监控对象,一定程度上浪费了大量的R&D资源;
2)区块链有很多逻辑概念,如联盟链、命名空间、渠道等。所以每个概念都会落实到不同维度的监控指标中,造成指标多维交错,逻辑复杂,指标僵化,灵活性差;
3)通常市面上平台提供的大屏规定了图标类型和显示方式。交付后,企业运维人员往往无法自行更改监控图表和对象。
BaaS第一个动态监控系统。为了彻底解决上述痛点,BaaS开发了基于Prometheus协议的全新动态监控系统,实现了三大关键能力的突破:
监控多维目标自动匹配能力。通过仪表盘模板识别,用户可以自动匹配监控目标所属维度对应的监控指标,最大化覆盖业务端复杂的监控需求。采集端的灵活动态能力。通过自主开发的采集组件进行数据采集,具有数据规模更小、组件独立性更高、可用性更高的优点。同时,它还支持动态库的方式,从而注入用户自定义的采集逻辑,显著增强了运维能力和动态能力。能够动态配置仪表板。用户需要的个性化指标和个性化交互,可以通过修改配置(查询语句图表配置文件)直接呈现,无需修改代码。dial支持多种图表格式,并可以以多种方式格式化查询数据,因此可以轻松定制仪表板。
在动态监控平台架构的设计实践中,BaaS的动态监控平台如何实现质的飞跃?让我们先来看看新架构的实现:
可扩展数据采集模块
平台开发了自主开发的数据采集器,是基于Prometheus协议的数据采集组件。在主机上启动后,它可以跟随主机的生命周期,获取主机本身和所有进程的监控数据。
为不同类型的主机平台提供不同的基本逻辑。安装完成后,收集器会自动收集默认指标,包括CPU、内存使用、带宽使用、磁盘分区等基本数据。除了默认的收集逻辑,收集器还支持注入自定义的so动态库来收集自定义数据。当用户需要在基本采集逻辑的基础上添加自定义指标时,如交易TPS、块高等数据,只需要根据自研采集器提供的标准实现一套自定义so(即自定义采集规则),并在so中编写业务逻辑,就可以在采集器启动时替换和添加采集指标,从而实现很强的可扩展性。
自主开发的采集器提供两种数据采集模式:
在拉模式下,BaaS会主动从采集器拉取监控数据;在推送模式下,采集器会定期将监测数据推送至Prometheus,从而实现灵活的数据采集模式。通过自主开发的采集器,平台可以管理各种类型的资源主机,保证监控数据的完整性、实时性和准确性。
增强型查询引擎
根据Prom-QL的代理查询引擎,进行BaaS平台逻辑的兼容性改造。变换后,变量可以添加到Prom-QL语句中。在编辑Prom-QL时,用户可以用一个变量替换指定的资源ID,这个变量将被后来创建的实际资源动态替换,用户不需要填充
提供仪表板编辑功能,企业管理用户可以在管理后台借助仪表板配置功能,结合企业实际运维需求,构建和编辑仪表板。平台中定义了丰富的度量指标。编辑特定的查询语句后,可以选择不同的图表类型来显示数据。此外,它支持自定义编辑仪表板中图标的大小和位置。最后,查询语句、图标配置、仪表板配置和模板标识可以保存为仪表板模板并存储在模板池中。
当用户查看目标资源的监控数据时,平台会对目标资源的多维属性进行分析,自动在仪表板模板池中为用户找到属性匹配度最高的仪表板模板。模板匹配成功后,代理查询引擎会将查询语句中的变量替换为对应资源的id,使用组装后的查询语句查询数据,最终将数据结果呈现给用户。
动态配置图
图表是监控系统中最后也是最重要的环节。通过排列和组织不同类型的图表,将不同含义的数据标准化,将不可读的数字转化为可读性强、可视化程度高的数据。平台管理终端提供仪表盘的图表编辑功能。用户不仅可以灵活调整仪表板的显示结构,如仪表板图表的位置和大小,还可以自定义和编辑仪表板中的图表,如修改查询语句和数据格式类型。
总结相比目前BaaS市场流行的监控中心,趣链新推出的动态监控中心才是真正的动态。通过不同度量和不同图表类型的组合,可以创造无限的可能性,显著降低适配成本。根据不同的私有化和不同的资源类型,只需要根据用户的需求配置图表就可以满足用户的需求。