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) {