heka 输出到mysql_HEKA-系统介绍
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-系统介绍相关推荐
- heka 输出到mysql_用php与mysql的电子贺卡程序
第一步:首先作一个如下面的表单:(注:这个表单里加了php程序) 你好朋友: --卡片背景音乐-- 一千零一夜 canyon if (strlen($g_username) > 1) { / ...
- 脉冲电子围栏系统介绍_网络型脉冲电子围栏系统介绍
原标题:网络型脉冲电子围栏系统介绍 在传统周界防范的应用中,脉冲电子围栏系统主要以485总线的方式进行信号传输,采取这种方式需要布线,安装较为繁琐.为了满足越来越多的客户的需求,艾礼安自主研发设计出了 ...
- 镜像电流源特点_9000大型地网变频大电流接地特性测量系统介绍
湖北中试高测电气控股有限公司为您解答:9000大型地网变频大电流接地特性测量系统介绍 ZS9000大型地网变频大电流接地特性测量系统 一.产品概述: ZS9000变频大电流多功能地网接地特性测量系统采 ...
- 西门子dcs系统组态手册下载_西门子PLC,PCS7系统介绍
什么是PLC 可编程控制器,简称PLC(Programmable logic Controller),是指以计算机技术为基础的新型工业控制装置.在1987年国际电工委员会颁布的PLC标准草案中对PLC ...
- Heka:Go编写,来自Mozilla,高效、灵活的插件式数据挖掘工具(转)
转自:http://www.csdn.net/article/2013-05-02/2815116-introduce-from-mozilla-heka-go 摘要:一直崇尚开源的Mozilla近日 ...
- 获取系统信息3——proc文件系统介绍和使用
以下内容源于朱有鹏<物联网大讲堂>课程的学习整理,如有侵权,请告知删除. 一.proc文件系统介绍 1.操作系统级别的调试 简单程序,可以单步调试:(多线程不行,linux内核不行) 复杂 ...
- ovation系统服务器安装,Ovation系统介绍.ppt
Ovation系统介绍 热控调试关于OVATION系统的一点简介;目录;Ovation系统的结构及硬件;典型的OVATION系统结构;Primary;网线插拔后需重启控制器,否则显示橙色,failmo ...
- mooon编译系统介绍(可复用Makefile)
mooon编译系统介绍(可复用Makefile).pdf(ChinaUnix下载) CSDN下载:http://download.csdn.net/detail/aquester/5626929 mo ...
- 【高通SDM660平台 Android 10.0】(13) --- Camera ISP 之 数字成像系统介绍
[高通SDM660平台 Android 10.0] --- Camera ISP 之 数字成像系统介绍 一.成像系统的组成 1.1 视角 1.2 曝光 1.3 感光度 ISO 1.4 光源 1.5 光 ...
- 操作系统介绍(按发展顺序)人工操作方式、单道批处理系统、多道批处理系统、分时系统、实时系统、微机操作系统
操作系统介绍(按发展顺序) 1.未配置操作系统的计算机系统 2.单道批处理系统 3.多道批处理系统 4.分时系统 5.实时系统 6.微机操作系统 1.未配置操作系统的计算机系统 (1)人工操作方式 ...
最新文章
- h5滚动时侧滑出现_H5触摸事件中如何判断用户滑动方向
- 【错误记录】AS 编译报错 ( Android Support plugin 版本太高 | 升级 Android Studio 到最新版本 )
- 实时记录运动轨迹插件_智慧工地:“全能安全帽”自带WiFi 可实时拍摄通话
- numpy矩阵计算GPU加速库:cupy
- DDPG-强化学习算法
- Statues CodeForces - 129C(bfs)
- Fiddler笔记一移动端连接
- HDOJ1102 Constructing Roads【最小生成树】-----武科大ACM暑期集训队选拔赛1题
- ethtool查看网卡以及修改网卡配置
- python姓名转拼音_实用小技巧,Python一秒将全部中文姓名转为拼音!
- 在imitate中遇到的问题
- linux下redis设置密码登录(简单易懂)
- 数学建模算法与程序(司守奎):第一章 线性规划
- 错误	 CS8107 C# 7.0 中不支持功能“xxxxxx”。请使用 7.1 或更高的语言版本。
- db2数据库(db2数据库安装)
- katex常用公式符号一览表
- Linux 禁用笔记本触摸板
- 什么是思维导图 绘制思维导图用什么工具
- mex matlab混编,mex混编后运行总是导致matlab崩溃是什么情况?
- Frida用法详解【附用例】
热门文章
- 车载导航蓝牙知识介绍
- html里面输出大于号和小于号
- dumprep 0 -u 到底是什么东西?
- 硬盘分区大学计算机,电脑硬盘容量要怎么选?又要怎么硬盘合理分区?今天我再说一次!...
- oracle 裸设备使用方法,Linux上如何使用裸设备
- linux系统it固定资产管理系统包_固定资产管理系统功能介绍
- “扣哒杯” AI世青赛全国决赛落幕 集体奖和一等奖附加赛名单揭晓
- linux图片裁剪软件安卓版,PS图片裁剪软件下载-PS图片裁剪助手appv1.0.1-Linux公社...
- 《普罗米修斯/异形前传》[BD-RMVB.720p.中英双字][2012年科幻]
- Excel 2010 编辑公式