全栈数据融合

背景

当前互联网业务应用规模迅速扩大,随着DevOps、微服务、虚拟化、容器化等技术的快速发展,运维管理的复杂度和困难度大大增加。监控是IT系统运维中保障核心业务稳定可用的重要环节,其涵盖了网络、主机、业务、应用、性能等方面,随着监控范围不断扩大,其产生的数据具备多样性、多维性和非结构化等特点,并且同业务数据存在相关性。与此同时监控的方式也有新的形态,从传统的手动分析处理方式到工具批量操作方式,到自动化平台管理方式,到一站式自动化运维管理平台的方向进行逐步演化。

企业单纯对底层网络性能监测(NPM)提供对底层通信协议和基础架构的统计数据对IT运维有很大帮助,但是NPM不能提供应用性能和真实终端用户访问体验相关的关键数据指标。当然,以应用为中心的性能监测方案也有待完善,无法提供对确保应用成功交付的基础架构,对通信协议的深入洞察。 由于网络性能及其所支持的应用紧密交织,因此我们需要完整的方案来监测和管理性能,将网络侧和应用侧的数据结合在一起。因此数据融合客户解决方案迫在眉睫。

面临问题

多样化的监控手段,以及多维度的监控方式,在一定程度上能覆盖部分场景。但以下四点一直让企业无法掌控:

异构的基础设施

企业IT基础设施环境与前几年相比前所未有复杂,往往混杂公有云、私有云、混合云以及多地数据中心等

复杂的依赖关系

企业运营一套系统往往有数套甚至数十套后台软件作支撑,其中包括数据库、Web服务器、ERP以及其他应用信息系统等

割裂的数据

企业各系统中,包含大量的数据、资源使用指标等,但这些数据分散在各系统内部,形成了割裂的“数据孤岛” 虽然对于不同的IT部件,如前端、网络、后端(应用及系统),但大量回收的监控数据,其中难免存在重复且割裂的部分,对于此部分,人为关联不同监控工具的数据和去重的工作在所难免,让相关IT人员增加了更多的分析统计任务,这与devops的核心理念背道而驰。即时在有这种手段的监控下,如果不能准确高效的利用回收到的数据,发生问题后,问题的本源还是无法定位到的

故障排查周期长

各个部门的同事各司其职,用户投诉的时候研发,运营,运维部门一般需要协同排查,排查周期长,无法快速定位是前端,网络,还是后端代码的问题。因此,业务系统的管理和维护人员迫切需要一种能够实时了解全业务链运行状态、用户体验,并且将用户体验与业务关联分析的端到端解决方案。
解决方案

博睿宏远建立全业务链质量分析平台,以业务质量为核心,从全业务链出发,实现从前端应用到服务后端的数据打通融合。将博睿宏远的多个产品采集到的数据进行采集,同时融合企业内部自有以及第三方的数据,进行整体的格式处理、统计计算分类等大数据处理,最终实现移动端到服务端打通、网络端到服务端打通、浏览器到服务端打通、服务端跨语言打通、尤其是可以根据企业自身业务,实现自定义任务端到端打通。

注:博睿宏远采集数据概览
应用场景

部门协作可视化

平台对端到端的整体关联进行可视化监测,贯穿应用维护的运维、运营、研发及管理各环节,业务流程中问题复杂多变,利用多角色统一视角下的管理模式,更加便于问题定位和责权到位。

业务人员

通过业务总览数据分析,迅速了解各业务链条质量状况,针对直观可视的问题及环节,提出业务优化需求。

运营人员

直观发现应用性能对业务运行质量的影响,建立关联分析。

运维部门

通过对网络性能、链路质量、系统环境、错误的监控与分析,整体掌握业务各环节的运行状态及问题的影响程度。

研发部

业务受损时,快速判断受损范围和受损程度并及时阻止其扩大,制定优先解决策略。

NPM和APM场景结合

NPM网络性能监测只能提供关于网络运行的基础层面报告,如延迟、丢包率和吞吐量,但无法完全解决应用性能的挑战。要充分了解业务应用的性能波动和终端用户体验,NPM只能推测应用性能,终端用户体验的视图是断裂的。APM专注于应用性能的监测,但是对于配套基础设施的洞察有限。因此,NPM和APM的融合网络性能监测和应用性能管理是非常必要的。以响应动态的IT环境,有效资源利用,加速故障的排除。

某券商客户的NPM和博睿宏远的APM结合,进行问题的排查

从APP发起访问,经过IDC网络链路,经过2级xp和1级xp的存储,到达BP和数据库。主要用来解决的问题:

  • 1

    发现哪个设备有问题。例如各个功能号的处理时延,某台机器是否都比其他机器高
  • 2

    发现哪个功能号的处理时延增大了;哪个业务的处理时延增大
  • 3

    跟踪某个用户所发出的所有数据包的处理时延,并使用图存储的方式进行存储
  • 4

    针对登录功能进行全链路测试
  • 5

    手机前端收到的请求数据包中,携带手机号、资金账号、URL、GUID,手机app会在每个URL请求中增加一个GUID,并且各服务器能全程进行记录,从而最终实现端到端溯源

Splunk与APM数据融合

APM 监控特定软件系统的性能和可用性,传统的 APM 通过在代码嵌入代理获取代理数据(Agent Data),或通过探针数据(Probe Data),监控和检测异常来分析应用程序的性能;日志的价值在于它们无处不在:应用程序,操作系统,数据库,甚至硬件都生成日志。日志分析产品不需要在这些系统嵌入插件,只需要采集这些系统的日志就能做分析。APM 或 NPM 系统也需要依赖日志分析获得更全面的系统信息,日志分析平台可作为 APM 或 NPM 系统的补充,提供更全面、准确的应用性能监控及网络性能监控。

某保险公司,采用splunk进行日志分析,但是基于日志数据太庞大繁杂。无法进行精准的数据分析,因此把splunk和博睿宏远的APM进行了数据融合。

结合博睿宏远的IDC和LM数据进行进一步分析,可以达到如下的数据对接:

  • 1

    发现哪个设备有问题。例如各个功能号的处理时延,某台机器是否都比其他机器高
  • 2

    发现哪个功能号的处理时延增大了;哪个业务的处理时延增大
  • 3

    跟踪某个用户所发出的所有数据包的处理时延,并使用图存储的方式进行存储
  • 4

    针对登录功能进行全链路测试
  • 5

    手机前端收到的请求数据包中,携带手机号、资金账号、URL、GUID,手机app会在每个URL请求中增加一个GUID,并且各服务器能全程进行记录,从而最终实现端到端溯源