论文部分内容阅读
随着大数据时代的来临,对应用性能管理(APM)提出科学合理的方法越来越受到企业重视。一方面,通过APM,企业能够及时发现并解决系统存在的问题,甚至能够预测系统是否会出现问题;另一方面,APM可以为企业提供性能优化方案,节省成本。APM系统进行性能分析的基础是对性能指标数据进行收集和预处理,保证数据的实时性、可用性、准确性。指标数据的多样性、分布式集群的复杂性、数据量的爆炸性增长使得APM系统的数据处理面临巨大挑战。为了能够快速、准确地处理APM系统中复杂多样的数据,为性能分析提供数据支持,本文设计并实现了分布式数据处理子系统。该系统针对分布式集群中需要监控的大量任务的海量数据,能够屏蔽底层系统的异构性,有效收集分散在不同机器上的数据,并对其进行类型转换、脏数据清洗、平滑处理、异常过滤等实时处理。本系统基于流计算平台Storm构建,使用消息中间件Kafka接收并存储原始数据,设计并实现了基于指标参数类型的中位数、EM算法相结合的数据清洗算法、基于最小二乘法的异常数据检测与过滤算法,极大地提高了原始数据质量,为保证应用性能分析的准确性提供了良好的数据基础。同时,本系统还具有良好的扩展性、可用性和性能。本文以APM系统为背景,详细介绍了数据处理子系统的设计和实现。首先介绍了 APM系统的国内外研究现状,结合目标系统的数据特点,简要分析本论文的主要研究内容。然后,简单介绍了系统实现所需的分布式数据处理相关技术框架,如Storm、Kafka等,并对数据处理相关算法,如数据清洗、数据质量增强的背景知识进行说明。接着,阐述了应用性能管理软件的项目背景和指标评价体系,并从功能性和非功能性需求两方面分析本系统的实现目标。然后给出了系统的总体设计,说明了系统各模块之间的交互接口和交互的流程,设计了系统关键数据结构。然后利用类图和流程图对系统的实现细节进行说明,并设计测试用例,验证系统是否与需求一致,最后对实现本系统的主要工作进行了总结,并对下一步工作进行了展望。