fluent-plugin-google-cloud 0.6.7.pre.1 → 0.6.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/Rakefile +2 -1
- data/fluent-plugin-google-cloud.gemspec +1 -1
- data/lib/fluent/plugin/out_google_cloud.rb +189 -287
- data/test/plugin/base_test.rb +2 -254
- data/test/plugin/constants.rb +13 -148
- metadata +3 -3
data/test/plugin/base_test.rb
CHANGED
@@ -503,7 +503,7 @@ module BaseTest
|
|
503
503
|
end
|
504
504
|
params = CONTAINER_FROM_METADATA_PARAMS.merge(
|
505
505
|
labels: CONTAINER_FROM_METADATA_PARAMS[:labels].merge(
|
506
|
-
"#{
|
506
|
+
"#{CONTAINER_CONSTANTS[:service]}/container_name" =>
|
507
507
|
URI.decode(encoded_name)),
|
508
508
|
log_name: encoded_name)
|
509
509
|
verify_log_entries(0, params, 'textPayload')
|
@@ -830,7 +830,7 @@ module BaseTest
|
|
830
830
|
d.run
|
831
831
|
end
|
832
832
|
expected_params = CONTAINER_FROM_TAG_PARAMS.merge(
|
833
|
-
labels: { "#{
|
833
|
+
labels: { "#{CONTAINER_CONSTANTS[:service]}/stream" => 'stderr' }
|
834
834
|
) { |_, oldval, newval| oldval.merge(newval) }
|
835
835
|
verify_log_entries(1, expected_params) do |entry, i|
|
836
836
|
verify_default_log_entry_text(entry['textPayload'], i, entry)
|
@@ -1106,197 +1106,6 @@ module BaseTest
|
|
1106
1106
|
end
|
1107
1107
|
end
|
1108
1108
|
|
1109
|
-
# Metadata Agent related tests.
|
1110
|
-
|
1111
|
-
# Test enable_metadata_agent not set or set to false.
|
1112
|
-
def test_configure_enable_metadata_agent_default_and_false
|
1113
|
-
setup_gce_metadata_stubs
|
1114
|
-
[create_driver, create_driver(DISABLE_METADATA_AGENT_CONFIG)].each do |d|
|
1115
|
-
assert_false d.instance.instance_variable_get(:@enable_metadata_agent)
|
1116
|
-
end
|
1117
|
-
end
|
1118
|
-
|
1119
|
-
# Test enable_metadata_agent set to true.
|
1120
|
-
def test_configure_enable_metadata_agent_true
|
1121
|
-
new_stub_context do
|
1122
|
-
setup_gce_metadata_stubs
|
1123
|
-
setup_metadata_agent_stubs
|
1124
|
-
d = create_driver(ENABLE_METADATA_AGENT_CONFIG)
|
1125
|
-
assert_true d.instance.instance_variable_get(:@enable_metadata_agent)
|
1126
|
-
assert_requested_metadata_agent_stub(IMPLICIT_LOCAL_RESOURCE_ID)
|
1127
|
-
end
|
1128
|
-
end
|
1129
|
-
|
1130
|
-
# Test that an implicit monitored resource can be retrieved from Metadata
|
1131
|
-
# Agent with an empty string as the local_resource_id.
|
1132
|
-
def test_retrieve_implicit_monitored_resource
|
1133
|
-
# GCE metadata stubs has VM_ID and ZONE, while the Metadata Agent stub has
|
1134
|
-
# METADATA_VM_ID and METADATA_ZONE.
|
1135
|
-
new_stub_context do
|
1136
|
-
setup_gce_metadata_stubs
|
1137
|
-
setup_metadata_agent_stubs
|
1138
|
-
setup_logging_stubs do
|
1139
|
-
d = create_driver(ENABLE_METADATA_AGENT_CONFIG)
|
1140
|
-
d.emit('message' => log_entry(0))
|
1141
|
-
d.run
|
1142
|
-
end
|
1143
|
-
verify_log_entries(1, COMPUTE_PARAMS_WITH_METADATA_VM_ID_AND_ZONE)
|
1144
|
-
assert_requested_metadata_agent_stub(IMPLICIT_LOCAL_RESOURCE_ID)
|
1145
|
-
end
|
1146
|
-
end
|
1147
|
-
|
1148
|
-
# Docker Container.
|
1149
|
-
|
1150
|
-
# Test textPayload logs from Docker container stdout / stderr.
|
1151
|
-
def test_docker_container_stdout_stderr_logs_text_payload
|
1152
|
-
[1, 2, 3, 5, 11, 50].each do |n|
|
1153
|
-
new_stub_context do
|
1154
|
-
setup_gce_metadata_stubs
|
1155
|
-
setup_metadata_agent_stubs
|
1156
|
-
setup_logging_stubs do
|
1157
|
-
d = create_driver(DOCKER_CONTAINER_CONFIG)
|
1158
|
-
n.times do |i|
|
1159
|
-
d.emit(docker_container_stdout_stderr_log_entry(log_entry(i)))
|
1160
|
-
end
|
1161
|
-
d.run
|
1162
|
-
end
|
1163
|
-
verify_log_entries(n, DOCKER_CONTAINER_PARAMS)
|
1164
|
-
assert_requested_metadata_agent_stub(IMPLICIT_LOCAL_RESOURCE_ID)
|
1165
|
-
assert_requested_metadata_agent_stub("container.#{DOCKER_CONTAINER_ID}")
|
1166
|
-
end
|
1167
|
-
end
|
1168
|
-
end
|
1169
|
-
|
1170
|
-
# Test jsonPayload logs from Docker container stdout / stderr.
|
1171
|
-
def test_docker_container_stdout_stderr_logs_json_payload
|
1172
|
-
[1, 2, 3, 5, 11, 50].each do |n|
|
1173
|
-
new_stub_context do
|
1174
|
-
setup_gce_metadata_stubs
|
1175
|
-
setup_metadata_agent_stubs
|
1176
|
-
setup_logging_stubs do
|
1177
|
-
d = create_driver(DOCKER_CONTAINER_CONFIG)
|
1178
|
-
n.times do
|
1179
|
-
d.emit(docker_container_stdout_stderr_log_entry(
|
1180
|
-
'{"msg": "test log entry ' \
|
1181
|
-
"#{n}" \
|
1182
|
-
'", "tag2": "test", "data": ' \
|
1183
|
-
'5000, "severity": "WARNING"}'))
|
1184
|
-
end
|
1185
|
-
d.run
|
1186
|
-
end
|
1187
|
-
verify_log_entries(n, DOCKER_CONTAINER_PARAMS, 'jsonPayload') do |entry|
|
1188
|
-
fields = get_fields(entry['jsonPayload'])
|
1189
|
-
assert_equal 3, fields.size, entry
|
1190
|
-
assert_equal "test log entry #{n}", get_string(fields['msg']), entry
|
1191
|
-
assert_equal 'test', get_string(fields['tag2']), entry
|
1192
|
-
assert_equal 5000, get_number(fields['data']), entry
|
1193
|
-
end
|
1194
|
-
assert_requested_metadata_agent_stub(IMPLICIT_LOCAL_RESOURCE_ID)
|
1195
|
-
assert_requested_metadata_agent_stub("container.#{DOCKER_CONTAINER_ID}")
|
1196
|
-
end
|
1197
|
-
end
|
1198
|
-
end
|
1199
|
-
|
1200
|
-
# Test logs from applications running in Docker containers. These logs have
|
1201
|
-
# the label "logging.googleapis.com/local_resource_id" set in the format of
|
1202
|
-
# "containerName.<container_name>".
|
1203
|
-
def test_docker_container_application_logs
|
1204
|
-
new_stub_context do
|
1205
|
-
setup_gce_metadata_stubs
|
1206
|
-
setup_metadata_agent_stubs
|
1207
|
-
setup_logging_stubs do
|
1208
|
-
# Metadata Agent is not enabled. Will call Docker Remote API for
|
1209
|
-
# container info.
|
1210
|
-
d = create_driver(ENABLE_METADATA_AGENT_CONFIG)
|
1211
|
-
d.emit(docker_container_application_log_entry(log_entry(0)))
|
1212
|
-
d.run
|
1213
|
-
end
|
1214
|
-
verify_log_entries(1, DOCKER_CONTAINER_PARAMS_WITH_NO_STREAM)
|
1215
|
-
assert_requested_metadata_agent_stub(IMPLICIT_LOCAL_RESOURCE_ID)
|
1216
|
-
assert_requested_metadata_agent_stub(
|
1217
|
-
"containerName.#{DOCKER_CONTAINER_NAME}")
|
1218
|
-
end
|
1219
|
-
end
|
1220
|
-
|
1221
|
-
# Test that the 'time' field from the json record is extracted and set to
|
1222
|
-
# entry.timestamp for Docker container logs.
|
1223
|
-
def test_time_field_extraction_for_docker_container_logs
|
1224
|
-
new_stub_context do
|
1225
|
-
setup_gce_metadata_stubs
|
1226
|
-
setup_metadata_agent_stubs
|
1227
|
-
setup_logging_stubs do
|
1228
|
-
d = create_driver(ENABLE_METADATA_AGENT_CONFIG)
|
1229
|
-
d.emit(docker_container_application_log_entry(log_entry(0)))
|
1230
|
-
d.run
|
1231
|
-
end
|
1232
|
-
verify_log_entries(1, DOCKER_CONTAINER_PARAMS_WITH_NO_STREAM) do |entry|
|
1233
|
-
# Timestamp in 'time' field from log entry should be set properly.
|
1234
|
-
assert_equal DOCKER_CONTAINER_SECONDS_EPOCH,
|
1235
|
-
entry['timestamp']['seconds'], entry
|
1236
|
-
assert_equal DOCKER_CONTAINER_NANOS,
|
1237
|
-
entry['timestamp']['nanos'], entry
|
1238
|
-
end
|
1239
|
-
assert_requested_metadata_agent_stub(IMPLICIT_LOCAL_RESOURCE_ID)
|
1240
|
-
assert_requested_metadata_agent_stub(
|
1241
|
-
"containerName.#{DOCKER_CONTAINER_NAME}")
|
1242
|
-
end
|
1243
|
-
end
|
1244
|
-
|
1245
|
-
# Test that the 'source' field is properly extracted from the record json and
|
1246
|
-
# set as a common label 'stream'. Also entry.severity is set accordingly for
|
1247
|
-
# Docker container logs.
|
1248
|
-
def test_source_and_severity_for_docker_container_logs
|
1249
|
-
{
|
1250
|
-
docker_container_stdout_stderr_log_entry(
|
1251
|
-
log_entry(0), DOCKER_CONTAINER_STREAM_STDOUT) =>
|
1252
|
-
DOCKER_CONTAINER_PARAMS,
|
1253
|
-
docker_container_stdout_stderr_log_entry(
|
1254
|
-
log_entry(0), DOCKER_CONTAINER_STREAM_STDERR) =>
|
1255
|
-
DOCKER_CONTAINER_PARAMS_WITH_STREAM_STDERR,
|
1256
|
-
docker_container_application_log_entry(log_entry(0)) =>
|
1257
|
-
DOCKER_CONTAINER_PARAMS_WITH_NO_STREAM,
|
1258
|
-
docker_container_application_log_entry(log_entry(0)) \
|
1259
|
-
.merge('severity' => 'warning') =>
|
1260
|
-
DOCKER_CONTAINER_PARAMS_WITH_NO_STREAM
|
1261
|
-
}.each do |log_entry, expected_params|
|
1262
|
-
new_stub_context do
|
1263
|
-
setup_gce_metadata_stubs
|
1264
|
-
setup_metadata_agent_stubs
|
1265
|
-
setup_logging_stubs do
|
1266
|
-
d = create_driver(DOCKER_CONTAINER_CONFIG)
|
1267
|
-
d.emit(log_entry)
|
1268
|
-
d.run
|
1269
|
-
end
|
1270
|
-
verify_log_entries(1, expected_params)
|
1271
|
-
end
|
1272
|
-
end
|
1273
|
-
end
|
1274
|
-
|
1275
|
-
# Test GKE container logs. These logs have the label
|
1276
|
-
# "logging.googleapis.com/local_resource_id" set in the format of
|
1277
|
-
# "gke_containerName.<namespace_id>.<pod_name>.<container_name>".
|
1278
|
-
def test_gke_container_logs
|
1279
|
-
[1, 2, 3, 5, 11, 50].each do |n|
|
1280
|
-
new_stub_context do
|
1281
|
-
setup_gce_metadata_stubs
|
1282
|
-
setup_container_metadata_stubs
|
1283
|
-
setup_metadata_agent_stubs
|
1284
|
-
setup_logging_stubs do
|
1285
|
-
d = create_driver(ENABLE_METADATA_AGENT_CONFIG)
|
1286
|
-
n.times do |i|
|
1287
|
-
d.emit(gke_container_log_entry(log_entry(i)))
|
1288
|
-
end
|
1289
|
-
d.run
|
1290
|
-
end
|
1291
|
-
verify_log_entries(n, CONTAINER_FROM_APPLICATION_PARAMS)
|
1292
|
-
assert_requested_metadata_agent_stub(IMPLICIT_LOCAL_RESOURCE_ID)
|
1293
|
-
assert_requested_metadata_agent_stub(
|
1294
|
-
"gke_containerName.#{CONTAINER_NAMESPACE_ID}.#{CONTAINER_POD_NAME}." \
|
1295
|
-
"#{CONTAINER_CONTAINER_NAME}")
|
1296
|
-
end
|
1297
|
-
end
|
1298
|
-
end
|
1299
|
-
|
1300
1109
|
private
|
1301
1110
|
|
1302
1111
|
def stub_metadata_request(metadata_path, response_body)
|
@@ -1412,33 +1221,6 @@ module BaseTest
|
|
1412
1221
|
Prometheus::Client.registry.instance_variable_set('@metrics', {})
|
1413
1222
|
end
|
1414
1223
|
|
1415
|
-
# Metadata Agent.
|
1416
|
-
|
1417
|
-
def metadata_request_url(local_resource_id)
|
1418
|
-
"#{DEFAULT_METADATA_AGENT_URL}/monitoredResource/#{local_resource_id}"
|
1419
|
-
end
|
1420
|
-
|
1421
|
-
# Provide a stub context that initializes @logs_sent, executes the block and
|
1422
|
-
# resets WebMock at the end.
|
1423
|
-
def new_stub_context
|
1424
|
-
@logs_sent = []
|
1425
|
-
yield
|
1426
|
-
WebMock.reset!
|
1427
|
-
end
|
1428
|
-
|
1429
|
-
def setup_metadata_agent_stubs
|
1430
|
-
MONITORED_RESOURCE_STUBS.each do |local_resource_id, resource|
|
1431
|
-
stub_request(:get, metadata_request_url(local_resource_id))
|
1432
|
-
.to_return(status: 200, body: resource)
|
1433
|
-
end
|
1434
|
-
end
|
1435
|
-
|
1436
|
-
def assert_requested_metadata_agent_stub(local_resource_id)
|
1437
|
-
assert_requested :get, metadata_request_url(local_resource_id)
|
1438
|
-
end
|
1439
|
-
|
1440
|
-
# GKE Container.
|
1441
|
-
|
1442
1224
|
def container_tag_with_container_name(container_name)
|
1443
1225
|
"kubernetes.#{CONTAINER_POD_NAME}_#{CONTAINER_NAMESPACE_NAME}_" \
|
1444
1226
|
"#{container_name}"
|
@@ -1471,40 +1253,6 @@ module BaseTest
|
|
1471
1253
|
}
|
1472
1254
|
end
|
1473
1255
|
|
1474
|
-
def gke_container_log_entry(log)
|
1475
|
-
{
|
1476
|
-
log: log,
|
1477
|
-
LOCAL_RESOURCE_ID_KEY =>
|
1478
|
-
"gke_containerName.#{CONTAINER_NAMESPACE_ID}" \
|
1479
|
-
".#{CONTAINER_POD_NAME}.#{CONTAINER_CONTAINER_NAME}"
|
1480
|
-
}
|
1481
|
-
end
|
1482
|
-
|
1483
|
-
# Docker Container.
|
1484
|
-
|
1485
|
-
def docker_container_stdout_stderr_log_entry(
|
1486
|
-
log, stream = DOCKER_CONTAINER_STREAM_STDOUT)
|
1487
|
-
severity = if stream == DOCKER_CONTAINER_STREAM_STDOUT
|
1488
|
-
'INFO'
|
1489
|
-
else
|
1490
|
-
'ERROR'
|
1491
|
-
end
|
1492
|
-
{
|
1493
|
-
log: log,
|
1494
|
-
source: stream,
|
1495
|
-
severity: severity,
|
1496
|
-
LOCAL_RESOURCE_ID_KEY => "container.#{DOCKER_CONTAINER_ID}"
|
1497
|
-
}
|
1498
|
-
end
|
1499
|
-
|
1500
|
-
def docker_container_application_log_entry(log)
|
1501
|
-
{
|
1502
|
-
log: log,
|
1503
|
-
time: DOCKER_CONTAINER_TIMESTAMP,
|
1504
|
-
LOCAL_RESOURCE_ID_KEY => "containerName.#{DOCKER_CONTAINER_NAME}"
|
1505
|
-
}
|
1506
|
-
end
|
1507
|
-
|
1508
1256
|
def cloudfunctions_log_entry(i)
|
1509
1257
|
{
|
1510
1258
|
stream: 'stdout',
|
data/test/plugin/constants.rb
CHANGED
@@ -14,9 +14,7 @@
|
|
14
14
|
|
15
15
|
# Constants used by unit tests for Google Cloud Logging plugin.
|
16
16
|
module Constants
|
17
|
-
include Fluent::GoogleCloudOutput::
|
18
|
-
include Fluent::GoogleCloudOutput::ConfigConstants
|
19
|
-
include Fluent::GoogleCloudOutput::InternalConstants
|
17
|
+
include Fluent::GoogleCloudOutput::Constants
|
20
18
|
|
21
19
|
# Generic attributes.
|
22
20
|
HOSTNAME = Socket.gethostname
|
@@ -28,10 +26,6 @@ module Constants
|
|
28
26
|
FULLY_QUALIFIED_ZONE = 'projects/' + PROJECT_ID + '/zones/' + ZONE
|
29
27
|
VM_ID = '9876543210'
|
30
28
|
|
31
|
-
# Attributes used for the Metadata Agent resources.
|
32
|
-
METADATA_ZONE = 'us-central1-c'
|
33
|
-
METADATA_VM_ID = '0123456789'
|
34
|
-
|
35
29
|
# Attributes used for custom (overridden) configs.
|
36
30
|
CUSTOM_PROJECT_ID = 'test-custom-project-id'
|
37
31
|
CUSTOM_ZONE = 'us-custom-central1-b'
|
@@ -57,16 +51,6 @@ module Constants
|
|
57
51
|
MANAGED_VM_BACKEND_NAME = 'default'
|
58
52
|
MANAGED_VM_BACKEND_VERSION = 'guestbook2.0'
|
59
53
|
|
60
|
-
# Docker Container labels.
|
61
|
-
DOCKER_CONTAINER_ID = '0d0f03ff8d3c42688692536d1af77a28cd135c0a5c531f25a31'
|
62
|
-
DOCKER_CONTAINER_NAME = 'happy_hippo'
|
63
|
-
DOCKER_CONTAINER_STREAM_STDOUT = 'stdout'
|
64
|
-
DOCKER_CONTAINER_STREAM_STDERR = 'stderr'
|
65
|
-
# Timestamp for 1234567890 seconds and 987654321 nanoseconds since epoch.
|
66
|
-
DOCKER_CONTAINER_TIMESTAMP = '2009-02-13T23:31:30.987654321Z'
|
67
|
-
DOCKER_CONTAINER_SECONDS_EPOCH = 1_234_567_890
|
68
|
-
DOCKER_CONTAINER_NANOS = 987_654_321
|
69
|
-
|
70
54
|
# Container Engine / Kubernetes specific labels.
|
71
55
|
CONTAINER_CLUSTER_NAME = 'cluster-1'
|
72
56
|
CONTAINER_NAMESPACE_ID = '898268c8-4a36-11e5-9d81-42010af0194c'
|
@@ -165,20 +149,6 @@ module Constants
|
|
165
149
|
monitoring_type prometheus
|
166
150
|
)
|
167
151
|
|
168
|
-
ENABLE_METADATA_AGENT_CONFIG = %(
|
169
|
-
enable_metadata_agent true
|
170
|
-
)
|
171
|
-
|
172
|
-
DISABLE_METADATA_AGENT_CONFIG = %(
|
173
|
-
enable_metadata_agent false
|
174
|
-
)
|
175
|
-
|
176
|
-
DOCKER_CONTAINER_CONFIG = %(
|
177
|
-
enable_metadata_agent true
|
178
|
-
label_map { "source": "#{DOCKER_CONSTANTS[:service]}/stream" }
|
179
|
-
detect_json true
|
180
|
-
)
|
181
|
-
|
182
152
|
CUSTOM_METADATA_CONFIG = %(
|
183
153
|
project_id #{CUSTOM_PROJECT_ID}
|
184
154
|
zone #{CUSTOM_ZONE}
|
@@ -235,8 +205,6 @@ module Constants
|
|
235
205
|
)
|
236
206
|
|
237
207
|
# Service configurations for various services.
|
238
|
-
|
239
|
-
# GCE.
|
240
208
|
COMPUTE_PARAMS = {
|
241
209
|
resource: {
|
242
210
|
type: COMPUTE_CONSTANTS[:resource_type],
|
@@ -251,16 +219,7 @@ module Constants
|
|
251
219
|
"#{COMPUTE_CONSTANTS[:service]}/resource_name" => HOSTNAME
|
252
220
|
}
|
253
221
|
}
|
254
|
-
COMPUTE_PARAMS_WITH_METADATA_VM_ID_AND_ZONE = COMPUTE_PARAMS.merge(
|
255
|
-
resource: COMPUTE_PARAMS[:resource].merge(
|
256
|
-
labels: {
|
257
|
-
'instance_id' => METADATA_VM_ID,
|
258
|
-
'zone' => METADATA_ZONE
|
259
|
-
}
|
260
|
-
)
|
261
|
-
)
|
262
222
|
|
263
|
-
# GAE.
|
264
223
|
VMENGINE_PARAMS = {
|
265
224
|
resource: {
|
266
225
|
type: APPENGINE_CONSTANTS[:resource_type],
|
@@ -278,13 +237,12 @@ module Constants
|
|
278
237
|
}
|
279
238
|
}
|
280
239
|
|
281
|
-
# GKE Container.
|
282
240
|
CONTAINER_TAG = "kubernetes.#{CONTAINER_POD_NAME}_" \
|
283
241
|
"#{CONTAINER_NAMESPACE_NAME}_#{CONTAINER_CONTAINER_NAME}"
|
284
242
|
|
285
243
|
CONTAINER_FROM_METADATA_PARAMS = {
|
286
244
|
resource: {
|
287
|
-
type:
|
245
|
+
type: CONTAINER_CONSTANTS[:resource_type],
|
288
246
|
labels: {
|
289
247
|
'cluster_name' => CONTAINER_CLUSTER_NAME,
|
290
248
|
'namespace_id' => CONTAINER_NAMESPACE_ID,
|
@@ -297,10 +255,10 @@ module Constants
|
|
297
255
|
log_name: CONTAINER_CONTAINER_NAME,
|
298
256
|
project_id: PROJECT_ID,
|
299
257
|
labels: {
|
300
|
-
"#{
|
258
|
+
"#{CONTAINER_CONSTANTS[:service]}/namespace_name" =>
|
301
259
|
CONTAINER_NAMESPACE_NAME,
|
302
|
-
"#{
|
303
|
-
"#{
|
260
|
+
"#{CONTAINER_CONSTANTS[:service]}/pod_name" => CONTAINER_POD_NAME,
|
261
|
+
"#{CONTAINER_CONSTANTS[:service]}/stream" => CONTAINER_STREAM,
|
304
262
|
"label/#{CONTAINER_LABEL_KEY}" => CONTAINER_LABEL_VALUE,
|
305
263
|
"#{COMPUTE_CONSTANTS[:service]}/resource_name" => HOSTNAME
|
306
264
|
}
|
@@ -310,7 +268,7 @@ module Constants
|
|
310
268
|
# namespace and pod names.
|
311
269
|
CONTAINER_FROM_TAG_PARAMS = {
|
312
270
|
resource: {
|
313
|
-
type:
|
271
|
+
type: CONTAINER_CONSTANTS[:resource_type],
|
314
272
|
labels: {
|
315
273
|
'cluster_name' => CONTAINER_CLUSTER_NAME,
|
316
274
|
'namespace_id' => CONTAINER_NAMESPACE_NAME,
|
@@ -323,58 +281,14 @@ module Constants
|
|
323
281
|
log_name: CONTAINER_CONTAINER_NAME,
|
324
282
|
project_id: PROJECT_ID,
|
325
283
|
labels: {
|
326
|
-
"#{
|
284
|
+
"#{CONTAINER_CONSTANTS[:service]}/namespace_name" =>
|
327
285
|
CONTAINER_NAMESPACE_NAME,
|
328
|
-
"#{
|
329
|
-
"#{
|
330
|
-
"#{COMPUTE_CONSTANTS[:service]}/resource_name" => HOSTNAME
|
331
|
-
}
|
332
|
-
}
|
333
|
-
|
334
|
-
CONTAINER_FROM_APPLICATION_PARAMS = {
|
335
|
-
resource: {
|
336
|
-
type: GKE_CONSTANTS[:resource_type],
|
337
|
-
labels: {
|
338
|
-
'cluster_name' => CONTAINER_CLUSTER_NAME,
|
339
|
-
'namespace_id' => CONTAINER_NAMESPACE_ID,
|
340
|
-
'instance_id' => VM_ID,
|
341
|
-
'pod_id' => CONTAINER_POD_ID,
|
342
|
-
'container_name' => CONTAINER_CONTAINER_NAME,
|
343
|
-
'zone' => ZONE
|
344
|
-
}
|
345
|
-
},
|
346
|
-
log_name: 'redis',
|
347
|
-
project_id: PROJECT_ID,
|
348
|
-
labels: {
|
286
|
+
"#{CONTAINER_CONSTANTS[:service]}/pod_name" => CONTAINER_POD_NAME,
|
287
|
+
"#{CONTAINER_CONSTANTS[:service]}/stream" => CONTAINER_STREAM,
|
349
288
|
"#{COMPUTE_CONSTANTS[:service]}/resource_name" => HOSTNAME
|
350
289
|
}
|
351
290
|
}
|
352
291
|
|
353
|
-
# Docker Container.
|
354
|
-
DOCKER_CONTAINER_PARAMS = {
|
355
|
-
resource: {
|
356
|
-
type: DOCKER_CONSTANTS[:resource_type],
|
357
|
-
labels: {
|
358
|
-
'container_id' => DOCKER_CONTAINER_ID,
|
359
|
-
'location' => ZONE
|
360
|
-
}
|
361
|
-
},
|
362
|
-
log_name: 'test',
|
363
|
-
project_id: PROJECT_ID,
|
364
|
-
labels: {
|
365
|
-
"#{DOCKER_CONSTANTS[:service]}/stream" => DOCKER_CONTAINER_STREAM_STDOUT
|
366
|
-
}
|
367
|
-
}
|
368
|
-
DOCKER_CONTAINER_PARAMS_WITH_STREAM_STDERR = DOCKER_CONTAINER_PARAMS.merge(
|
369
|
-
labels: DOCKER_CONTAINER_PARAMS[:labels].merge(
|
370
|
-
"#{DOCKER_CONSTANTS[:service]}/stream" => DOCKER_CONTAINER_STREAM_STDERR
|
371
|
-
)
|
372
|
-
)
|
373
|
-
DOCKER_CONTAINER_PARAMS_WITH_NO_STREAM = DOCKER_CONTAINER_PARAMS.merge(
|
374
|
-
labels: {}
|
375
|
-
)
|
376
|
-
|
377
|
-
# Cloud Functions.
|
378
292
|
CLOUDFUNCTIONS_TAG = "kubernetes.#{CLOUDFUNCTIONS_POD_NAME}_" \
|
379
293
|
"#{CLOUDFUNCTIONS_NAMESPACE_NAME}_" \
|
380
294
|
"#{CLOUDFUNCTIONS_CONTAINER_NAME}"
|
@@ -391,8 +305,8 @@ module Constants
|
|
391
305
|
project_id: PROJECT_ID,
|
392
306
|
labels: {
|
393
307
|
'execution_id' => CLOUDFUNCTIONS_EXECUTION_ID,
|
394
|
-
"#{
|
395
|
-
"#{
|
308
|
+
"#{CONTAINER_CONSTANTS[:service]}/instance_id" => VM_ID,
|
309
|
+
"#{CONTAINER_CONSTANTS[:service]}/cluster_name" =>
|
396
310
|
CLOUDFUNCTIONS_CLUSTER_NAME,
|
397
311
|
"#{COMPUTE_CONSTANTS[:service]}/resource_id" => VM_ID,
|
398
312
|
"#{COMPUTE_CONSTANTS[:service]}/resource_name" => HOSTNAME,
|
@@ -411,8 +325,8 @@ module Constants
|
|
411
325
|
log_name: 'cloud-functions',
|
412
326
|
project_id: PROJECT_ID,
|
413
327
|
labels: {
|
414
|
-
"#{
|
415
|
-
"#{
|
328
|
+
"#{CONTAINER_CONSTANTS[:service]}/instance_id" => VM_ID,
|
329
|
+
"#{CONTAINER_CONSTANTS[:service]}/cluster_name" =>
|
416
330
|
CLOUDFUNCTIONS_CLUSTER_NAME,
|
417
331
|
"#{COMPUTE_CONSTANTS[:service]}/resource_id" => VM_ID,
|
418
332
|
"#{COMPUTE_CONSTANTS[:service]}/resource_name" => HOSTNAME,
|
@@ -420,7 +334,6 @@ module Constants
|
|
420
334
|
}
|
421
335
|
}
|
422
336
|
|
423
|
-
# Cloud Dataflow.
|
424
337
|
DATAFLOW_PARAMS = {
|
425
338
|
resource: {
|
426
339
|
type: DATAFLOW_CONSTANTS[:resource_type],
|
@@ -440,7 +353,6 @@ module Constants
|
|
440
353
|
}
|
441
354
|
}
|
442
355
|
|
443
|
-
# Cloud Dataproc.
|
444
356
|
DATAPROC_PARAMS = {
|
445
357
|
resource: {
|
446
358
|
type: DATAPROC_CONSTANTS[:resource_type],
|
@@ -459,7 +371,6 @@ module Constants
|
|
459
371
|
}
|
460
372
|
}
|
461
373
|
|
462
|
-
# Cloud ML.
|
463
374
|
ML_PARAMS = {
|
464
375
|
resource: {
|
465
376
|
type: ML_CONSTANTS[:resource_type],
|
@@ -570,50 +481,4 @@ module Constants
|
|
570
481
|
'' => '_'
|
571
482
|
}
|
572
483
|
ALL_TAGS = VALID_TAGS.merge(INVALID_TAGS)
|
573
|
-
|
574
|
-
# Stub value for Monitored resources from Metadata Agent.
|
575
|
-
# Map from the local_resource_id to the retrieved monitored resource.
|
576
|
-
MONITORED_RESOURCE_STUBS = {
|
577
|
-
# Implicit GCE instance.
|
578
|
-
IMPLICIT_LOCAL_RESOURCE_ID =>
|
579
|
-
{
|
580
|
-
'type' => COMPUTE_CONSTANTS[:resource_type],
|
581
|
-
'labels' => {
|
582
|
-
'zone' => METADATA_ZONE,
|
583
|
-
'instance_id' => METADATA_VM_ID
|
584
|
-
}
|
585
|
-
}.to_json,
|
586
|
-
# Docker container stderr / stdout logs.
|
587
|
-
"container.#{DOCKER_CONTAINER_ID}" =>
|
588
|
-
{
|
589
|
-
'type' => DOCKER_CONSTANTS[:resource_type],
|
590
|
-
'labels' => {
|
591
|
-
'location' => ZONE,
|
592
|
-
'container_id' => DOCKER_CONTAINER_ID
|
593
|
-
}
|
594
|
-
}.to_json,
|
595
|
-
# Docker container application logs.
|
596
|
-
"containerName.#{DOCKER_CONTAINER_NAME}" =>
|
597
|
-
{
|
598
|
-
'type' => DOCKER_CONSTANTS[:resource_type],
|
599
|
-
'labels' => {
|
600
|
-
'location' => ZONE,
|
601
|
-
'container_id' => DOCKER_CONTAINER_ID
|
602
|
-
}
|
603
|
-
}.to_json,
|
604
|
-
# GKE container logs.
|
605
|
-
"gke_containerName.#{CONTAINER_NAMESPACE_ID}.#{CONTAINER_POD_NAME}." \
|
606
|
-
"#{CONTAINER_CONTAINER_NAME}" =>
|
607
|
-
{
|
608
|
-
'type' => GKE_CONSTANTS[:resource_type],
|
609
|
-
'labels' => {
|
610
|
-
'cluster_name' => CONTAINER_CLUSTER_NAME,
|
611
|
-
'container_name' => CONTAINER_CONTAINER_NAME,
|
612
|
-
'instance_id' => VM_ID,
|
613
|
-
'namespace_id' => CONTAINER_NAMESPACE_ID,
|
614
|
-
'pod_id' => CONTAINER_POD_ID,
|
615
|
-
'zone' => ZONE
|
616
|
-
}
|
617
|
-
}.to_json
|
618
|
-
}
|
619
484
|
end
|