fluent-plugin-datahub 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|