1. 系统介绍

日志收集服务

golang

golnag/lua扩展

流水线作业

2. UParse系统说明

2.1系统结构

2.1 主要模块

pipeline-config

核心调度模块,跟据配置文件启动相应的插件,启动流水线

input

从数据源读取数据,包括kafka_input,TCP_input等

decoder

将数据解析成特定,有json,nginx等

filter

对数据进行聚合,计算,过滤

encoder

对数据重新编码成特定格式

output

输出数据到外部存储或通道

router

根据数据某些字段对filter和output进行路由

2.3 主要特性

2.3.1系统数据传输单元

typePipelinePack struct{

message.Message //处理后的数据,一个类似于hanshmap的多级嵌套数据结构

MsgByte //原始数据, []byte

}

系统中日志数据以PipelinePack数据来在流水线作业之间传递

2.3.2 系统初始化加载方式

启动模式

uparse -config   xxx.toml

uparse -config  config_dir

组件注册

系统初始化时,注册所有的插件到系统(input、output、filter、encoder、decoder),注册形式为 key:FactoryFunc

插件启动和调度

主goroutine根据配置文件管理类PipelineConfig启动各个插件

首先启动outout插件,然后是filter插件,然后启动router,为filter和output插件建立消息传递通道

2.3.3 插件运行模式

Input、Filter、Output都运行在自己的goroutine,保持高的并发性

各个组件之间使用channel或者文件buffer通信

插件的生命周期由PluginRunners管理

插件与goroutine的紧密耦合保持了并发的完整

组件之间的关联

input与decoder的关系是,属于inout的一个组件,每个input只接收一种格式数据源;

input与filter之间通过router进行交互,多对多的对应关系;

filter与output之间也是使用router进行交互,多对多的关系;

encode和output之间也是从属关系, encode内嵌在output中,在数据输出之前按照encoder进行序列化

2.3.4 消息路由

消息decode完成后使用router将数据传输到相应的filter插件和output插件

filter和output需要指定message matcher

方式:根据某些字段规则进行路由,规则由使用yacc语法解析,支持一下规则

1:Type == “test” && Severity == 6

2:Fields[MyBool] == TRUE

3: Type =~ /test/

message matcher运行在自己的goroutine,很快

2.3.5 SANDBOX-lua

插件可以使用lua实现

lua加载模式为golang使用cgo调用lua脚本

lua可以动态加载,方便插件升级

lua属于性能比较快的脚本语言

lua的常用方式

2.3.6 消息路由缓冲队列

router提供了两种消息队列

golang内部channel机制(内存buffer,线程安全)

使用文件作为缓冲buffer(磁盘buffer)

2.3.7 插件扩展

对所有的插件扩展开发提供了标准规范

golang插件实现特定接口,然后注册到系统

type Input interface {

Run(ir InputRunner, h PluginHelper) (err error)

Stop()

}

type Decoder interface {

Decode(pack *PipelinePack) (packs []*PipelinePack, err error)

}

type Filter interface {

Prepare(fr FilterRunner, h PluginHelper) (err error)

ProcessMessage(pack *PipelinePack) (err error)

CleanUp()

}

type Encoder interface {

Encode(pack *PipelinePack) (output []byte, err error)

}

type Output interface {

Prepare(or OutputRunner, h PluginHelper) (err error)

ProcessMessage(pack *PipelinePack) (err error)

CleanUp()

}

lua插件需要实现特定函数,然后将lua文件放到系统lua脚本文件夹下即可进行加载

lua插件开发规范

3. 系统类图

4 问题

heka 输出到mysql_HEKA-系统介绍相关推荐

  1. heka 输出到mysql_用php与mysql的电子贺卡程序

    第一步:首先作一个如下面的表单:(注:这个表单里加了php程序) 你好朋友: --卡片背景音乐-- 一千零一夜 canyon   if (strlen($g_username) > 1) { / ...

  2. 脉冲电子围栏系统介绍_网络型脉冲电子围栏系统介绍

    原标题:网络型脉冲电子围栏系统介绍 在传统周界防范的应用中,脉冲电子围栏系统主要以485总线的方式进行信号传输,采取这种方式需要布线,安装较为繁琐.为了满足越来越多的客户的需求,艾礼安自主研发设计出了 ...

  3. 镜像电流源特点_9000大型地网变频大电流接地特性测量系统介绍

    湖北中试高测电气控股有限公司为您解答:9000大型地网变频大电流接地特性测量系统介绍 ZS9000大型地网变频大电流接地特性测量系统 一.产品概述: ZS9000变频大电流多功能地网接地特性测量系统采 ...

  4. 西门子dcs系统组态手册下载_西门子PLC,PCS7系统介绍

    什么是PLC 可编程控制器,简称PLC(Programmable logic Controller),是指以计算机技术为基础的新型工业控制装置.在1987年国际电工委员会颁布的PLC标准草案中对PLC ...

  5. Heka:Go编写,来自Mozilla,高效、灵活的插件式数据挖掘工具(转)

    转自:http://www.csdn.net/article/2013-05-02/2815116-introduce-from-mozilla-heka-go 摘要:一直崇尚开源的Mozilla近日 ...

  6. 获取系统信息3——proc文件系统介绍和使用

    以下内容源于朱有鹏<物联网大讲堂>课程的学习整理,如有侵权,请告知删除. 一.proc文件系统介绍 1.操作系统级别的调试 简单程序,可以单步调试:(多线程不行,linux内核不行) 复杂 ...

  7. ovation系统服务器安装,Ovation系统介绍.ppt

    Ovation系统介绍 热控调试关于OVATION系统的一点简介;目录;Ovation系统的结构及硬件;典型的OVATION系统结构;Primary;网线插拔后需重启控制器,否则显示橙色,failmo ...

  8. mooon编译系统介绍(可复用Makefile)

    mooon编译系统介绍(可复用Makefile).pdf(ChinaUnix下载) CSDN下载:http://download.csdn.net/detail/aquester/5626929 mo ...

  9. 【高通SDM660平台 Android 10.0】(13) --- Camera ISP 之 数字成像系统介绍

    [高通SDM660平台 Android 10.0] --- Camera ISP 之 数字成像系统介绍 一.成像系统的组成 1.1 视角 1.2 曝光 1.3 感光度 ISO 1.4 光源 1.5 光 ...

  10. 操作系统介绍(按发展顺序)人工操作方式、单道批处理系统、多道批处理系统、分时系统、实时系统、微机操作系统

    操作系统介绍(按发展顺序) 1.未配置操作系统的计算机系统 2.单道批处理系统 3.多道批处理系统 4.分时系统 5.实时系统 6.微机操作系统 1.未配置操作系统的计算机系统 (1)人工操作方式   ...

最新文章

  1. h5滚动时侧滑出现_H5触摸事件中如何判断用户滑动方向
  2. 【错误记录】AS 编译报错 ( Android Support plugin 版本太高 | 升级 Android Studio 到最新版本 )
  3. 实时记录运动轨迹插件_智慧工地:“全能安全帽”自带WiFi 可实时拍摄通话
  4. numpy矩阵计算GPU加速库:cupy
  5. DDPG-强化学习算法
  6. Statues CodeForces - 129C(bfs)
  7. Fiddler笔记一移动端连接
  8. HDOJ1102 Constructing Roads【最小生成树】-----武科大ACM暑期集训队选拔赛1题
  9. ethtool查看网卡以及修改网卡配置
  10. python姓名转拼音_实用小技巧,Python一秒将全部中文姓名转为拼音!
  11. 在imitate中遇到的问题
  12. linux下redis设置密码登录(简单易懂)
  13. 数学建模算法与程序(司守奎):第一章 线性规划
  14. 错误 CS8107 C# 7.0 中不支持功能“xxxxxx”。请使用 7.1 或更高的语言版本。
  15. db2数据库(db2数据库安装)
  16. katex常用公式符号一览表
  17. Linux 禁用笔记本触摸板
  18. 什么是思维导图  绘制思维导图用什么工具
  19. mex matlab混编,mex混编后运行总是导致matlab崩溃是什么情况?
  20. Frida用法详解【附用例】

热门文章

  1. 车载导航蓝牙知识介绍
  2. html里面输出大于号和小于号
  3. dumprep 0 -u 到底是什么东西?
  4. 硬盘分区大学计算机,电脑硬盘容量要怎么选?又要怎么硬盘合理分区?今天我再说一次!...
  5. oracle 裸设备使用方法,Linux上如何使用裸设备
  6. linux系统it固定资产管理系统包_固定资产管理系统功能介绍
  7. “扣哒杯” AI世青赛全国决赛落幕 集体奖和一等奖附加赛名单揭晓
  8. linux图片裁剪软件安卓版,PS图片裁剪软件下载-PS图片裁剪助手appv1.0.1-Linux公社...
  9. 《普罗米修斯/异形前传》[BD-RMVB.720p.中英双字][2012年科幻]
  10. Excel 2010 编辑公式