test/plugin/base_test.rb in fluent-plugin-google-cloud-0.6.15 vs test/plugin/base_test.rb in fluent-plugin-google-cloud-0.6.16
- old
+ new
@@ -114,10 +114,34 @@
assert_equal partial_success,
d.instance.instance_variable_get(:@partial_success)
end
end
+ def test_metadata_agent_url_customization
+ [
+ # If @metadata_agent_url is set, use that even if the environment
+ # variable is set.
+ [CUSTOM_METADATA_AGENT_URL_CONFIG, true, CUSTOM_METADATA_AGENT_URL],
+ # If @metadata_agent_url is set and the environment variable is
+ # not set, use @metadata_agent_url.
+ [CUSTOM_METADATA_AGENT_URL_CONFIG, false, CUSTOM_METADATA_AGENT_URL],
+ # If @metadata_agent_url is not set and the environment variable is set,
+ # use the env.
+ [APPLICATION_DEFAULT_CONFIG, true, METADATA_AGENT_URL_FROM_ENV],
+ # If @metadata_agent_url is not set and the environment variable is
+ # not set, fall back to the default.
+ [APPLICATION_DEFAULT_CONFIG, false, DEFAULT_METADATA_AGENT_URL]
+ ].each do |(config, url_from_env, expected_url)|
+ ENV[METADATA_AGENT_URL_ENV_VAR] = METADATA_AGENT_URL_FROM_ENV if
+ url_from_env
+ setup_gce_metadata_stubs
+ d = create_driver(ENABLE_METADATA_AGENT_CONFIG + config)
+ assert_equal expected_url, d.instance.metadata_agent_url
+ ENV.delete(METADATA_AGENT_URL_ENV_VAR)
+ end
+ end
+
def test_metadata_loading
setup_gce_metadata_stubs
d = create_driver
d.run
assert_equal PROJECT_ID, d.instance.project_id
@@ -1258,11 +1282,11 @@
end
end
# Test logs from applications running in Docker containers. These logs have
# the label "logging.googleapis.com/local_resource_id" set in the format of
- # "containerName.<container_name>".
+ # "container.<container_name>".
def test_docker_container_application_logs
new_stub_context do
setup_gce_metadata_stubs
setup_metadata_agent_stubs
setup_logging_stubs do
@@ -1272,11 +1296,11 @@
d.emit(docker_container_application_log_entry(log_entry(0)))
d.run
end
verify_log_entries(1, DOCKER_CONTAINER_PARAMS_NO_STREAM)
assert_requested_metadata_agent_stub(
- "containerName.#{DOCKER_CONTAINER_NAME}")
+ "#{DOCKER_CONTAINER_LOCAL_RESOURCE_ID_PREFIX}.#{DOCKER_CONTAINER_NAME}")
end
end
# Test that the 'time' field from the json record is extracted and set to
# entry.timestamp for Docker container logs.
@@ -1296,11 +1320,11 @@
entry['timestamp']['seconds'], entry
assert_equal DOCKER_CONTAINER_NANOS,
entry['timestamp']['nanos'], entry
end
assert_requested_metadata_agent_stub(
- "containerName.#{DOCKER_CONTAINER_NAME}")
+ "#{DOCKER_CONTAINER_LOCAL_RESOURCE_ID_PREFIX}.#{DOCKER_CONTAINER_NAME}")
end
end
# Test that the 'source' field is properly extracted from the record json and
# set as a common label 'stream'.
@@ -1331,11 +1355,11 @@
end
end
# Test GKE container logs. These logs have the label
# "logging.googleapis.com/local_resource_id" set in the format of
- # "gke_containerName.<namespace_id>.<pod_name>.<container_name>".
+ # "gke_container.<namespace_id>.<pod_name>.<container_name>".
def test_gke_container_logs
[1, 2, 3, 5, 11, 50].each do |n|
new_stub_context do
setup_gce_metadata_stubs
setup_container_metadata_stubs
@@ -1347,12 +1371,12 @@
end
d.run
end
verify_log_entries(n, CONTAINER_FROM_APPLICATION_PARAMS)
assert_requested_metadata_agent_stub(
- "gke_containerName.#{CONTAINER_NAMESPACE_ID}.#{CONTAINER_POD_NAME}." \
- "#{CONTAINER_CONTAINER_NAME}")
+ "#{CONTAINER_LOCAL_RESOURCE_ID_PREFIX}.#{CONTAINER_NAMESPACE_ID}" \
+ ".#{CONTAINER_POD_NAME}.#{CONTAINER_CONTAINER_NAME}")
end
end
end
private
@@ -1531,11 +1555,11 @@
def gke_container_log_entry(log)
{
log: log,
LOCAL_RESOURCE_ID_KEY =>
- "gke_containerName.#{CONTAINER_NAMESPACE_ID}" \
+ "#{CONTAINER_LOCAL_RESOURCE_ID_PREFIX}.#{CONTAINER_NAMESPACE_ID}" \
".#{CONTAINER_POD_NAME}.#{CONTAINER_CONTAINER_NAME}"
}
end
# Docker Container.
@@ -1557,10 +1581,11 @@
def docker_container_application_log_entry(log)
{
log: log,
time: DOCKER_CONTAINER_TIMESTAMP,
- LOCAL_RESOURCE_ID_KEY => "containerName.#{DOCKER_CONTAINER_NAME}"
+ LOCAL_RESOURCE_ID_KEY => "#{DOCKER_CONTAINER_LOCAL_RESOURCE_ID_PREFIX}." \
+ "#{DOCKER_CONTAINER_NAME}"
}
end
def cloudfunctions_log_entry(i)
{