本发明涉及互联网监控,特别涉及一种用于将结构化数据转换成时序数据的方法和数据转换器。
背景技术:
1、随着互联网的快速发展,越来越多的企业选择开通线上业务,当线上运行的业务越来越多时,服务器负荷越来越大,需求的不停迭代使得业务系统也变得日渐复杂,随之排查问题越来越困难,基本上每个业务系统都离不开监控,没有监控的业务就像是高速行驶时没有系安全带的驾驶员,一旦系统出故障整个业务系统瘫痪,目前主流监控系统有zabbix、prometheus、open-falcon、nagios等,监控系统的核心就是数据存取,当前主要是以结构化数据(如mysql)和时序数据(如influxdb)作为监控系统的存储模块,而业务系统(如订单、支付、券码等)基本都是结构化数据存储,应用系统和操作系统数据则是以时序数据为主。
2、结构化数据的优点是可以支持复杂的数据查询,但缺点是查询慢;时序数据的优点是查询速度快,但是面对复杂场景时语法不够灵活;为了满足对更多场景的监控,很多企业采用两种甚至多种监控系统,但这样管理比较麻烦且还带来了资源的浪费。针对该问题,目前的主流方案是在业务系统中集成插件(如图1所示),通过监控代码嵌入的形式生成时序数据格式监控数据,然后写入以时序数据存储的监控系统(如prometheus)中,但这种方式由于业务代码中夹杂了监控的功能,使得业务系统的所有微服务都要运行监控代码块,会增加服务器计算资源,提供服务器的运行成本,且对开发人员素质要求较高,另外,插件模式对业务代码有侵入性,增加维护成本,同时监控代码和业务代码混合运行,容易造成系统不稳定。
技术实现思路
1、为了解决上述问题,本发明提供了一种用于将结构化数据转换成时序数据的方法和数据转换器,可实现利用时序数据存储的监控系统对结构化数据存储的业务系统进行监控,无需侵入业务代码即可完成业务系统监控,运维成本低,且无需额外学习时序数据编码,对开发人员要求低。
2、本发明的目的在于,提供一种用于将结构化数据转换成时序数据的方法,包括步骤:
3、预先定义配置文件,包括针对需要进行转换的结构化数据库实例定义数据库源、监控指标、要执行的sql语句,以及用于将所述监控指标序列化的采集间隔时间;
4、在执行转换程序时,先读取并解析配置文件,连接配置中的所述数据库源,序列化所述监控指标,然后在所述结构化数据库实例中执行sql语句,并将执行sql语句后的结果绑定到所述监控指标,然后将监控指标数据按照时序数据格式输出。
5、本发明用于将结构化数据转换成时序数据的方法的进一步改进在于:将按照时序数据格式输出的监控指标数据存储在时序数据库中。
6、本发明用于将结构化数据转换成时序数据的方法的进一步改进在于:所述配置文件中定义有若干个结构化数据库实例,并针对每个结构化数据库实例还定义有用于区分数据库源的标签信息。
7、本发明用于将结构化数据转换成时序数据的方法的进一步改进在于:所述监控指标的定义内容包括指标名称、指标类型、用于筛选数据的标签以及说明。
8、本发明还提供了一种数据转换器,采用如上任一项所述的方法实现将结构化数据转换成时序数据,所述数据转换器包括:
9、用于定义配置文件的配置模块,所述配置文件的定义内容包括针对需要进行转换的结构化数据库实例定义的数据库源、监控指标、要执行的sql语句,以及用于将所述监控指标序列化的采集间隔时间;
10、用于读取并解析所述配置文件的内容的解析模块,所述解析模块与所述配置模块连接;
11、用于根据解析的内容在所述结构化数据库实例中执行sql语句的执行器,所述执行器与所述解析模块连接;
12、用于将执行sql语句后的结果绑定到监控指标并按照时序数据格式输出的数据生成模块。
13、本发明数据转换器的进一步改进在于:连接在业务系统和监控系统之间,所述业务系统的数据库为结构化数据库,所述监控系统的数据库为时序数据库,所述配置文件中的结构化数据库实例对应于所述业务系统的结构化数据库。
14、本发明数据转换器的进一步改进在于:所述业务系统的数量为若干个,所述数据转换器包括与所述监控系统连接的输出端,以及与若干个所述业务系统一一对应连接的若干个输入端。
15、本发明包括但不限于以下有益效果:可实现利用时序数据存储的监控系统对结构化数据存储的业务系统进行监控,而无需侵入业务代码即可完成监控,当监控指标异常时,只需调整配置文件的内容,无需查看业务逻辑,降低维护成本,同时,无需额外学习时序数据编码,学习成本更低。另外,与传统的插件模式配合监控相比,只需要运行一个数据转换器,降低了服务计算资源,从而节约服务器费用支出。
1.一种用于将结构化数据转换成时序数据的方法,其特征在于,包括步骤:
2.如权利要求1所述的用于将结构化数据转换成时序数据的方法,其特征在于:将按照时序数据格式输出的监控指标数据存储在时序数据库中。
3.如权利要求1所述的用于将结构化数据转换成时序数据的方法,其特征在于:所述配置文件中定义有若干个结构化数据库实例,并针对每个结构化数据库实例还定义有用于区分数据库源的标签信息。
4.如权利要求1所述的用于将结构化数据转换成时序数据的方法,其特征在于:所述监控指标的定义内容包括指标名称、指标类型、用于筛选数据的标签以及说明。
5.一种数据转换器,其特征在于,采用如权利要求1~4任一项所述的方法实现将结构化数据转换成时序数据,所述数据转换器包括:
6.如权利要求5所述的数据转换器,其特征在于:连接在业务系统和监控系统之间,所述业务系统的数据库为结构化数据库,所述监控系统的
7.如权利要求6所述的数据转换器,其特征在于:所述业务系统的数量为若干个,所述数据转换器包括与所述监控系统连接的输出端,以及与若干个所述业务系统一一对应连接的若干个输入端。