fluent-plugin-ec2-metadata 0.0.14 → 0.0.15
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/fluent-plugin-ec2-metadata.gemspec +1 -1
- data/lib/fluent/plugin/ec2_metadata.rb +15 -13
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f6d2c8b687f111b107457e4d141196b4a04c16bc
|
4
|
+
data.tar.gz: 8b6b74fcecb1a2bc1b845f54049ca65e907ad2d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4f2a19de0877c4ffd1c6e45532d09645f1af6f2a64eb37c5996713355bf595af0a4d105416e9e4c7ae6fa0e5d2bcfb3b34932ddd20c02af05075d221d8e3523e
|
7
|
+
data.tar.gz: bf2d28ec7d231966e8ebe24571f2875c1f0476d522d614f4ae8098d3d3f95275c07fe5703a009fd418e5625e38d4467327470a559fd229d8f04485ffcc5ec68d
|
@@ -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.15"
|
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}
|
@@ -22,23 +22,25 @@ module Fluent
|
|
22
22
|
@placeholder_expander = PlaceholderExpander.new(log)
|
23
23
|
|
24
24
|
# get metadata first and then setup a refresh thread
|
25
|
-
@ec2_metadata =
|
26
|
-
set_metadata
|
27
|
-
set_tag
|
25
|
+
@ec2_metadata = get_metadata_and_tags
|
28
26
|
@refresh_thread = Thread.new {
|
29
27
|
while true
|
30
28
|
sleep @metadata_refresh_seconds
|
31
|
-
|
32
|
-
set_tag
|
29
|
+
@ec2_metadata = get_metadata_and_tags
|
33
30
|
end
|
34
31
|
}
|
35
32
|
end
|
36
33
|
|
37
34
|
private
|
38
35
|
|
39
|
-
def
|
40
|
-
|
36
|
+
def get_metadata_and_tags
|
37
|
+
metadata = {}
|
38
|
+
set_metadata(metadata)
|
39
|
+
set_tag(metadata)
|
40
|
+
metadata
|
41
|
+
end
|
41
42
|
|
43
|
+
def set_metadata(ec2_metadata)
|
42
44
|
instance_identity = Oj.load(get_dynamic_data("instance-identity/document"))
|
43
45
|
ec2_metadata['account_id'] = instance_identity["accountId"]
|
44
46
|
ec2_metadata['image_id'] = instance_identity["imageId"]
|
@@ -61,7 +63,7 @@ module Fluent
|
|
61
63
|
ec2_metadata['subnet_id'] = nil
|
62
64
|
log.info "ec2-metadata: 'subnet_id' is undefined because #{ec2_metadata['instance_id']} is not in VPC}"
|
63
65
|
end
|
64
|
-
|
66
|
+
ec2_metadata
|
65
67
|
end
|
66
68
|
|
67
69
|
def get_dynamic_data(f)
|
@@ -76,27 +78,27 @@ module Fluent
|
|
76
78
|
res.body
|
77
79
|
end
|
78
80
|
|
79
|
-
def set_tag()
|
81
|
+
def set_tag(ec2_metadata)
|
80
82
|
if @map.values.any? { |v| v.match(/^\${tagset_/) } || @output_tag =~ /\${tagset_/
|
81
83
|
|
82
84
|
if @aws_key_id and @aws_sec_key
|
83
85
|
ec2 = Aws::EC2::Client.new(
|
84
|
-
region:
|
86
|
+
region: ec2_metadata['region'],
|
85
87
|
access_key_id: @aws_key_id,
|
86
88
|
secret_access_key: @aws_sec_key,
|
87
89
|
)
|
88
90
|
else
|
89
91
|
ec2 = Aws::EC2::Client.new(
|
90
|
-
region:
|
92
|
+
region: ec2_metadata['region'],
|
91
93
|
)
|
92
94
|
end
|
93
95
|
|
94
|
-
response = ec2.describe_instances({ :instance_ids => [
|
96
|
+
response = ec2.describe_instances({ :instance_ids => [ec2_metadata['instance_id']] })
|
95
97
|
instance = response.reservations[0].instances[0]
|
96
98
|
raise Fluent::ConfigError, "ec2-metadata: failed to get instance data #{response.pretty_inspect}" if instance.nil?
|
97
99
|
|
98
100
|
instance.tags.each { |tag|
|
99
|
-
|
101
|
+
ec2_metadata["tagset_#{tag.key.downcase}"] = tag.value
|
100
102
|
}
|
101
103
|
end
|
102
104
|
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.15
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SAKAMOTO Takumi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: fluentd
|