监控平台当前使用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. rpm命令的使用

    如果服务器配置了本地yum源,大部分的常用软件包都是有的.如果差了头文件或者什么so文件,可以按如下方式找:#以memory.h为例 [root@sz-cdn-centos7-1 tmp]# wher ...

  2. 【转】awk 数组用法【精华贴】

    文本处理的工作中,awk的数组是必不可少的工具,在这里,同样以总结经验和教训的方式和大家分享下我的一些学习心得,如有错误的地方,请大家指正和补充. awk的数组,一种关联数组(Associative ...

  3. Hyperledger Fabric Endorsement policies——背书策略

    背书策略 背书策略用于指导peer如何确定交易是否得到了的认可.当一个peer接收到一个事务时,它会调用与事务的Chaincode相关联的VSCC(验证系统链代码),作为事务验证流程的一部分,以确定交 ...

  4. Codeforce A. Quasi-palindrome

    A. Quasi-palindrome time limit per test 1 second memory limit per test 256 megabytes input standard ...

  5. re模块与正则表达式

    一.正则表达式概念 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),是计算机科 ...

  6. java编码GBK的不可映射字符

    编译java文件时,提示编码GBK的不可映射字符. 主要原因:windows 默认编码方式为GBK,用javac编译时,中文按照GBK解析,但是文件内容编码格式不是GBK. 解决:若编译单个文件指定编 ...

  7. viim命令行模式查找替换

    1.查找 /   向上查找 ? 向下查找 2.替换 1.:s/vivian/sky/ 替换当前行第一个 vivian 为 sky :s/vivian/sky/g 替换当前行所有 vivian 为 sk ...

  8. Java对Jar文件的操作[转]

    原文地址:http://www.cnblogs.com/mailingfeng/archive/2012/04/24/2122160.html  String dirPath = System.get ...

  9. POJ1556 The Doors [线段相交 DP]

    The Doors Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8334   Accepted: 3218 Descrip ...

  10. 一个开源的强类型客户端(.NET 中的 Open Fegin)— Rabbit Go

    在做RabbitCloud(之前是一个RPC,现在是一个微服务框架)的时候往往避不开客户端代理,之前把这些客户端代理都算作服务框架不可缺少的一部分,随着后期的深入发现这些客户端代理其实可以互通,类似s ...