监控平台当前使用storm对日志进行流式分析计算,用于支撑监控数据清洗,后来逐渐在storm上搭建起数据在线关联,数据离线关联,明细数据清洗,日志搜索等功能,本章节对各功能进行简要概述。

对storm不熟悉的话,建议先阅读相关文献:http://ifeve.com/getting-started-with-stom-index/

1. 正常业务数据清洗

该功能是mng系统最基本功能,也是最早搭建起来的,其目的是从日志中清洗出具有业务监控含义的数据,当前监控平台绝大多数数据均是通过该功能进行数据清洗,该功能的整体流程图如下:

数据清洗流程为:从源节点采集日志数据进入到mng-storm系统,数据流向split节点并在split节点完成日志记录的分割,随后数据进入count节点进行业务数据的统计和计算,计算完成后,在sum节点进行数据的汇总和落地到hbase。后续章节会详细介绍各节点的功能及实现。

2. 在线数据关联

该功能的出现是因为在实际业务监控中,某些日志由于业务系统的限制,无法打印完整的日志信息,如当面付SDK系统只有在请求阶段有完整的日志打印出来,而创建和支付阶段由于是走监听消息对监听内容做打印而无法打印出阶段信息,推动业务系统进行改造代价较大,由于各阶段都有相同的交易号信息,因此可以通过交易号进行信息关联,补全日志的创建,支付阶段。基于此,mng-storm系统实现了一套在线关联方案。

数据清洗过程复用split,count,sum节点功能,但在split节点和count节点中间增加一补全节点,该节点缓存一定时间的日志数据,并根据交易号和时间信息进行日志补全,由于补全信息来源于日志本身,因此又叫在线关联。

3. 明细数据

该功能较为简单,将日志信息进行简单的过滤后存储下来,提供给mng系统读取,通过数据存储落地的方式打破两个系统之间之间的隔阂。该功能的出现是因为早期mng-storm系统在未进行水平拆分和垂直拆分之前,功能相对薄弱,当需要进行数据离线关联时,会有大量读取hbase操作,会导致数据处理延时甚至积压。因此为实现较为耗时的数据关联功能,先通过storm系统将日志明细落地,由mng负责读取相关明细数据,并通过时间片调度任务的方式将数据分散到mng各机器上处理,减轻单机节点压力,通过该种方案监控平台实现了余额宝用户属性分析,2014年双十二线下交易及用户分析功能。

该功能在storm上较为简单,split处理完数据后,发送到detail节点,detail节点进行进行数据的处理及落地。在明细数据处理详细介绍中会介绍平台如何结合两个系统共同实现复杂关联的实现,在早期storm功能没那么强大的时候,该方案极其巧妙的解决了离线关联这一高难度问题。

4. 日志分析

日志分析功能同样是将日志数据落地,但该功能主要是将日志原始数据落地,同时根据交易号和pid等信息作为索引,通过交易号和pid在前端页面输入即能查到相关的原始日志信息,便于相关人员排查问题。

功能显而易见,在logAnalyse节点进行索引处理及原始日志落地。

5. 离线关联

明细数据功能的实现虽然完美的解决了离线数据关联的问题,但也有其缺点:数据处理链路过长;系统延时较高;tt数据源有延时的时候,无法自动恢复数据。随着mng系统垂直拆分和水平拆分功能后,当前系统已经具备在storm系统上实现离线数据关联的能力。

系统在split节点和count节点之前添加一个节点用于离线关联,在offline节点实现数据与离线数据的关联。

总结

本节概括介绍当前mng系统所涵盖的基本功能,及其链路实现,后续会陆续介绍各部分功能的实现以及storm应用中的一些通用性的问题。

Storm业务功能的更多相关文章

  1. storm的功能、三大应用

    storm的功能 Storm 有许多应用领域:实时分析.在线机器学习.持续计算.分布式 RPC(远过程调用协议,一种通过网络从远程计算机程序上请求服务). ETL(Extraction-Transfo ...

  2. Storm概念学习系列之storm的功能和三大应用

    不多说,直接上干货! storm的功能 Storm 有许多应用领域:实时分析.在线机器学习.持续计算.分布式 RPC(远过程调用协议,一种通过网络从远程计算机程序上请求服务). ETL(Extract ...

  3. Web自动化框架之五一套完整demo的点点滴滴(excel功能案例参数化+业务功能分层设计+mysql数据存储封装+截图+日志+测试报告+对接缺陷管理系统+自动编译部署环境+自动验证false、error案例)

    标题很大,想说的很多,不知道从那开始~~直接步入正题吧 个人也是由于公司的人员的现状和项目的特殊情况,今年年中后开始折腾web自动化这块:整这个原因很简单,就是想能让自己偷点懒.也让减轻一点同事的苦力 ...

  4. OsharpNS轻量级.net core快速开发框架简明入门教程-基于Osharp实现自己的业务功能

    OsharpNS轻量级.net core快速开发框架简明入门教程 教程目录 从零开始启动Osharp 1.1. 使用OsharpNS项目模板创建项目 1.2. 配置数据库连接串并启动项目 1.3. O ...

  5. .NetCore 下开发独立的(RPL)含有界面的组件包 (六)实现业务功能

    .NetCore 下开发独立的(RPL)含有界面的组件包 (一)准备工作 .NetCore 下开发独立的(RPL)含有界面的组件包 (二)扩展中间件及服 务 .NetCore 下开发独立的(RPL)含 ...

  6. 基于AOP注解实现业务功能的动态配置

    一.导入jar包 <dependency><!-- 4.引入AOP--> <groupId>org.springframework.boot</groupId ...

  7. SpringBoot整合MyBatis-Plus实现快速业务功能开发

    概览:使用MybatisPlus和它的代码生成整合SpringBoot可以实现快速的业务功能开发,具体步骤如下 一.添加依赖 <dependency> <groupId>org ...

  8. 架构探险——第二章(为web应用添加业务功能)

    第二章不使用框架完成了自己的Web应用. 重点: 服务层的完善优化过程,思路 在看这一段的时候引起了无数次的共鸣.相信大家在开始接触Java Web的时候,都做过类似的封装和优化. 第一版 在Serv ...

  9. JFinal极速开发实战-业务功能开发-通用表单验证器

    提交表单数据时,需要经过前端的验证才能提交到后台,而后台的验证器再做一道数据的校验,成功之后才能进入action进行业务数据的处理. 在表单数据的验证中,数据类型的验证还是比较固定的.首先是对录入数据 ...

随机推荐

  1. MS SQL 日志记录管理

    MS SQL的日志信息/日志记录,可能对你来说,既熟悉又陌生,熟悉是因为你可能一直都在使用,查看.关注一些日志信息/记录,例如,作业历史记录:陌生是因为你可能从不关注日志信息/记录的管理,这里我一直用 ...

  2. getRequestDispatcher()和response.sendRedirect()

    request.getRequestDispatcher()是请求转发,前后页面共享一个request   response.sendRedirect()是重新定向,前后页面不是一个request.

  3. Android 使用EventBus发送消息接收消息

    基本使用 自定义一个类 public class LoginEvent { private String code;//是否成功 public LoginEvent(String code) { th ...

  4. 模型和字段 -- Django从入门到精通系列教程

    该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453 ...

  5. JavaSE基础篇—MySQL三大范式—数据库设计规范

    1.概   念     范式是一种符合设计要求的总结,要想设计一个结构合理的关系型数据库,必须满足一定的范式.各个范式是以此嵌套包含的,范式越高,设计等级越高,在现实设计中也越难实现,一般数据库只要打 ...

  6. htmlcss渐变及兼容性

    自我总结,欢饮拍砖. <!DOCTYPE HTML> <html lang="en"> <head>      <meta content ...

  7. operator重载运算符

    1.重载运算符的函数一般格式如下 函数类型    operator  运算符名称    (形参表列) {对运算符的重载处理} 例如,想将"+"用于Complex(复数)的加法运算, ...

  8. linux ss 命令

    ss 是 Socket Statistics 的缩写.ss 命令可以用来获取 socket 统计信息,它显示的内容和 netstat 类似.但 ss 的优势在于它能够显示更多更详细的有关 TCP 和连 ...

  9. JavaBean,List,Map,json格式之间转化方式

    public class TestBean { private String id; private String name; private String password; public Stri ...

  10. SAP进度条

     一.代码示例: ),"行数 ll_tabix(),"循环标号 ll_pecnt DECIMALS ,"百分比 ll_pecet(),"百分数 ll_text( ...