fluent-plugin-google-cloud 0.6.4.pre.1 → 0.6.4.pre.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/Gemfile.lock +4 -4
- data/fluent-plugin-google-cloud.gemspec +1 -1
- data/lib/fluent/plugin/out_google_cloud.rb +50 -15
- 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: e87c18a3faae1b0b748c947487bac806f9af22ff
|
4
|
+
data.tar.gz: 7aa3fb16a6625f55e86dd7a1b2b983ce090b0803
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 16e3e4c2db4dc5dccc26c403bd1a64802afa7fd97fa0a9bdc3109a583d865c594958efeb7e769a7aa45987d237f4842ecadb18280c6c6adc87ee6bee2a1a34b6
|
7
|
+
data.tar.gz: 07a36c3637028e394f84f01baa05650f6d8db4260db6b64dae92ff7d1f4b6af6bca3173162bcbb588dffbc765e9426c24588ef30523d1dd29e0f6f1ca13d502c
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
fluent-plugin-google-cloud (0.6.4.pre.
|
4
|
+
fluent-plugin-google-cloud (0.6.4.pre.2)
|
5
5
|
excon (~> 0.56.0)
|
6
6
|
fluentd (~> 0.10)
|
7
7
|
google-api-client (~> 0.9.0)
|
@@ -25,7 +25,7 @@ GEM
|
|
25
25
|
excon (0.56.0)
|
26
26
|
faraday (0.12.1)
|
27
27
|
multipart-post (>= 1.2, < 3)
|
28
|
-
fluentd (0.14.
|
28
|
+
fluentd (0.14.19)
|
29
29
|
cool.io (>= 1.4.5, < 2.0.0)
|
30
30
|
http_parser.rb (>= 0.5.1, < 0.7.0)
|
31
31
|
msgpack (>= 0.7.0, < 2.0.0)
|
@@ -127,7 +127,7 @@ GEM
|
|
127
127
|
multi_json (~> 1.10)
|
128
128
|
stackdriver-core (0.21.0)
|
129
129
|
strptime (0.1.9)
|
130
|
-
test-unit (3.2.
|
130
|
+
test-unit (3.2.5)
|
131
131
|
power_assert
|
132
132
|
thread_safe (0.3.6)
|
133
133
|
tins (1.6.0)
|
@@ -154,4 +154,4 @@ DEPENDENCIES
|
|
154
154
|
webmock (~> 1.17)
|
155
155
|
|
156
156
|
BUNDLED WITH
|
157
|
-
1.15.
|
157
|
+
1.15.2
|
@@ -10,7 +10,7 @@ eos
|
|
10
10
|
gem.homepage = \
|
11
11
|
'https://github.com/GoogleCloudPlatform/fluent-plugin-google-cloud'
|
12
12
|
gem.license = 'Apache-2.0'
|
13
|
-
gem.version = '0.6.4.pre.
|
13
|
+
gem.version = '0.6.4.pre.2'
|
14
14
|
gem.authors = ['Todd Derr', 'Alex Robinson']
|
15
15
|
gem.email = ['salty@google.com']
|
16
16
|
gem.required_ruby_version = Gem::Requirement.new('>= 2.0')
|
@@ -79,7 +79,7 @@ module Fluent
|
|
79
79
|
resource_type: 'ml_job'
|
80
80
|
}
|
81
81
|
|
82
|
-
# Metadata
|
82
|
+
# Metadata Agent support.
|
83
83
|
|
84
84
|
# Use empty string as request path when locally-unique key of monitored
|
85
85
|
# resource can be implicitly inferred by Metadata Agent.
|
@@ -94,7 +94,7 @@ module Fluent
|
|
94
94
|
Fluent::Plugin.register_output('google_cloud', self)
|
95
95
|
|
96
96
|
PLUGIN_NAME = 'Fluentd Google Cloud Logging plugin'
|
97
|
-
PLUGIN_VERSION = '0.6.4.pre.
|
97
|
+
PLUGIN_VERSION = '0.6.4.pre.2'
|
98
98
|
|
99
99
|
# Name of the the Google cloud logging write scope.
|
100
100
|
LOGGING_SCOPE = 'https://www.googleapis.com/auth/logging.write'
|
@@ -213,7 +213,7 @@ module Fluent
|
|
213
213
|
config_param :call_docker_api_locally, :bool, :default => true
|
214
214
|
# Docker Remote API unix socket path.
|
215
215
|
config_param :docker_remote_api_socket_path, :string,
|
216
|
-
:default =>
|
216
|
+
:default => DEFAULT_DOCKER_API_SOCKET_PATH
|
217
217
|
|
218
218
|
# rubocop:enable Style/HashSyntax
|
219
219
|
|
@@ -379,9 +379,10 @@ module Fluent
|
|
379
379
|
arr.each do |time, record|
|
380
380
|
next unless record.is_a?(Hash)
|
381
381
|
|
382
|
-
extracted_resource_labels, extracted_common_labels = \
|
382
|
+
resource_type, extracted_resource_labels, extracted_common_labels = \
|
383
383
|
determine_entry_level_labels(group_resource, record)
|
384
384
|
entry_resource = group_resource.dup
|
385
|
+
entry_resource.type = resource_type
|
385
386
|
entry_resource.labels.merge!(extracted_resource_labels)
|
386
387
|
entry_common_labels = \
|
387
388
|
group_common_labels.merge(extracted_common_labels)
|
@@ -746,7 +747,7 @@ module Fluent
|
|
746
747
|
# Retrieve monitored resource via the legacy way.
|
747
748
|
#
|
748
749
|
# Note: This is just a failover plan if we fail to get metadata from
|
749
|
-
# Metadata
|
750
|
+
# Metadata Agent. Thus it should be equivalent to what Metadata Agent
|
750
751
|
# returns.
|
751
752
|
def determine_agent_level_monitored_resource_via_legacy
|
752
753
|
resource = Google::Apis::LoggingV2beta1::MonitoredResource.new(
|
@@ -1041,22 +1042,22 @@ module Fluent
|
|
1041
1042
|
locally_unique_id)
|
1042
1043
|
end
|
1043
1044
|
|
1044
|
-
if
|
1045
|
+
if !retrieved_resource.nil?
|
1045
1046
|
# If we successfully get a monitored resource from Metadata Agent,
|
1046
|
-
# use this one instead of the original
|
1047
|
+
# use this one instead of the original instance monitored resource.
|
1047
1048
|
group_resource_labels = retrieved_resource.labels.dup
|
1048
1049
|
@log.debug 'Retrieved monitored resource from Metadata Agent: ' \
|
1049
1050
|
"#{retrieved_resource.inspect}."
|
1050
1051
|
else
|
1051
1052
|
# If Metadata Agent is not enabled, or we failed to get a monitored
|
1052
1053
|
# resource, we need to have some backup plan.
|
1053
|
-
@log.debug 'Metadata
|
1054
|
+
@log.debug 'Metadata Agent not enabled or failed to retrieve ' \
|
1054
1055
|
'docker container monitored resource from Metadata ' \
|
1055
1056
|
'Agent.'
|
1056
1057
|
|
1057
1058
|
# 1. Check if 'container_id' is set already. It should be available
|
1058
1059
|
# for stdout / stderr). If so, use that.
|
1059
|
-
# 2. If not, call Docker Remote API to
|
1060
|
+
# 2. If not, call Docker Remote API to retrieve the container ID from
|
1060
1061
|
# container name, but only if @call_docker_api_locally is true.
|
1061
1062
|
container_id ||= retrieve_container_id_by_name_locally(
|
1062
1063
|
container_name) if @call_docker_api_locally
|
@@ -1094,11 +1095,45 @@ module Fluent
|
|
1094
1095
|
# Extract entry resource and common labels that should be applied to
|
1095
1096
|
# individual entries from the group resource.
|
1096
1097
|
def determine_entry_level_labels(group_resource, record)
|
1098
|
+
resource_type = group_resource.type
|
1097
1099
|
resource_labels = {}
|
1098
1100
|
common_labels = {}
|
1099
1101
|
|
1102
|
+
if record.key?("#{CONTAINER_CONSTANTS[:service]}/namespace_id") &&
|
1103
|
+
record.key?("#{CONTAINER_CONSTANTS[:service]}/pod_name") &&
|
1104
|
+
record.key?("#{CONTAINER_CONSTANTS[:service]}/container_name")
|
1105
|
+
if @enable_metadata_agent
|
1106
|
+
# Call Metadata Agent with "gke_containerName.<namespace_id>.
|
1107
|
+
# <pod_name>.<container_name>" as the locally-unique key to retrieve
|
1108
|
+
# monitored resource.
|
1109
|
+
locally_unique_id = 'gke_containerName.' \
|
1110
|
+
"#{record["#{CONTAINER_CONSTANTS[:service]}/namespace_id"]}." \
|
1111
|
+
"#{record["#{CONTAINER_CONSTANTS[:service]}/pod_name"]}." \
|
1112
|
+
"#{record["#{CONTAINER_CONSTANTS[:service]}/container_name"]}"
|
1113
|
+
@log.debug 'Calling metadata agent with locally unique id: ' \
|
1114
|
+
"#{locally_unique_id}."
|
1115
|
+
retrieved_resource = call_metadata_agent_for_monitored_resource(
|
1116
|
+
locally_unique_id)
|
1117
|
+
@log.debug 'Retrieved monitored resource from metadata agent: ' \
|
1118
|
+
"#{retrieved_resource.inspect}."
|
1119
|
+
unless retrieved_resource.nil?
|
1120
|
+
# Temporarily renaming 'gke_container' to 'container'.
|
1121
|
+
# resource_type = retrieved_resource.type
|
1122
|
+
resource_type = 'container'
|
1123
|
+
# If we successfully get a monitored resource from Metadata Agent,
|
1124
|
+
# use this one instead of the original VM-level monitored resource.
|
1125
|
+
resource_labels = retrieved_resource.labels.dup
|
1126
|
+
record.delete("#{CONTAINER_CONSTANTS[:service]}/namespace_id")
|
1127
|
+
record.delete("#{CONTAINER_CONSTANTS[:service]}/pod_name")
|
1128
|
+
record.delete("#{CONTAINER_CONSTANTS[:service]}/container_name")
|
1129
|
+
@log.debug 'Retrieved gke monitored resource from Metadata ' \
|
1130
|
+
"Agent: ' #{retrieved_resource.inspect}."
|
1131
|
+
end
|
1132
|
+
end
|
1133
|
+
end
|
1134
|
+
|
1100
1135
|
# Cloud Functions.
|
1101
|
-
if
|
1136
|
+
if resource_type == CLOUDFUNCTIONS_CONSTANTS[:resource_type] &&
|
1102
1137
|
record.key?('log')
|
1103
1138
|
@cloudfunctions_log_match =
|
1104
1139
|
@cloudfunctions_log_regexp.match(record['log'])
|
@@ -1109,7 +1144,7 @@ module Fluent
|
|
1109
1144
|
end
|
1110
1145
|
|
1111
1146
|
# GKE containers.
|
1112
|
-
if
|
1147
|
+
if resource_type == CONTAINER_CONSTANTS[:resource_type]
|
1113
1148
|
# Move the stdout/stderr annotation from the record into a label.
|
1114
1149
|
common_labels.merge!(
|
1115
1150
|
fields_to_labels(
|
@@ -1127,7 +1162,7 @@ module Fluent
|
|
1127
1162
|
end
|
1128
1163
|
|
1129
1164
|
# Docker containers.
|
1130
|
-
if
|
1165
|
+
if resource_type == DOCKER_CONSTANTS[:resource_type]
|
1131
1166
|
# For logs coming from Docker Fluentd Logging Driver, the log record
|
1132
1167
|
# has 4 fields: 'container_id', 'container_name', 'source' and 'log'.
|
1133
1168
|
# Extract 'container_id', 'container_name' and 'source' from json
|
@@ -1153,9 +1188,9 @@ module Fluent
|
|
1153
1188
|
common_labels.merge!(fields_to_labels(record, @label_map))
|
1154
1189
|
|
1155
1190
|
resource_labels.merge!(
|
1156
|
-
extract_resource_labels(
|
1191
|
+
extract_resource_labels(resource_type, common_labels))
|
1157
1192
|
|
1158
|
-
[resource_labels, common_labels]
|
1193
|
+
[resource_type, resource_labels, common_labels]
|
1159
1194
|
end
|
1160
1195
|
|
1161
1196
|
# Call Metadata Agent to get monitored resource information and parse
|
@@ -1171,7 +1206,7 @@ module Fluent
|
|
1171
1206
|
return nil
|
1172
1207
|
end
|
1173
1208
|
|
1174
|
-
# TODO(
|
1209
|
+
# TODO(qingling128): Use Google::Api::MonitoredResource directly after we
|
1175
1210
|
# upgrade gRPC version to include the fix for the protobuf map
|
1176
1211
|
# corruption issue.
|
1177
1212
|
Google::Apis::LoggingV2beta1::MonitoredResource.new(
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fluent-plugin-google-cloud
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.4.pre.
|
4
|
+
version: 0.6.4.pre.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Todd Derr
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2017-
|
12
|
+
date: 2017-07-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: excon
|