CN109871406B - 通用监控报表平台的设计方法 - Google Patents
通用监控报表平台的设计方法 Download PDFInfo
- Publication number
- CN109871406B CN109871406B CN201811625927.9A CN201811625927A CN109871406B CN 109871406 B CN109871406 B CN 109871406B CN 201811625927 A CN201811625927 A CN 201811625927A CN 109871406 B CN109871406 B CN 109871406B
- Authority
- CN
- China
- Prior art keywords
- data
- monitoring report
- platform
- monitoring
- page
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的通用监控报表平台的设计方法,包括:搭建开源基础系统平台:搭建canal服务端、搜索服务器、mq平台、数据库从库;搭建binlog解析模块、监控报表数据组装管理模块、通用监控报表模板管理模块、通用监控报表平台展示模块;配置监控报表数据,写入elasticsearch。本发明的技术方案为有以下优点:1、一次开发部署,支持绝大多数的数据监控报表需求。2、无需二次开发,无需测试既可实时准确的上线监控报表页面,极大的降低此类需求的开发测试成本和上线出错概率。3、监控报表页面动态生成,系统无需停用或重启。4、监控系统的数据实时性、准确性高,性能和可用性满足海量数据和高并发数据场景。5、系统对生产数据库没有任何影响,也不依赖数据生产系统。
Description
技术领域
本发明涉及数据库领域,特别是涉及一种通用监控报表平台的设计方法。
背景技术
随着IT技术、互联网技术的蓬勃发展,越来越多的公司、企业开始通过软件系统监控、指导和操作业务生产,软件系统生产出来的数据为公司的日常运转、监控和发展进度、发展方向的制定提供了坚实的基础,各种体现公司业绩、指标、成本、服务质量等方方面面的数据开始海量的被创造出来,人类如何高效、实时、简单、准确的获取数据的信息显得尤为重要。
开发一个实时监控的或者海量数据分析汇总的报表页面通常需要准备数据、计算数据、保存数据、开发报表展示页面、开发报表后台查询接口、测试报表页面等多个开发步骤,需要产品、研发、测试等多个角色的参与,开发成本较大,同时计算数据或者查询数据通常会对数据库造成巨大的压力,数据量和监控实时性无法保障。
海量数据离线计算汇总、海量数据实时监控,各种维度的数据,各种业务指标等数据的展示需求对公司的开发团队来说成为一个巨大的开发成本,随着公司新业务,新阶段的开展,这种需求会一直伴随着公司的发展不断推陈出新,升级改造。数据的监控报表需求无法及时准确的提供给公司的分析人员成为了限制公司健康发展和准确制定决策和目标的严重问题。
发明内容
本发明要解决的技术问题是提供一种基于canal和elastisearch平台的通用监控报表平台的设计方法,以适用于实时监控和定时汇总报表等通用数据查询导出的场景,具有无需修改代码、无需测试既可快速、稳定、高效的上线各种监控报表页面的功能。
本发明的通用监控报表平台的设计方法,包括:
搭建开源基础系统平台:搭建canal服务端、搜索服务器、mq平台、数据库从库;
搭建binlog解析模块、监控报表数据组装管理模块、通用监控报表模板管理模块、通用监控报表平台展示模块;
配置监控报表数据,写入elasticsearch。
本发明的通用监控报表平台的设计方法,其中,还包括:
录入和展示监控报表模块。
本发明的通用监控报表平台的设计方法,其中,搭建binlog解析模块包括:采集配置信息,控制canal解析binlog,基于解析过滤后的相关数据增删改的消息,查询被修改的数据,发送到mq中对应的topic,表名作为mq的tag。
本发明的通用监控报表平台的设计方法,其中,搭建监控报表数据组装管理模块包括:通过配置的数据组装配置信息,消费对应topic或tag对应的mq,改装配置的数据组装sql,替换sql中的变量,改造为查询条件为根据数据主键查询的sql,查询数据库从库,支持所有sql,在数据库从库表结果索引设计合理的情况下,查询sql的执行性能可控。
本发明的通用监控报表平台的设计方法,其中,搭建通用监控报表模板管理模块包括:
以elasticsearch中的字段名和页面中展示的描述名、页面中的展示形式以及查询判断方式作为查询条件信息;
根据elasticsearch中字段名称和查询判断方式生成elasticsearch的查询请求;
以查询elasticsearch查询返回字段的名称和页面中对应的展示表头名作为展示字段信息;
以查询elasticsearch的排序和分页方式作为排序信息;
以页面的样式、分页操作方式、图形展示方式作为页面元素。
本发明的通用监控报表平台的设计方法,其中,搭建通用监控报表平台展示模块包括:设计页面主页和后台,利用页面主页展示报表页面,利用后台提供elasticsearch中数据的查询服务以及通用查询条件的基础数据服务。
本发明的通用监控报表平台的设计方法,其中,配置监控报表数据,写入elasticsearch包括:操作binlog解析模块和数据组装模块,配置监控数据的原始数据的数据库信息和表信息以及发送mq的信息。
本发明的通用监控报表平台的设计方法,其中,录入和展示监控报表模块包括:基于elasticsearch中已经存在的数据格式和查询展示逻辑在模板管理模块中录入模板信息,以在报表平台上查看改模板id对应的报表页面。
本发明的技术方案为利用通用语言、通用数据的实时监控报表平台的实现方法,主要有以下优点:
1、一次开发部署,支持绝大多数的数据监控报表需求。
2、无需二次开发,无需测试既可实时准确的上线监控报表页面,极大的降低此类需求的开发测试成本和上线出错概率。
3、监控报表页面动态生成,系统无需停用或重启。
4、监控系统的数据实时性、准确性高,性能和可用性满足海量数据和高并发数据场景。
5、系统对生产数据库没有任何影响,也不依赖数据生产系统。
6、平台停机重启不会造成数据丢失、中断、重复等问题。
7、本方案的依赖均为开源且IT公司普遍已经广泛使用的技术和平台。
8、本方案满足mysql、mariadb、oracle等主流数据库数据,且java、c++、php、jsp、.net等各种前后台语言皆可实现。
附图说明
图1为本发明的通用监控报表平台的设计方法的流程示意图。
具体实施方式
如图1所示,本发明的通用监控报表平台的设计方法,包括:
搭建开源基础系统平台:搭建canal服务端、搜索服务器、mq平台、数据库从库;
搭建binlog解析模块、监控报表数据组装管理模块、通用监控报表模板管理模块、通用监控报表平台展示模块;
配置监控报表数据,写入elasticsearch。
本发明的通用监控报表平台的设计方法,其中,还包括:
录入和展示监控报表模块。
本发明的通用监控报表平台的设计方法,其中,搭建binlog解析模块包括:采集配置信息,控制canal解析binlog,基于解析过滤后的相关数据增删改的消息,查询被修改的数据,发送到mq中对应的topic,表名作为mq的tag。
本发明的通用监控报表平台的设计方法,其中,搭建监控报表数据组装管理模块包括:通过配置的数据组装配置信息,消费对应topic或tag对应的mq,改装配置的数据组装sql,替换sql中的变量,改造为查询条件为根据数据主键查询的sql,查询数据库从库,支持所有sql,在数据库从库表结果索引设计合理的情况下,查询sql的执行性能可控。
本发明的通用监控报表平台的设计方法,其中,搭建通用监控报表模板管理模块包括:
以elasticsearch中的字段名和页面中展示的描述名、页面中的展示形式以及查询判断方式作为查询条件信息;
根据elasticsearch中字段名称和查询判断方式生成elasticsearch的查询请求;
以查询elasticsearch查询返回字段的名称和页面中对应的展示表头名作为展示字段信息;
以查询elasticsearch的排序和分页方式作为排序信息;
以页面的样式、分页操作方式、图形展示方式作为页面元素。
本发明的通用监控报表平台的设计方法,其中,搭建通用监控报表平台展示模块包括:设计页面主页和后台,利用页面主页展示报表页面,利用后台提供elasticsearch中数据的查询服务以及通用查询条件的基础数据服务。
本发明的通用监控报表平台的设计方法,其中,配置监控报表数据,写入elasticsearch包括:操作binlog解析模块和数据组装模块,配置监控数据的原始数据的数据库信息和表信息以及发送mq的信息。
本发明的通用监控报表平台的设计方法,其中,录入和展示监控报表模块包括:基于elasticsearch中已经存在的数据格式和查询展示逻辑在模板管理模块中录入模板信息,以在报表平台上查看改模板id对应的报表页面。
通用监控报表平台系统方案主要有以下4个模块
1、binlog解析模块
2、监控报表数据组装管理模块
3、通用监控报表模板管理模块
4、通用监控报表平台展示模块
系统从搭建到新监控报表页面上线主要有一下4个步骤:
1、依赖系统搭建阶段:搭建canal、elasticsearch、mq平台
2、报表平台搭建阶段:搭建上面列出的四个模块
3、监控数据配置阶段:配置监控报表数据,写入elasticsearch
4、监控模块管理阶段:录入和展示监控报表模块
其中步骤1和步骤2为一次性开发步骤,步骤3和步骤4会随着每个监控报表需求执行一次或不执行,比如两个监控报表需要的数据相同,步骤3只需执行一次。
通用监控报表平台需要解决2个问题:
1、监控报表数据的计算和保存
2、计算好数据的展示页面和后台接口的支持
通过解析binlog,将数据的实时变化通过mq发送出去,消费mq,在数据库上执行预先配置好的sql,将数据写入到elasticsearch或者solr等查询性能好的数据查询平台既可解决数据的计算和保存问题,并且能够满足海量数据高并发场景的查询和计算等性能需求。
基于elasticsearch等平台的数据,通过配置统一规则协议的监控模板,满足不同的数据监控需求,解析模板数据,动态生成监控页面,查询elasticsearch等平台的监控报表数据,既可动态的生成不同的监控报表页面。
解决方案一共有四个模块:binlog解析模块、监控报表数据组装模块、通用监控报表模板管理模块、通用监控报表平台展示模块
1、binlog解析模块:通过配置好的来源数据库信息(如表1),通过canal技术解析对应的数据库binlog,过滤出有监控报表需求的数据库表的数据增删改操作,查询被修改数据的自增id或者主键,附加上数据库表名和库名等信息,每一条数据发送一个mq。
2、监控报表数据组装模块:在本模块配置数据的来源信息、elasticsearch保存数据的index和type信息、带变量的数据查询sql(如表2);消费数据库和表对应的mq,提取数据id等信息,替换sql中的变量,执行sql,将查询到的数据写入到elasticsearch平台既可实现数实时的监控数据需求;在现有elasticsearch中数据基础上,通过配置好的定时任务执行elasticsearch查询聚合等,将数据写入elasticsearch其他的index或者type中既可实现离线数据分析汇总的数据需求。
3、通用监控报表模板管理模块:本模块主要负责管理监控报表页面的查询数据来源、查询条件、展示字段、页面效果等监控模板数据(如表3),为监控报表平台提供模板查询服务,支持模板的信息编辑和动态上下线等功能。
4、通用监控报表平台展示模块:本模块主要查询和解析监控模板,基于模板定义的规则和样式展示web页面,模块id可以作为页面地址参数,不同id既表示不同的监控页面。提供elasticsearch中数据的分页或全量查询服务、通用的查询条件基础数据服务,web页面可以支持各种通用图表展示,可以支持导出和打印等通用的功能。
序号 | 字段名 | 数据类型 | 注释 |
1 | id | int(11) | 自增id |
2 | db_name | varchar(255) | 数据库名称 |
3 | db_connection | varchar(255) | 数据库连接信息 |
4 | table_names | varchar(255) | 采集数据的表集合 |
5 | mq_connection | varchar(255) | mq连接信息 |
6 | mq_topic | varchar(255) | mq的topic |
7 | status | int(11) | 状态,1:启用,2:停用 |
8 | c_t | int(11) | 创建时间戳 |
表1解析binlog发送mq配置表
序号 | 字段名 | 数据类型 | 注释 |
1 | id | int(11) | 自增id |
2 | mq_connection | int(11) | mq连接信息 |
3 | mq_topic | varchar(255) | mq的topic |
4 | sql | text | 查询数据库的sql |
5 | es_connection | varchar(255) | elasticsearch连接信息 |
6 | es_index_type | varchar(255) | 写入elasticsearch的index、type信息 |
7 | c_t | int(11) | 创建时间戳 |
表2消费mq生成监控报表数据配置表
表3通用监控模板表
系统从开始搭建到上线一个监控报表页面主要有以下7个步骤:
1、搭建开源基础系统平台:canal服务端、elasticsearch平台、mq平台、数据库从库等依赖系统资源搭建,均为通用或开源系统。elasticsearch可以考虑使用solr等其他平台替代,mq没有任何要求,数据库为canal支持的mysql、mariadb、oracle等数据库。
2、binlog解析模块开发:作为canal客户端,通过采集配置(如表1)的信息,控制canal解析binlog,基于解析过滤后的相关数据增删改的消息,查询被修改的数据,发送到mq中对应的topic,表名可以考虑作为mq的tag等信息,方便mq的分表消费,本模块查询修改的数据,由于数据库查询性能好于查询性能,且数据的读写比为1:1,读取数据发送mq,所以性能不存在什么压力。
3、数据组装模块开发:通过配置的数据组装配置的信息,消费对应topic或tag对应的mq,改装配置的数据组装sql,替换sql中的变量,改造为查询条件为根据数据主键查询的sql,查询数据库从库,支持跨表查询等所有sql,在数据库从库表结果索引设计合理的情况下,查询sql的执行性能可控。在高并发的情况下可以考虑消费mq,按表名和主键作为唯一标示,写入缓存去重,然后异步线程查询缓存中的信息,异步写入elasticsearch的方式,降低高并发下重复查询数据库相同数据的性能浪费,单线程读缓存写elasticsearch,性能和数据最终一致性可控,离线定时数据汇总分析查询elasticsearch,写elasticsearch,性能也可通过按时分表、卸载历史数据等方式优化。
4、报表模板管理模块:本模块主要为提供监控模板(如表3)数据的增删改查服务,模板主要提供elasticsearch中数据的来源信息;查询条件信息主要是elasticsearch中的字段名和页面中展示的描述名,以及页面中的展示形式,如文字输入、下拉列表、时间选择器,还有查询判断方式,如等于,大于,小于,全文匹配,不等于等,根据elasticsearch中字段名称和查询判断方式既可生成elasticsearch的查询请求;展示字段信息为查询elasticsearch查询返回字段的名称和页面中对应的展示表头名;排序信息为查询elasticsearch的排序和分页方式;页面元素可以配置页面的样式、分页操作方式、图形展示方式如柱状图、饼状图等其他定制的页面信息。
5、平台展示模块开发:本模块提供监控报表页面需要的各种通用后台服务。页面主页可以通过模板id的不同,一个页面展示所有报表页面,后台和页面中都基于模板实现不同的数据服务,后台主要提供elasticsearch中数据的查询服务、通用查询条件的基础数据服务;页面解析模板中的查询条件信息、展示字段信息、页面元素信息等动态渲染和展示,可以提供查询、导出、打印等多种通用服务。
以上步骤为一次性开发步骤,下面步骤在页面的动态配置时操作一次或不操作,且都为系统操作和配置数据录入,既可实现监控报表的动态生成和查询。
6、监控报表数据配置阶段:主要操作binlog解析模块和数据组装模块,配置监控数据的原始数据的数据库信息和表信息,以及发送mq的信息,一套数据配置一次既可;在数据组装平台配置报表数据依赖的mq、写入elasticsearch的信息和查询数据库的sql,生效后平台既可实时或者定时生成监控和汇总分析报表数据到elasticsearch中。
7、监控报表模块配置阶段:基于elasticsearch中已经存在的数据格式和查询展示逻辑在模板管理模块中录入模板信息,生效后既可在报表平台上查看改模板id对应的报表页面。
以上仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (4)
1.一种通用监控报表平台的设计方法,其特征在于,包括:
搭建开源基础系统平台:搭建canal服务端、搜索服务器、mq平台、数据库从库;
搭建binlog解析模块、监控报表数据组装管理模块、通用监控报表模板管理模块、通用监控报表平台展示模块;
配置监控报表数据,写入elasticsearch;
所述通用监控报表平台的设计方法还包括:
录入和展示监控报表模块;
其中,搭建binlog解析模块包括:采集配置信息,控制canal解析binlog,基于解析过滤后的相关数据增删改的消息,查询被修改的数据,发送到mq中对应的topic,表名作为mq的tag;
其中,搭建监控报表数据组装管理模块包括:通过配置的数据组装配置信息,消费对应topic或tag对应的mq,改装配置的数据组装sql,替换sql中的变量,改造为查询条件为根据数据主键查询的sql,查询数据库从库,支持所有sql,在数据库从库表结果索引设计合理的情况下,查询sql的执行性能可控;
其中,搭建通用监控报表模板管理模块包括:以elasticsearch中的字段名和页面中展示的描述名、页面中的展示形式以及查询判断方式作为查询条件信息;根据elasticsearch中字段名称和查询判断方式生成elasticsearch的查询请求;以查询elasticsearch查询返回字段的名称和页面中对应的展示表头名作为展示字段信息;以查询elasticsearch的排序和分页方式作为排序信息;以页面的样式、分页操作方式、图形展示方式作为页面元素。
2.如权利要求1所述的通用监控报表平台的设计方法,其特征在于,搭建通用监控报表平台展示模块包括:设计页面主页和后台,利用页面主页展示报表页面,利用后台提供elasticsearch中数据的查询服务以及通用查询条件的基础数据服务。
3.如权利要求2所述的通用监控报表平台的设计方法,其特征在于,配置监控报表数据,写入elasticsearch包括:操作binlog解析模块和数据组装模块,配置监控数据的原始数据的数据库信息和表信息以及发送mq的信息。
4.如权利要求3所述的通用监控报表平台的设计方法,其特征在于,录入和展示监控报表模块包括:基于elasticsearch中已经存在的数据格式和查询展示逻辑在模板管理模块中录入模板信息,以在报表平台上查看改模板id对应的报表页面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811625927.9A CN109871406B (zh) | 2018-12-28 | 2018-12-28 | 通用监控报表平台的设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811625927.9A CN109871406B (zh) | 2018-12-28 | 2018-12-28 | 通用监控报表平台的设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109871406A CN109871406A (zh) | 2019-06-11 |
CN109871406B true CN109871406B (zh) | 2023-06-20 |
Family
ID=66917290
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811625927.9A Active CN109871406B (zh) | 2018-12-28 | 2018-12-28 | 通用监控报表平台的设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109871406B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110618972A (zh) * | 2019-08-26 | 2019-12-27 | 达疆网络科技(上海)有限公司 | 一种利用自增Id增进深分页方法 |
CN110995566A (zh) * | 2019-10-30 | 2020-04-10 | 深圳震有科技股份有限公司 | 一种消息数据推送方法、系统及装置 |
CN112181905A (zh) * | 2020-09-29 | 2021-01-05 | 成都商通数治科技有限公司 | 一种数据监控集成系统 |
CN112817791B (zh) * | 2020-12-31 | 2024-04-26 | 西安合智宇信息科技有限公司 | 一种工作面集群开采状态的移动端监控方法 |
CN112732763A (zh) * | 2021-01-20 | 2021-04-30 | 北京千方科技股份有限公司 | 数据的聚合方法、装置、电子设备及介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216817A (zh) * | 2007-12-29 | 2008-07-09 | 中国建设银行股份有限公司 | 一种异构报表整合及集中管理的装置和系统 |
CN107729214A (zh) * | 2017-10-13 | 2018-02-23 | 福建富士通信息软件有限公司 | 一种可视化的分布式系统实时监控运维方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020158B (zh) * | 2012-11-26 | 2016-09-07 | 中兴通讯股份有限公司 | 一种报表创建方法、装置和系统 |
US20150081882A1 (en) * | 2013-09-17 | 2015-03-19 | Stackdriver, Inc. | System and method of alerting on ephemeral resources from an iaas provider |
-
2018
- 2018-12-28 CN CN201811625927.9A patent/CN109871406B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101216817A (zh) * | 2007-12-29 | 2008-07-09 | 中国建设银行股份有限公司 | 一种异构报表整合及集中管理的装置和系统 |
CN107729214A (zh) * | 2017-10-13 | 2018-02-23 | 福建富士通信息软件有限公司 | 一种可视化的分布式系统实时监控运维方法及装置 |
Non-Patent Citations (2)
Title |
---|
CAT监控系统服务端的设计与实现;任天;《优秀硕士论文》;20180815;全文 * |
基于MySQL Binlog的数据增量同步系统的设计与实现;苏子权;《优秀硕士论文》;20181015;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN109871406A (zh) | 2019-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109871406B (zh) | 通用监控报表平台的设计方法 | |
US20210240736A1 (en) | Method and Apparatus for Monitoring an In-memory Computer System | |
US8219518B2 (en) | Method and apparatus for modelling data exchange in a data flow of an extract, transform, and load (ETL) process | |
CN110647579A (zh) | 数据同步方法及装置、计算机设备与可读介质 | |
US20170154057A1 (en) | Efficient consolidation of high-volume metrics | |
CN105183860B (zh) | 数据同步方法和系统 | |
US20110302551A1 (en) | System and method for analytic process design | |
US8880459B2 (en) | Navigation across datasets from multiple data sources based on a common reference dimension | |
US11615076B2 (en) | Monolith database to distributed database transformation | |
CN104536987B (zh) | 一种查询数据的方法及装置 | |
CN109299074B (zh) | 一种基于模板化数据库视图的数据校验方法及系统 | |
JP2022031625A (ja) | 情報をプッシュするための方法および装置、電子機器、記憶媒体並びにコンピュータプログラム | |
CN114218218A (zh) | 基于数据仓库的数据处理方法、装置、设备及存储介质 | |
CN114880405A (zh) | 一种基于数据湖的数据处理方法及系统 | |
CN116662441A (zh) | 一种分布式数据血缘构建及展现方法 | |
CN117851163A (zh) | 一种基于自研openstack平台的服务巡检工具 | |
Engel et al. | ysla: reusable and configurable SLAs for large-scale SLA management | |
CN112817592A (zh) | 一种基于实体注解的自动代码生成方法 | |
CN116975116A (zh) | 一种大数据分析系统的数据条件筛选方法 | |
CN116155689A (zh) | 一种基于ClickHouse的高可用Kong网关日志分析方法及系统 | |
CN101788977A (zh) | 一种医学检查报告编辑修改实现方法 | |
EP4105813A1 (en) | Method for analyzing data consisting of a large number of individual messages, computer program product and computer system | |
CN109032580A (zh) | 一种通用数据报审与分析软件的制作方法 | |
Mordinyi et al. | Evaluating software architectures using ontologies for storing and versioning of engineering data in heterogeneous systems engineering environments | |
CN112131302B (zh) | 一种商业数据分析方法及平台 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |