fluent-plugin-ec2-metadata 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +6 -1
- data/Gemfile +4 -1
- data/README.md +5 -0
- data/fluent-plugin-ec2-metadata.gemspec +4 -2
- data/lib/fluent/plugin/out_ec2_metadata.rb +22 -17
- data/test/cassettes/ec2.yml +300 -0
- data/test/helper.rb +12 -1
- data/test/plugin/test_out_ec2_metadata.rb +39 -30
- metadata +33 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6a0cd615badf1c5b2a61d1911c8f51cbb902fe2c
|
4
|
+
data.tar.gz: 57b1f0dc6af6988d3be54a8880e2d3f162615f7c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61e1f818cc83363166125539aca48585e6f0b34a454f423c8b559c95730f36b8adf8babf15360eb5983d21895b06631de3eef04feed6a09d1c97a74e4238fa38
|
7
|
+
data.tar.gz: 6d4418525ae1c495dee94d07dda681166c65921287729eda4d9f752e8450d540aaa1945fcd3388735b7998a8b7c85b156fe6173e428eb99ae2557d48a6638da6
|
data/.travis.yml
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
# fluent-plugin-ec2-metadata
|
2
2
|
|
3
|
+
[![Gem Version](https://badge.fury.io/rb/fluent-plugin-ec2-metadata.svg)](http://badge.fury.io/rb/fluent-plugin-ec2-metadata)
|
4
|
+
[![Build Status](https://travis-ci.org/takus/fluent-plugin-ec2-metadata.svg?branch=master)](https://travis-ci.org/takus/fluent-plugin-ec2-metadata)
|
5
|
+
[![Test Coverage](https://codeclimate.com/github/takus/fluent-plugin-ec2-metadata/badges/coverage.svg)](https://codeclimate.com/github/takus/fluent-plugin-ec2-metadata/coverage)
|
6
|
+
[![Code Climate](https://codeclimate.com/github/takus/fluent-plugin-ec2-metadata/badges/gpa.svg)](https://codeclimate.com/github/takus/fluent-plugin-ec2-metadata)
|
7
|
+
|
3
8
|
[Fluentd](http://fluentd.org) plugin to add ec2 metadata fields to a event record
|
4
9
|
|
5
10
|
## Installation
|
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |spec|
|
6
6
|
spec.name = "fluent-plugin-ec2-metadata"
|
7
|
-
spec.version = "0.0.
|
7
|
+
spec.version = "0.0.9"
|
8
8
|
spec.authors = ["SAKAMOTO Takumi"]
|
9
9
|
spec.email = ["takumi.saka@gmail.com"]
|
10
10
|
spec.description = %q{Fluentd output plugin to add ec2 metadata fields to a event record}
|
@@ -18,7 +18,9 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.require_paths = ["lib"]
|
19
19
|
|
20
20
|
spec.add_development_dependency "rake"
|
21
|
+
spec.add_development_dependency "vcr"
|
22
|
+
spec.add_development_dependency "webmock"
|
21
23
|
spec.add_development_dependency "test-unit", ">= 3.1.0"
|
22
24
|
spec.add_runtime_dependency "fluentd"
|
23
|
-
spec.add_runtime_dependency "aws-sdk
|
25
|
+
spec.add_runtime_dependency "aws-sdk"
|
24
26
|
end
|
@@ -12,9 +12,8 @@ module Fluent
|
|
12
12
|
require 'net/http'
|
13
13
|
end
|
14
14
|
|
15
|
-
config_param :output_tag,
|
16
|
-
|
17
|
-
config_param :aws_key_id, :string, :default => ENV['AWS_ACCESS_KEY_ID'], :secret => true
|
15
|
+
config_param :output_tag, :string
|
16
|
+
config_param :aws_key_id, :string, :default => ENV['AWS_ACCESS_KEY_ID'], :secret => true
|
18
17
|
config_param :aws_sec_key, :string, :default => ENV['AWS_SECRET_ACCESS_KEY'], :secret => true
|
19
18
|
|
20
19
|
def configure(conf)
|
@@ -33,11 +32,11 @@ module Fluent
|
|
33
32
|
|
34
33
|
# get ec2 metadata
|
35
34
|
@ec2_metadata = {}
|
36
|
-
@ec2_metadata['instance_id']
|
37
|
-
@ec2_metadata['instance_type']
|
35
|
+
@ec2_metadata['instance_id'] = get_metadata('instance-id')
|
36
|
+
@ec2_metadata['instance_type'] = get_metadata('instance-type')
|
38
37
|
@ec2_metadata['availability_zone'] = get_metadata('placement/availability-zone')
|
39
|
-
@ec2_metadata['region']
|
40
|
-
@ec2_metadata['mac']
|
38
|
+
@ec2_metadata['region'] = @ec2_metadata['availability_zone'].chop
|
39
|
+
@ec2_metadata['mac'] = get_metadata('mac')
|
41
40
|
begin
|
42
41
|
@ec2_metadata['vpc_id'] = get_metadata("network/interfaces/macs/#{@ec2_metadata['mac']}/vpc-id")
|
43
42
|
rescue
|
@@ -53,20 +52,26 @@ module Fluent
|
|
53
52
|
|
54
53
|
# get tags
|
55
54
|
if @map.values.any? { |v| v.match(/^\${tagset_/) } || @output_tag =~ /\${tagset_/
|
56
|
-
require 'aws-sdk
|
55
|
+
require 'aws-sdk'
|
57
56
|
|
58
57
|
if @aws_key_id and @aws_sec_key then
|
59
|
-
|
58
|
+
ec2 = Aws::EC2::Client.new(
|
59
|
+
region: @ec2_metadata['region'],
|
60
|
+
access_key_id: @aws_key_id,
|
61
|
+
secret_access_key: @aws_sec_key,
|
62
|
+
)
|
60
63
|
else
|
61
|
-
|
64
|
+
ec2 = Aws::EC2::Client.new(
|
65
|
+
region: @ec2_metadata['region'],
|
66
|
+
)
|
62
67
|
end
|
63
68
|
|
64
|
-
response =
|
65
|
-
instance = response[
|
69
|
+
response = ec2.describe_instances({ :instance_ids => [@ec2_metadata['instance_id']] })
|
70
|
+
instance = response.reservations[0].instances[0]
|
66
71
|
raise Fluent::ConfigError, "ec2-metadata: failed to get instance data #{response.pretty_inspect}" if instance.nil?
|
67
72
|
|
68
|
-
instance
|
69
|
-
|
73
|
+
instance.tags.each { |tag|
|
74
|
+
@ec2_metadata["tagset_#{tag.key.downcase}"] = tag.value
|
70
75
|
}
|
71
76
|
end
|
72
77
|
end
|
@@ -85,9 +90,9 @@ module Fluent
|
|
85
90
|
private
|
86
91
|
|
87
92
|
def get_metadata(f)
|
88
|
-
|
89
|
-
|
90
|
-
|
93
|
+
res = Net::HTTP.get_response("169.254.169.254", "/latest/meta-data/#{f}")
|
94
|
+
raise Fluent::ConfigError, "ec2-metadata: failed to get #{f}" unless res.is_a?(Net::HTTPSuccess)
|
95
|
+
res.body
|
91
96
|
end
|
92
97
|
|
93
98
|
def modify(output_tag, record, tag, tag_parts)
|
@@ -0,0 +1,300 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://169.254.169.254/latest/meta-data/instance-id
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Content-Type:
|
22
|
+
- text/plain
|
23
|
+
Accept-Ranges:
|
24
|
+
- bytes
|
25
|
+
Etag:
|
26
|
+
- '"1971254081"'
|
27
|
+
Last-Modified:
|
28
|
+
- Thu, 02 Jul 2015 12:49:17 GMT
|
29
|
+
Content-Length:
|
30
|
+
- '10'
|
31
|
+
Connection:
|
32
|
+
- close
|
33
|
+
Date:
|
34
|
+
- Sun, 13 Dec 2015 06:37:00 GMT
|
35
|
+
Server:
|
36
|
+
- EC2ws
|
37
|
+
body:
|
38
|
+
encoding: UTF-8
|
39
|
+
string: i-0c0c0000
|
40
|
+
http_version:
|
41
|
+
recorded_at: Sun, 13 Dec 2015 06:37:00 GMT
|
42
|
+
- request:
|
43
|
+
method: get
|
44
|
+
uri: http://169.254.169.254/latest/meta-data/instance-type
|
45
|
+
body:
|
46
|
+
encoding: US-ASCII
|
47
|
+
string: ''
|
48
|
+
headers:
|
49
|
+
Accept-Encoding:
|
50
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
51
|
+
Accept:
|
52
|
+
- "*/*"
|
53
|
+
User-Agent:
|
54
|
+
- Ruby
|
55
|
+
response:
|
56
|
+
status:
|
57
|
+
code: 200
|
58
|
+
message: OK
|
59
|
+
headers:
|
60
|
+
Content-Type:
|
61
|
+
- text/plain
|
62
|
+
Accept-Ranges:
|
63
|
+
- bytes
|
64
|
+
Etag:
|
65
|
+
- '"765393446"'
|
66
|
+
Last-Modified:
|
67
|
+
- Thu, 02 Jul 2015 12:49:17 GMT
|
68
|
+
Content-Length:
|
69
|
+
- '8'
|
70
|
+
Connection:
|
71
|
+
- close
|
72
|
+
Date:
|
73
|
+
- Sun, 13 Dec 2015 06:37:00 GMT
|
74
|
+
Server:
|
75
|
+
- EC2ws
|
76
|
+
body:
|
77
|
+
encoding: UTF-8
|
78
|
+
string: m3.large
|
79
|
+
http_version:
|
80
|
+
recorded_at: Sun, 13 Dec 2015 06:37:00 GMT
|
81
|
+
- request:
|
82
|
+
method: get
|
83
|
+
uri: http://169.254.169.254/latest/meta-data/placement/availability-zone
|
84
|
+
body:
|
85
|
+
encoding: US-ASCII
|
86
|
+
string: ''
|
87
|
+
headers:
|
88
|
+
Accept-Encoding:
|
89
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
90
|
+
Accept:
|
91
|
+
- "*/*"
|
92
|
+
User-Agent:
|
93
|
+
- Ruby
|
94
|
+
response:
|
95
|
+
status:
|
96
|
+
code: 200
|
97
|
+
message: OK
|
98
|
+
headers:
|
99
|
+
Content-Type:
|
100
|
+
- text/plain
|
101
|
+
Accept-Ranges:
|
102
|
+
- bytes
|
103
|
+
Etag:
|
104
|
+
- '"1870317889"'
|
105
|
+
Last-Modified:
|
106
|
+
- Thu, 02 Jul 2015 12:49:17 GMT
|
107
|
+
Content-Length:
|
108
|
+
- '15'
|
109
|
+
Connection:
|
110
|
+
- close
|
111
|
+
Date:
|
112
|
+
- Sun, 13 Dec 2015 06:37:00 GMT
|
113
|
+
Server:
|
114
|
+
- EC2ws
|
115
|
+
body:
|
116
|
+
encoding: UTF-8
|
117
|
+
string: ap-northeast-1b
|
118
|
+
http_version:
|
119
|
+
recorded_at: Sun, 13 Dec 2015 06:37:00 GMT
|
120
|
+
- request:
|
121
|
+
method: get
|
122
|
+
uri: http://169.254.169.254/latest/meta-data/mac
|
123
|
+
body:
|
124
|
+
encoding: US-ASCII
|
125
|
+
string: ''
|
126
|
+
headers:
|
127
|
+
Accept-Encoding:
|
128
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
129
|
+
Accept:
|
130
|
+
- "*/*"
|
131
|
+
User-Agent:
|
132
|
+
- Ruby
|
133
|
+
response:
|
134
|
+
status:
|
135
|
+
code: 200
|
136
|
+
message: OK
|
137
|
+
headers:
|
138
|
+
Content-Type:
|
139
|
+
- text/plain
|
140
|
+
Accept-Ranges:
|
141
|
+
- bytes
|
142
|
+
Etag:
|
143
|
+
- '"1996419393"'
|
144
|
+
Last-Modified:
|
145
|
+
- Thu, 02 Jul 2015 12:49:17 GMT
|
146
|
+
Content-Length:
|
147
|
+
- '17'
|
148
|
+
Connection:
|
149
|
+
- close
|
150
|
+
Date:
|
151
|
+
- Sun, 13 Dec 2015 06:37:00 GMT
|
152
|
+
Server:
|
153
|
+
- EC2ws
|
154
|
+
body:
|
155
|
+
encoding: UTF-8
|
156
|
+
string: 00:c0:00:0c:cc:00
|
157
|
+
http_version:
|
158
|
+
recorded_at: Sun, 13 Dec 2015 06:37:00 GMT
|
159
|
+
- request:
|
160
|
+
method: get
|
161
|
+
uri: http://169.254.169.254/latest/meta-data/network/interfaces/macs/00:c0:00:0c:cc:00/vpc-id
|
162
|
+
body:
|
163
|
+
encoding: US-ASCII
|
164
|
+
string: ''
|
165
|
+
headers:
|
166
|
+
Accept-Encoding:
|
167
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
168
|
+
Accept:
|
169
|
+
- "*/*"
|
170
|
+
User-Agent:
|
171
|
+
- Ruby
|
172
|
+
response:
|
173
|
+
status:
|
174
|
+
code: 200
|
175
|
+
message: OK
|
176
|
+
headers:
|
177
|
+
Content-Type:
|
178
|
+
- text/plain
|
179
|
+
Accept-Ranges:
|
180
|
+
- bytes
|
181
|
+
Etag:
|
182
|
+
- '"1822409025"'
|
183
|
+
Last-Modified:
|
184
|
+
- Thu, 02 Jul 2015 12:49:17 GMT
|
185
|
+
Content-Length:
|
186
|
+
- '12'
|
187
|
+
Connection:
|
188
|
+
- close
|
189
|
+
Date:
|
190
|
+
- Sun, 13 Dec 2015 06:37:00 GMT
|
191
|
+
Server:
|
192
|
+
- EC2ws
|
193
|
+
body:
|
194
|
+
encoding: UTF-8
|
195
|
+
string: vpc-00000000
|
196
|
+
http_version:
|
197
|
+
recorded_at: Sun, 13 Dec 2015 06:37:00 GMT
|
198
|
+
- request:
|
199
|
+
method: get
|
200
|
+
uri: http://169.254.169.254/latest/meta-data/network/interfaces/macs/00:c0:00:0c:cc:00/subnet-id
|
201
|
+
body:
|
202
|
+
encoding: US-ASCII
|
203
|
+
string: ''
|
204
|
+
headers:
|
205
|
+
Accept-Encoding:
|
206
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
207
|
+
Accept:
|
208
|
+
- "*/*"
|
209
|
+
User-Agent:
|
210
|
+
- Ruby
|
211
|
+
response:
|
212
|
+
status:
|
213
|
+
code: 200
|
214
|
+
message: OK
|
215
|
+
headers:
|
216
|
+
Content-Type:
|
217
|
+
- text/plain
|
218
|
+
Accept-Ranges:
|
219
|
+
- bytes
|
220
|
+
Etag:
|
221
|
+
- '"1870330753"'
|
222
|
+
Last-Modified:
|
223
|
+
- Thu, 02 Jul 2015 12:49:17 GMT
|
224
|
+
Content-Length:
|
225
|
+
- '15'
|
226
|
+
Connection:
|
227
|
+
- close
|
228
|
+
Date:
|
229
|
+
- Sun, 13 Dec 2015 06:37:00 GMT
|
230
|
+
Server:
|
231
|
+
- EC2ws
|
232
|
+
body:
|
233
|
+
encoding: UTF-8
|
234
|
+
string: subnet-00000000
|
235
|
+
http_version:
|
236
|
+
recorded_at: Sun, 13 Dec 2015 06:37:00 GMT
|
237
|
+
- request:
|
238
|
+
method: post
|
239
|
+
uri: https://ec2.ap-northeast-1.amazonaws.com/
|
240
|
+
body:
|
241
|
+
encoding: UTF-8
|
242
|
+
string: Action=DescribeInstances&InstanceId.1=i-0c0c0000&Version=2015-10-01
|
243
|
+
headers:
|
244
|
+
Content-Type:
|
245
|
+
- application/x-www-form-urlencoded; charset=utf-8
|
246
|
+
Accept-Encoding:
|
247
|
+
- ''
|
248
|
+
User-Agent:
|
249
|
+
- aws-sdk-ruby2/2.2.5 ruby/2.1.4 x86_64-linux
|
250
|
+
X-Amz-Date:
|
251
|
+
- 20151213T100607Z
|
252
|
+
Host:
|
253
|
+
- ec2.ap-northeast-1.amazonaws.com
|
254
|
+
Content-Length:
|
255
|
+
- '67'
|
256
|
+
Accept:
|
257
|
+
- "*/*"
|
258
|
+
response:
|
259
|
+
status:
|
260
|
+
code: 200
|
261
|
+
message: OK
|
262
|
+
headers:
|
263
|
+
Content-Type:
|
264
|
+
- text/xml;charset=UTF-8
|
265
|
+
Transfer-Encoding:
|
266
|
+
- chunked
|
267
|
+
Vary:
|
268
|
+
- Accept-Encoding
|
269
|
+
Date:
|
270
|
+
- Sun, 13 Dec 2015 10:06:07 GMT
|
271
|
+
Server:
|
272
|
+
- AmazonEC2
|
273
|
+
body:
|
274
|
+
encoding: UTF-8
|
275
|
+
string: |-
|
276
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
277
|
+
<DescribeInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2015-10-01/">
|
278
|
+
<requestId>00f71347-3b87-4f5b-a60f-8c46d76ea808</requestId>
|
279
|
+
<reservationSet>
|
280
|
+
<item>
|
281
|
+
<reservationId>r-44d8965d</reservationId>
|
282
|
+
<ownerId>000000000000</ownerId>
|
283
|
+
<groupSet/>
|
284
|
+
<instancesSet>
|
285
|
+
<item>
|
286
|
+
<instanceId>i-0c0c0000</instanceId>
|
287
|
+
<tagSet>
|
288
|
+
<item>
|
289
|
+
<key>Name</key>
|
290
|
+
<value>instance-name</value>
|
291
|
+
</item>
|
292
|
+
</tagSet>
|
293
|
+
</item>
|
294
|
+
</instancesSet>
|
295
|
+
</item>
|
296
|
+
</reservationSet>
|
297
|
+
</DescribeInstancesResponse>
|
298
|
+
http_version:
|
299
|
+
recorded_at: Sun, 13 Dec 2015 10:06:07 GMT
|
300
|
+
recorded_with: VCR 3.0.0
|
data/test/helper.rb
CHANGED
@@ -1,3 +1,6 @@
|
|
1
|
+
require "codeclimate-test-reporter"
|
2
|
+
CodeClimate::TestReporter.start
|
3
|
+
|
1
4
|
require 'rubygems'
|
2
5
|
require 'bundler'
|
3
6
|
begin
|
@@ -7,10 +10,11 @@ rescue Bundler::BundlerError => e
|
|
7
10
|
$stderr.puts "Run `bundle install` to install missing gems"
|
8
11
|
exit e.status_code
|
9
12
|
end
|
10
|
-
require 'test/unit'
|
11
13
|
|
14
|
+
require 'test/unit'
|
12
15
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
13
16
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
17
|
+
|
14
18
|
require 'fluent/test'
|
15
19
|
unless ENV.has_key?('VERBOSE')
|
16
20
|
nulllogger = Object.new
|
@@ -22,6 +26,13 @@ unless ENV.has_key?('VERBOSE')
|
|
22
26
|
$log = nulllogger
|
23
27
|
end
|
24
28
|
|
29
|
+
require 'vcr'
|
30
|
+
VCR.configure do |config|
|
31
|
+
config.cassette_library_dir = 'test/cassettes'
|
32
|
+
config.hook_into :webmock
|
33
|
+
config.ignore_hosts 'codeclimate.com'
|
34
|
+
end
|
35
|
+
|
25
36
|
require 'fluent/plugin/out_ec2_metadata'
|
26
37
|
|
27
38
|
class Test::Unit::TestCase
|
@@ -1,50 +1,59 @@
|
|
1
1
|
require 'helper'
|
2
2
|
|
3
|
+
require 'webmock/test_unit'
|
4
|
+
WebMock.disable_net_connect!
|
5
|
+
|
3
6
|
class EC2MetadataOutputTest < Test::Unit::TestCase
|
4
|
-
def setup
|
5
|
-
Fluent::Test.setup
|
6
|
-
end
|
7
7
|
|
8
8
|
CONFIG = %[
|
9
9
|
output_tag ${instance_id}.${tag}
|
10
|
+
aws_key_id aws_key
|
11
|
+
aws_sec_key aws_sec
|
10
12
|
<record>
|
13
|
+
name ${tagset_name}
|
11
14
|
instance_id ${instance_id}
|
12
|
-
az
|
15
|
+
az ${availability_zone}
|
13
16
|
</record>
|
14
17
|
]
|
15
18
|
|
16
|
-
def
|
17
|
-
Fluent::Test
|
19
|
+
def setup
|
20
|
+
Fluent::Test.setup
|
21
|
+
@time = Fluent::Engine.now
|
18
22
|
end
|
19
23
|
|
20
|
-
def
|
21
|
-
|
24
|
+
def create_driver(conf=CONFIG, tag='test')
|
25
|
+
Fluent::Test::OutputTestDriver.new(Fluent::EC2MetadataOutput, tag).configure(conf)
|
22
26
|
end
|
23
27
|
|
24
|
-
|
25
|
-
|
28
|
+
test 'configure' do
|
29
|
+
VCR.use_cassette('ec2') do
|
30
|
+
d = create_driver
|
31
|
+
assert_equal("${instance_id}.${tag}", d.instance.output_tag)
|
32
|
+
assert_equal("aws_key", d.instance.aws_key_id)
|
33
|
+
assert_equal("aws_sec", d.instance.aws_sec_key)
|
34
|
+
end
|
26
35
|
end
|
27
36
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
d.
|
33
|
-
|
37
|
+
test 'emit' do
|
38
|
+
VCR.use_cassette('ec2') do
|
39
|
+
d = create_driver
|
40
|
+
|
41
|
+
d.run do
|
42
|
+
d.emit("a" => 1)
|
43
|
+
d.emit("a" => 2)
|
44
|
+
end
|
45
|
+
|
46
|
+
# tag
|
47
|
+
assert_equal "i-0c0c0000.test", d.emits[0][0]
|
48
|
+
assert_equal "i-0c0c0000.test", d.emits[1][0]
|
49
|
+
|
50
|
+
# record
|
51
|
+
mapped = { 'instance_id' => 'i-0c0c0000', 'az' => 'ap-northeast-1b', 'name' => 'instance-name' }
|
52
|
+
assert_equal [
|
53
|
+
{"a" => 1}.merge(mapped),
|
54
|
+
{"a" => 2}.merge(mapped),
|
55
|
+
], d.records
|
34
56
|
end
|
35
|
-
|
36
|
-
instance_id = get_instance_id
|
37
|
-
availability_zone = get_avaivality_zone
|
38
|
-
|
39
|
-
# tag
|
40
|
-
assert_equal "#{instance_id}.foo.bar", d.emits[0][0]
|
41
|
-
assert_equal "#{instance_id}.foo.bar", d.emits[1][0]
|
42
|
-
|
43
|
-
# record
|
44
|
-
mapped = { 'instance_id' => instance_id, 'az' => availability_zone }
|
45
|
-
assert_equal [
|
46
|
-
{"a" => 1}.merge(mapped),
|
47
|
-
{"a" => 2}.merge(mapped),
|
48
|
-
], d.records
|
49
57
|
end
|
58
|
+
|
50
59
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-ec2-metadata
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SAKAMOTO Takumi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-12-
|
11
|
+
date: 2015-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -24,6 +24,34 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: vcr
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: webmock
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
27
55
|
- !ruby/object:Gem::Dependency
|
28
56
|
name: test-unit
|
29
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -53,7 +81,7 @@ dependencies:
|
|
53
81
|
- !ruby/object:Gem::Version
|
54
82
|
version: '0'
|
55
83
|
- !ruby/object:Gem::Dependency
|
56
|
-
name: aws-sdk
|
84
|
+
name: aws-sdk
|
57
85
|
requirement: !ruby/object:Gem::Requirement
|
58
86
|
requirements:
|
59
87
|
- - ">="
|
@@ -81,6 +109,7 @@ files:
|
|
81
109
|
- Rakefile
|
82
110
|
- fluent-plugin-ec2-metadata.gemspec
|
83
111
|
- lib/fluent/plugin/out_ec2_metadata.rb
|
112
|
+
- test/cassettes/ec2.yml
|
84
113
|
- test/helper.rb
|
85
114
|
- test/plugin/test_out_ec2_metadata.rb
|
86
115
|
homepage: https://github.com/takus/fluent-plugin-ec2-metadata
|
@@ -108,5 +137,6 @@ signing_key:
|
|
108
137
|
specification_version: 4
|
109
138
|
summary: Fluentd output plugin to add ec2 metadata fields to a event record
|
110
139
|
test_files:
|
140
|
+
- test/cassettes/ec2.yml
|
111
141
|
- test/helper.rb
|
112
142
|
- test/plugin/test_out_ec2_metadata.rb
|