fluent-plugin-datahub 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +104 -10
- data/VERSION +1 -1
- data/lib/fluent/plugin/datahub/datahub-http-client-test.rb +3 -3
- data/lib/fluent/plugin/out_datahub.rb +3 -3
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 08bd89385bb962843dda18bc6b1bedb50b44ad4d
|
4
|
+
data.tar.gz: 53591931a750c4c0641d17676ba5ead6a4e96a36
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3cdc9cf69f25d5d8f49b04ad1457c522456e071a27524d2cfee40a8bcbe3d26e41a3ba27d67ccccfb1c30d6840a65b8382762314ccd909ed815de380e7b51285
|
7
|
+
data.tar.gz: 6542e96bcd6a409d0100f1ec6c6686a7e719be4e52d0a8c9aed3d56a7d9e0b2a7d91836388a3373a443b03fbd92fbed68b04429092f5936a2fd67976213b8c42
|
data/README.md
CHANGED
@@ -1,10 +1,61 @@
|
|
1
1
|
# fluent-plugin-datahub
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
2
|
+
|
3
|
+
## DataHub基本介绍
|
4
|
+
|
5
|
+
DataHub服务是阿里云提供的流式数据处理(Streaming Data)服务,它提供流式数据的发布 (Publish)和订阅 (Subscribe)的功能,让您可以轻松构建基于流式数据的分析和应用。DataHub服务可以对各种移动设备,应用软件,网站服务,传感器等产生的大量流式数据进行持续不断的采集,存储和处理。用户可以编写应用程序或者使用流计算引擎来处理写入到DataHub的流式数据比如实时web访问日志、应用日志、各种事件等,并产出各种实时的数据处理结果比如实时图表、报警信息、实时统计等。
|
6
|
+
|
7
|
+
DataHub服务基于阿里云自研的飞天平台,具有高可用,低延迟,高可扩展,高吞吐的特点。DataHub与阿里云流计算引擎StreamCompute无缝连接,用户可以轻松使用SQL进行流数据分析。
|
8
|
+
|
9
|
+
DataHub服务也提供流式数据归档的功能,支持流式数据归档进入MaxCompute(原ODPS)。
|
10
|
+
|
11
|
+
## 环境要求
|
12
|
+
|
13
|
+
使用此插件,需要具备如下环境:
|
14
|
+
|
15
|
+
1. Ruby 2.1.0 或更新
|
16
|
+
2. Gem 2.4.5 或更新
|
17
|
+
3. Fluentd-0.12 或更新 (*[Home Page](http://www.fluentd.org/)*)
|
18
|
+
4. Ruby-devel
|
19
|
+
|
20
|
+
## 安装部署
|
21
|
+
|
22
|
+
安装部署Fluentd可以选择以下两种方式之一。
|
23
|
+
1. 一键安装包适用于第一次安装Ruby&Fluentd环境的用户或局域网用户,一键安装包包含了所需的Ruby环境以及Fluentd。目前一键安装包仅支持Linux环境。
|
24
|
+
2. 通过网络安装适用于对Ruby有了解的用户,需要提前确认Ruby版本,若低于2.1.0则需要升级或安装更高级的Ruby环境,然后通过RubyGem安装Fluentd。
|
25
|
+
|
26
|
+
注:
|
27
|
+
* RubyGem源建议更改为https://ruby.taobao.org/
|
28
|
+
* 局域网环境安装可以通过本地安装Gem文件
|
29
|
+
```
|
30
|
+
gem install --local fluent-plugin-datahub-0.0.1.gem
|
31
|
+
```
|
32
|
+
|
33
|
+
### 安装方式一:一键安装包安装
|
34
|
+
1. 下载解压 fluentd-with-datahub-0.12.23.tar.gz
|
35
|
+
2. 可以修改install.sh中$DIR为你想安装ruby的路径,默认会安装在当前路径下面
|
36
|
+
3. 执行如下命令,提示“Success”表示安装成功
|
37
|
+
```
|
38
|
+
bash install.sh
|
39
|
+
```
|
40
|
+
4. fluentd程序会被安装在当前目录的bin目录下面
|
41
|
+
|
42
|
+
### 安装方式二:通过网络安装
|
43
|
+
1. Ruby安装(已经存在Ruby 2.1.0以上环境可忽略此步骤):
|
44
|
+
```
|
45
|
+
wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.0.tar.gz
|
46
|
+
tar xzvf ruby-2.3.0.tar.gz
|
47
|
+
cd ruby-2.3.0
|
48
|
+
./configure --prefix=DIR
|
49
|
+
make
|
50
|
+
make install
|
51
|
+
```
|
52
|
+
2 Fluentd以及插件安装
|
53
|
+
```
|
54
|
+
$ gem install fluent-plugin-datahub
|
55
|
+
```
|
56
|
+
|
57
|
+
## 插件使用示例
|
58
|
+
### 示例一 上传csv文件中的数据
|
8
59
|
|
9
60
|
配置
|
10
61
|
-------
|
@@ -16,7 +67,7 @@ gem install fluent-plugin-datahub
|
|
16
67
|
format csv
|
17
68
|
keys id,name,gender,salary,my_time
|
18
69
|
</source>
|
19
|
-
|
70
|
+
```
|
20
71
|
```
|
21
72
|
<match test1>
|
22
73
|
@type datahub
|
@@ -32,7 +83,50 @@ gem install fluent-plugin-datahub
|
|
32
83
|
dirty_data_file ${DIR}/dirty.data
|
33
84
|
retry_times 3
|
34
85
|
</match>
|
35
|
-
|
36
86
|
```
|
37
|
-
|
38
|
-
|
87
|
+
|
88
|
+
### 示例二 上传日志文件中的数据
|
89
|
+
配置
|
90
|
+
------
|
91
|
+
```
|
92
|
+
source>
|
93
|
+
@type tail
|
94
|
+
path ${DIR}/log_sample.log
|
95
|
+
tag test
|
96
|
+
format /(?<request_time>\d\d:\d\d:\d\d.\d+)\s+\[(?<thread_id>[\w\-]+)\]\s+(?<log_level>\w+)\s+(?<class>\w+)\s+-\s+\[(?<request_id>\w+)\]\s+(?<detail>.+)/
|
97
|
+
</source>
|
98
|
+
```
|
99
|
+
```
|
100
|
+
<match test>
|
101
|
+
@type datahub
|
102
|
+
access_id yourAccessId
|
103
|
+
access_key yourAccessKey
|
104
|
+
endpoint yourEndpoint
|
105
|
+
project_name test_project
|
106
|
+
topic_name datahub_fluentd_out_1
|
107
|
+
column_names ["thread_id", "log_level", "class"]
|
108
|
+
</match>
|
109
|
+
```
|
110
|
+
|
111
|
+
1、source标签中的keys为源数据,会根据key对应fields中字段\<br>
|
112
|
+
2、match标签中的column_names为要写入datahub的字段
|
113
|
+
3、具体数据样例可参见gem包中的sample文件
|
114
|
+
|
115
|
+
## 参数说明
|
116
|
+
|
117
|
+
access_id :阿里云access_id.
|
118
|
+
access_key :阿里云access key.
|
119
|
+
endpoint :DataHub Endpoint
|
120
|
+
project_name :datahub project name
|
121
|
+
topic_name :datahub topic name
|
122
|
+
retry_times :重试次数, 默认1
|
123
|
+
retry_interval :重试周期,下一次重试的间隔,单位为秒, 默认3
|
124
|
+
column_names :提交的列名,用户可以配置topic的列,采集部分列或者全部列,默认为空数组,表示按照topic的顺序及全字段提交,另外:列的配置不用保序,但是要求该字段在topic的schema中存在
|
125
|
+
source_keys :指定源头采集的keys, record 按照这些keys 获取数据, 写入datahub, 默认空数组, 此时record使用column_names 获取数据, 写入datahub
|
126
|
+
dirty_data_continue :当出现脏数据时,是否继续写入,当开启该开关,必须指定@dirty_data_file文件
|
127
|
+
dirty_data_file :脏数据文件名称,当数据文件名称,在@dirty_data_continue开启的情况下,需要指定该值,特别注意:脏数据文件将被分割成两个部分.part1和.part2,part1作为更早的脏数据,part2作为更新的数据
|
128
|
+
shard_id :写入指定的 shard_id,默认轮询发送
|
129
|
+
shard_keys :按照指定字段的值计算hash,依据于该hash值落某个shard
|
130
|
+
retry_limit :fluentd自带的 retry次数, 由于可能导致数据重写,该参数默认设置为0
|
131
|
+
put_data_batch_size :多少条数据 写一次datahub, 默认100条,请不要超出1000条。
|
132
|
+
data_encoding :默认使用源数据标示的encode方式,根据string.encoding获取,如果需要指定源数据编码方式,请设置该值,支持的类型:"US-ASCII", "ASCII-8BIT", "UTF-8",
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
@@ -6,7 +6,7 @@ require_relative "datahub-record-entity"
|
|
6
6
|
|
7
7
|
class DatahubHttpClientTest < Test::Unit::TestCase
|
8
8
|
# def setup
|
9
|
-
# @client = DatahubHttpClient.new("
|
9
|
+
# @client = DatahubHttpClient.new("", "", "")
|
10
10
|
|
11
11
|
# @project_name = "ruby_sdk_test_project"
|
12
12
|
# begin
|
@@ -110,7 +110,7 @@ class DatahubHttpClientTest < Test::Unit::TestCase
|
|
110
110
|
# end
|
111
111
|
#
|
112
112
|
# def test_write_and_read
|
113
|
-
# @client = DatahubClient.new("
|
113
|
+
# @client = DatahubClient.new("", "", "")
|
114
114
|
# @datahub_project = @client.get_project("test_project")
|
115
115
|
# # @datahub_topic = @datahub_project.get_topic("fluentd_out_6")
|
116
116
|
# # abc = @datahub_topic.record_schema
|
@@ -312,7 +312,7 @@ class DatahubHttpClientTest < Test::Unit::TestCase
|
|
312
312
|
# end
|
313
313
|
|
314
314
|
def test
|
315
|
-
@client = DatahubHttpClient.new("
|
315
|
+
@client = DatahubHttpClient.new("", "", "")
|
316
316
|
|
317
317
|
record_schema = RecordSchema.new
|
318
318
|
record_schema.setEncoding("UTF-8")
|
@@ -43,13 +43,13 @@ module Fluent
|
|
43
43
|
config_param :dirty_data_file, :string, :default => ""
|
44
44
|
|
45
45
|
# 脏数据文件的最大大小,该值保证脏数据文件最大大小不超过这个值,目前该值仅是一个参考值
|
46
|
-
config_param :dirty_data_file_max_size, :integer, :
|
46
|
+
config_param :dirty_data_file_max_size, :integer, :default => 50024000
|
47
47
|
|
48
48
|
# 写入指定的 shard_id
|
49
|
-
config_param :shard_id, :string, :
|
49
|
+
config_param :shard_id, :string, :default => ""
|
50
50
|
|
51
51
|
# 按照指定字段的值计算hash,依据于该hash值落某个shard
|
52
|
-
config_param :shard_keys, :array, :
|
52
|
+
config_param :shard_keys, :array, :default => []
|
53
53
|
|
54
54
|
# fluentd自带的 retry次数, 由于可能导致数据重写,该参数默认设置为0
|
55
55
|
config_param :retry_limit, :integer, :default => 0
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-datahub
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aliyun
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-03-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|
@@ -90,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
90
90
|
version: '0'
|
91
91
|
requirements: []
|
92
92
|
rubyforge_project:
|
93
|
-
rubygems_version: 2.
|
93
|
+
rubygems_version: 2.6.10
|
94
94
|
signing_key:
|
95
95
|
specification_version: 4
|
96
96
|
summary: Aliyun Datahub output plugin for Fluentd event collector
|