监控平台当前使用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. awk -f program.file 功能使用

    一.awk -f program.file 功能使用 一直没有使用过awk的-f功能,感觉鸡肋,不是很实用,更多的是因为没有需求的原因 下面介绍下awk -f的使用方法 awk可以指定默认的文件路径, ...

  2. Linux开机时停在 Starting sendmail 不动了的解决方案

    目前遇到这个问题,是在修改了/etc/hosts之后,但停止在Starting sendmail后5分钟就进去了.以后再长时间进入不了系统,可以参考下面的方法. 造成这个问题一般是因为用户修改了机器名 ...

  3. 使用autoc js生成文章目录(侧边)导航栏

    介绍: autocjs 是一个专门用来生成文章目录(Table of Contents)导航的工具.autocjs 会查找文章指定区域中的所有 h1~h6 的标签,并自动分析文章的层次结构,生成文章的 ...

  4. poj 1423 打表/斯特林公式

    对于n位数的计算,我们可以采用(int)log10(n) + 1的方法得到n的位数 第一种方法: 对于n!位数的计算,log10(n!) = log10(1) + log10(2) + ... + l ...

  5. 如何使用Python读取大文件

    背景 最近处理文本文档时(文件约2GB大小),出现memoryError错误和文件读取太慢的问题,后来找到了两种比较快Large File Reading 的方法,本文将介绍这两种读取方法. 准备工作 ...

  6. 最大流模版 EK

    EK算法基于增广路的思想,易于理解,但由于低效并不被经常使用 #include <iostream> #include <cstdio> #include <algori ...

  7. bzoj 3033: 太鼓达人 [欧拉回路]

    3033: 太鼓达人 题意:长m的01环,每个长k的子串都是不同的01串.给出k,求最大的M以及字典序最小的方案. \(M=2^k\) 可以把k-1位01串看成点,k位01串就是边,满足欧拉回路的条件 ...

  8. 前端系列之CSS基础知识概述

    1.什么是DIV (1).div就是html一个普通标签,进行区域划分.特性:独自占一行.独自不能实现复杂效果.必须结合css样式进行渲染. (2).div通常其是块级元素 (3).div是定义文档中 ...

  9. AMD && CMD

    前言 JavaScript初衷:实现简单的页面交互逻辑,寥寥数语即可: 随着web2.0时代的到来,Ajax技术得到广泛应用,jQuery等前端库层出不穷,前端代码日益膨胀 问题: 这时候JavaSc ...

  10. 阶段小项目1:循环间隔1秒lcd显示红绿蓝

    #include<stdlib.h>#include<stdio.h>#include<string.h>#include<error.h>#inclu ...