1、Science and Technology&Innovation科技与创新2023 年 第 17 期89文章编号:2095-6835(2023)17-0089-03基于“知天气”APP 数据全流程的移动端监控系统设计林孔杰,陈 云,郭昌松,汪春辉(福建省气象服务中心,福建 福州 350100)摘要:提出了一种基于“知天气”APP 数据全流程的移动端监控系统,通过“知天气”APP 产品数据逐级回溯到数据源,实现移动端的数据全流程监控。该系统能快速定位“知天气”产品异常数据节点,提高“知天气”数据保障效率。主要分析了“知天气”产品数据特点,随后介绍了平台使用的关键技术,最后对整体设计框架进行了介
2、绍。关键词:“知天气”;数据监控;气象数据;全流程中图分类号:P409;TP311.1文献标志码:ADOI:10.15913/ki.kjycx.2023.17.025福建“知天气”APP 作为移动公共气象服务平台,向公众展示实时的气象信息。为了满足气象服务的时效性与准确性,针对“知天气”的监控系统必不可少。本文提出一种基于数据全流程的移动端监控系统。主要是针对“知天气”APP 产品数据全流程进行监控,能第一时间追溯数据问题所在。随着气象事业的不断发展,气象观测数据日益庞大,气象部门的数据传输以及应用脉络错综复杂,国内气象工作者提出许多监控方法。吴贵义等1提出一种全链路气象数据监控系统,解决数据
3、异常定位问题。王力等2提出基于Message Queuing消息中间件技术实现一种气象数据采集与监控系统。郭昌松等3通过模拟客户端请求“知天气”的接口数据实现一种数据主动监控系统。目前福建“知天气”产品数已达 100 多个,日处理数据量达万兆。单纯的数据主动监控已无法满足运行需求。一旦数据出现未及时更新的情况,业务人员需要对各个生产环节逐一排查。各个数据系统监控环节分散且不连续,出现问题不能及时定位,很难满足实时业务对监控的需求。因此,为解决实际问题,应提升数据监控水平,及时恢复数据。本研究提出了全链路气象数据监控系统的设计思路,能快速定位数据更新异常的具体节点,达到及时、高效的业务保障能力。
4、1“知天气”产品数据特点分析“知天气”APP 作为福建省气象手机客户端服务系统,汇聚了全省气象服务数据。主要有自动站实时数据,逐日预报、逐时预报、旅游气象预报,天气综述、雷达图、卫星云图、数值预报、气象视频、生活指数、空气质量等气象数据。系统针对每种数据的更新周期特性,将数据分四大类,如表 1 所示,同时针对更新特性制定相关的采集频次与监控边界时间(指当前时间与文件时间的最大差值)。表 1“知天气”产品数据信息表数据类型数据范围更新频次范围采集频次监控边界时间实时数据自动站数据,逐日预报、逐时预报,雷达图、数值预报5 min5 min/次10 min逐 1 h 数据卫星云图、生活指数、空气质量
5、(5,60min30 min/次2 h逐 12 h 数据天气综述(60,720min60 min/次14 h逐 24 h 数据气象视频720 min180min/次26 h2关键技术介绍2.1移动端框架 Uni-app本文采用了 Hbuilder 平台下的 Uni-app 框架。Uni-app 是一个使用 vue.js 开发所有前端应用的框架,是一个整合了小程序开发框架、APP 跨平台框架和兼容性强的 HTML5 开发框架。当业务系统需要在不同的平台展示时,针对不同的平台编写独有的运行代码的成本显然非常高,Uni-app 可以实现一次开发多端可拓展的技术框架,它可将代码编译成支持 Androi
6、d、iOS以及各种小程序等快应用展示平台,从而降低系统二次开发的不便性,因此为了能实时、不受平台限制地监控“知天气”数据源,本系统使用 Uni-app 框架开发前端应用,能同时满足电脑端、移动端以及其他服务平台的实时数据监控。本系统使用 Vue 框架来进行平台开发,主要涉及 CSS 和 JavaScript 语言的使用。2.2接口服务框架 FlaskFlask 是一个轻量级的 Python 语言 Web 微框架。Flask 框架的主要优点是核心简单且易于拓展。它只保科技与创新Science and Technology&Innovation902023 年 第 17 期留了 Web 开发的核心
7、功能,因此能够轻松地结合 MVC模式进行系统开发。另外 Flask 还具有很强的定制性,能根据自身业务需求来添加不同的组件满足开发需求。针对 Flask 框架这种特点,系统可以使用 Python语言快速实现接口服务。并且针对不同数据源的监控需求定制合理且普适的文本开发环境。3系统介绍3.1基于“知天气”数据全流程监控系统设计福建“知天气”APP 的数据源从生成到具体应用涉及多个环节。其中包括气象数据资源库、公共数据支撑平台、内部数据源等。本研究介绍的数据全流程监控系统,其功能是以 APP 应用产品为起点,逐级追溯到数据源头的数据状态。通过数据接口、文件状态等监控方法,实现对全流程数据的信息监控
8、。其次根据数据采集频率、文件更新频率进一步设计各个数据阶段的监控规则与告警边界。最后利用 Vue 可视技术将监控数据块整合成全流程监控展示模块。系统总体设计示意图 1 所示。图 1基于“知天气”数据全流程监控系统框架图3.2功能设计数据采集层:全流程监控系统对各个数据源实现分布式数据采集。平台采用 APScheduler 调度框架处理数据采集调度任务,根据产品类型配置调度任务的采集频率。再通过统一监视信息采集接口,采用分布式采集汇聚,所需采集文件的信息包含报文名、资料类型、资料时次、生成时间、文件名、数据路径等。由于平台涉及多个数据平台调度、跨网协同等问题。系统监控策略为仅判定“知天气”数据更
9、新异常时,方能回溯采集数据源的数据状态,具体策略如图 2 所示。此方法不仅能减少任务调度频率,而且能减少监控系统对数据平台的负载压力。跨网协同采用“推”“拉”方式。主要针对不同数据源的系统以及网段的互通,通过推的方式将采集获取监测数据的状态、事件等监控信息推送至指定的中间服务器。再通过拉取的方式将获得的数据信息同步至目标服务器。系统使用 Kafka技术通过将高吞吐量数据队列等数据总线方式对数据进行数据消峰和缓冲;系统读取 Kafka 队列中缓冲的数据,并结合数据库中的现存数据,通过 SQL 语句将队列的数据加载为 Data Frame 形式,最后再利用 DataFrame 上的 API 进行查
10、询、转换、计算,最终将生成的结果数据写回存储层。图 2监控策略流程图告警规范层:该模块功能是对数据进行分析告警处理、指标计算、统计分析。告警处理是指当系统监控到当前文件超过监控边界时间时,系统会将采集到的异常环节告知值班人员。但异常处理完毕时需要值班人员登记备案处理情况。存储相关的处理结果将有利于日后查询,并且往后出现相关的异常可为值班人员提供参考,具体流程如图 3 所示。指标计算与统计分析 2 个模块是系统将“知天气”产品到报时间、异常节点等数据做统计分析,形成图表等进行可视化,为改善监控系统提供数理分析。存储层:采用基于 mysql 数据库,文件日志的方式实现较灵活的基础设施资源配置管理数
11、据库的存储。展示层:系统使用 Uni-app 框架实现了监视系统的数据监控、告警处置、数据查询等界面展示。介于 Uni-app的便利性,系统生成了 Android 与 iOS 这 2 个版本。告警规范展示模块综合监控告警处置数据采集数据链路告警分析统计图形统计分析数据库告警处置数据源数据支撑库福建“知天气”APP文件监控接口调用数据缓存日志存储数据存储开始计算告警边界时间数据采集调度是否异常判定类型判定异常数据节点是添加任务监控存储日志否回溯数据源记录异常节点结束Science and Technology&Innovation科技与创新2023 年 第 17 期91图 3告警处置流程图3.3
12、性能测试为测验 APP 功能模块的响应性能,在相同网络环境下,分别使用性能相近的安卓版手机与苹果版手机验证其响应性能。对异常监控模块与产品查询模块加载时长进行统计记录,每个功能模块均进行 10 次测试实验,记录模块加载时间(以加载全部数据时间为准)。打开“异常处理模块”响应时间对比如图 4(a)所示。测试结果:安卓端打开该模块的平均响应时长为 1.1 s,苹果端的平均响应时长为 1.0 s。打开“产品查询模块”响应时间结果如图 4(b)所示。测试结果:安卓端打开该模块的平均响应时长为 1.56 s,苹果端的平均响应时长为 1.61 s。测试证明 APP 主要功能模块响应时长均在 1 s 左右,
13、基本满足用户体验。(a)打开异常处理模块加载时间柱状图(b)打开产品查询模块加载时间柱状图图 4测验 APP 功能模块的响应性能对比情况4应用效果该系统能满足“知天气”的日常数据保障的需求,系统多次主动告警提醒值班人员数据异常,能快速定位异常数据节点,极大提高了“知天气”数据保障的效率。该系统在监控方面仍存在不足,监控策略配置上无法达到快速发现故障。后续将分析数据更新时间进行合理统计分析,制定更加精细的数据监控策略,进一步提高数据保障的及时性。参考文献:1吴贵义,贾宁远,张志坚,等.气象数据全链路监控系统的设计与实现J.广东气象,2021,43(6):77-80.2王力,韩笑,刘培宁,等.基于 MQ 的气象数据采集与监控系统设计J.气象科技,2015,43(3):451-457.3郭昌松,朱添福,林仲.基于 Android的“知天气”数据主动监控系统设计与实现J.数字技术与应用,2017(1):174-175.作者简介:林孔杰(1994),男,福建平潭人,硕士研究生,助理工程师,研究方向为气象服务与应用气象。(编辑:张超)查询异常节点信息数据调度是监控告警登记处理情况是否更新循环测试次数处理成功测试次数