test/plugin/constants.rb in fluent-plugin-google-cloud-0.6.3 vs test/plugin/constants.rb in fluent-plugin-google-cloud-0.6.4.pre.1

- old
+ new

@@ -21,10 +21,11 @@ # TODO(qingling128) Separate constants into different submodules. # Attributes used for the GCE metadata service. PROJECT_ID = 'test-project-id' ZONE = 'us-central1-b' + ZONE2 = 'us-central1-c' FULLY_QUALIFIED_ZONE = 'projects/' + PROJECT_ID + '/zones/' + ZONE VM_ID = '9876543210' # Attributes used for custom (overridden) configs. CUSTOM_PROJECT_ID = 'test-custom-project-id' @@ -49,10 +50,23 @@ # Managed VMs specific labels. MANAGED_VM_BACKEND_NAME = 'default' MANAGED_VM_BACKEND_VERSION = 'guestbook2.0' + # Docker Container labels. + DOCKER_CONTAINER_ID = '0d0f03ff8d3c42688692536d1af77a28cd135c0a5c531f25a31' + DOCKER_CONTAINER_ID2 = '42688692536d1af77a28cd135c0a5c531f25a0317d37da427e3' + DOCKER_CONTAINER_NAME = 'happy_hippo' + DOCKER_CONTAINER_NAME2 = 'sad_panda' + DOCKER_CONTAINER_STREAM_STDOUT = 'stdout' + DOCKER_CONTAINER_STREAM_STDERR = 'stderr' + # Timestamp for 1234567890 seconds and 987654321 nanoseconds since epoch. + DOCKER_CONTAINER_TIMESTAMP = '2009-02-13T23:31:30.987654321Z' + DOCKER_CONTAINER_SECONDS_EPOCH = 1_234_567_890 + DOCKER_CONTAINER_NANOS = 987_654_321 + DOCKER_CONTAINER_APPLICATION_LOG_TAG = 'nginx-access-log' + # Container Engine / Kubernetes specific labels. CONTAINER_CLUSTER_NAME = 'cluster-1' CONTAINER_NAMESPACE_ID = '898268c8-4a36-11e5-9d81-42010af0194c' CONTAINER_NAMESPACE_NAME = 'kube-system' CONTAINER_POD_ID = 'cad3c3c4-4b9c-11e5-9d81-42010af0194c' @@ -81,10 +95,15 @@ DATAFLOW_JOB_NAME = 'job_name_1' DATAFLOW_JOB_ID = 'job_id_1' DATAFLOW_STEP_ID = 'step_1' DATAFLOW_TAG = 'dataflow.googleapis.com/worker' + # Dataproc specific labels. + DATAPROC_CLUSTER_NAME = 'test-cluster' + DATAPROC_CLUSTER_UUID = '00000000-0000-0000-0000-000000000000' + DATAPROC_REGION = 'unittest' + # ML specific labels. ML_REGION = 'us-central1' ML_JOB_ID = 'job_name_1' ML_TASK_NAME = 'task_name_1' ML_TRIAL_ID = 'trial_id_1' @@ -133,10 +152,18 @@ NO_DETECT_SUBSERVICE_CONFIG = %( detect_subservice false ) + ENABLE_METADATA_AGENT_CONFIG = %( + enable_metadata_agent true + ) + + DISABLE_METADATA_AGENT_CONFIG = %( + enable_metadata_agent false + ) + CUSTOM_METADATA_CONFIG = %( project_id #{CUSTOM_PROJECT_ID} zone #{CUSTOM_ZONE} vm_id #{CUSTOM_VM_ID} vm_name #{CUSTOM_HOSTNAME} @@ -185,10 +212,12 @@ } label_map { "name": "#{ML_CONSTANTS[:service]}/job_id/log_area" } ) # Service configurations for various services. + + # GCE. COMPUTE_PARAMS = { resource: { type: COMPUTE_CONSTANTS[:resource_type], labels: { 'instance_id' => VM_ID, @@ -200,10 +229,11 @@ labels: { "#{COMPUTE_CONSTANTS[:service]}/resource_name" => HOSTNAME } } + # GAE. VMENGINE_PARAMS = { resource: { type: APPENGINE_CONSTANTS[:resource_type], labels: { 'module_id' => MANAGED_VM_BACKEND_NAME, @@ -217,10 +247,11 @@ "#{COMPUTE_CONSTANTS[:service]}/resource_name" => HOSTNAME, "#{COMPUTE_CONSTANTS[:service]}/zone" => ZONE } } + # GKE Container. CONTAINER_TAG = "kubernetes.#{CONTAINER_POD_NAME}_" \ "#{CONTAINER_NAMESPACE_NAME}_#{CONTAINER_CONTAINER_NAME}" CONTAINER_FROM_METADATA_PARAMS = { resource: { @@ -269,10 +300,64 @@ "#{CONTAINER_CONSTANTS[:service]}/stream" => CONTAINER_STREAM, "#{COMPUTE_CONSTANTS[:service]}/resource_name" => HOSTNAME } } + # Docker Container. + DOCKER_CONTAINER_TAG = "container.#{DOCKER_CONTAINER_ID}." \ + "#{DOCKER_CONTAINER_NAME}" + DOCKER_CONTAINER_TAG_WITH_APPLICATION = + "application-container.#{DOCKER_CONTAINER_NAME}." \ + "#{DOCKER_CONTAINER_APPLICATION_LOG_TAG}" + + DOCKER_CONTAINER_PARAMS = { + resource: { + type: DOCKER_CONSTANTS[:resource_type], + labels: { + 'container_id' => DOCKER_CONTAINER_ID, + 'location' => ZONE + } + }, + log_name: "container.#{DOCKER_CONTAINER_ID}.#{DOCKER_CONTAINER_NAME}", + project_id: PROJECT_ID, + labels: { + "#{COMPUTE_CONSTANTS[:service]}/resource_id" => VM_ID, + "#{COMPUTE_CONSTANTS[:service]}/resource_name" => HOSTNAME, + "#{DOCKER_CONSTANTS[:service]}/container_name" => DOCKER_CONTAINER_NAME + } + } + DOCKER_CONTAINER_PARAMS_WITH_STREAM_STDOUT = DOCKER_CONTAINER_PARAMS.merge( + labels: DOCKER_CONTAINER_PARAMS[:labels].merge( + "#{DOCKER_CONSTANTS[:service]}/stream" => DOCKER_CONTAINER_STREAM_STDOUT + ) + ) + DOCKER_CONTAINER_PARAMS_WITH_METADATA_OVERWRITTEN = \ + DOCKER_CONTAINER_PARAMS.merge( + resource: DOCKER_CONTAINER_PARAMS[:resource].merge( + labels: DOCKER_CONTAINER_PARAMS[:resource][:labels].merge( + 'container_id' => DOCKER_CONTAINER_ID2 + ) + ), + labels: DOCKER_CONTAINER_PARAMS[:labels].merge( + "#{DOCKER_CONSTANTS[:service]}/container_name" => + DOCKER_CONTAINER_NAME2, + "#{DOCKER_CONSTANTS[:service]}/stream" => + DOCKER_CONTAINER_STREAM_STDERR + ) + ) + DOCKER_CONTAINER_PARAMS_WITH_ZONE2 = DOCKER_CONTAINER_PARAMS.merge( + resource: DOCKER_CONTAINER_PARAMS[:resource].merge( + labels: DOCKER_CONTAINER_PARAMS[:resource][:labels].merge( + 'location' => ZONE2 + ) + ) + ) + DOCKER_CONTAINER_WITH_APPLICATION_PARAMS = DOCKER_CONTAINER_PARAMS.merge( + log_name: DOCKER_CONTAINER_TAG_WITH_APPLICATION + ) + + # Cloud Functions. CLOUDFUNCTIONS_TAG = "kubernetes.#{CLOUDFUNCTIONS_POD_NAME}_" \ "#{CLOUDFUNCTIONS_NAMESPACE_NAME}_" \ "#{CLOUDFUNCTIONS_CONTAINER_NAME}" CLOUDFUNCTIONS_PARAMS = { @@ -314,10 +399,11 @@ "#{COMPUTE_CONSTANTS[:service]}/resource_name" => HOSTNAME, "#{COMPUTE_CONSTANTS[:service]}/zone" => ZONE } } + # Cloud Dataflow. DATAFLOW_PARAMS = { resource: { type: DATAFLOW_CONSTANTS[:resource_type], labels: { 'job_name' => DATAFLOW_JOB_NAME, @@ -333,10 +419,30 @@ "#{COMPUTE_CONSTANTS[:service]}/resource_name" => HOSTNAME, "#{COMPUTE_CONSTANTS[:service]}/zone" => ZONE } } + # Cloud Dataproc. + DATAPROC_PARAMS = { + resource: { + type: DATAPROC_CONSTANTS[:resource_type], + labels: { + 'cluster_name' => DATAPROC_CLUSTER_NAME, + 'cluster_uuid' => DATAPROC_CLUSTER_UUID, + 'region' => DATAPROC_REGION + } + }, + log_name: 'test', + project_id: PROJECT_ID, + labels: { + "#{COMPUTE_CONSTANTS[:service]}/resource_name" => HOSTNAME, + "#{COMPUTE_CONSTANTS[:service]}/resource_id" => VM_ID, + "#{COMPUTE_CONSTANTS[:service]}/zone" => ZONE + } + } + + # Cloud ML. ML_PARAMS = { resource: { type: ML_CONSTANTS[:resource_type], labels: { 'job_id' => ML_JOB_ID, @@ -419,6 +525,43 @@ "#{[0x92].pack('C*')}" => '%20', # Empty string tag. '' => '_' } ALL_TAGS = VALID_TAGS.merge(INVALID_TAGS) + + # Stub value for Monitored resources from Metadata Agent. + MONITORED_RESOURCE_STUBS = { + # Implicit GCE instance. + IMPLICIT_MONITORED_RESOURCE_UNIQUE_KEY => { + 'unique_id' => IMPLICIT_MONITORED_RESOURCE_UNIQUE_KEY, + 'monitored_resource' => '{' \ + "\"type\": \"#{COMPUTE_CONSTANTS[:resource_type]}\"," \ + '"labels": {' \ + "\"zone\": \"#{ZONE}\"," \ + "\"instance_id\": \"#{VM_ID}\"" \ + '}' \ + '}' + }, + # Docker container stderr / stdout logs. + DOCKER_CONSTANTS[:resource_type] => { + 'unique_id' => "container.#{DOCKER_CONTAINER_ID}", + 'monitored_resource' => '{' \ + "\"type\": \"#{DOCKER_CONSTANTS[:resource_type]}\"," \ + '"labels": {' \ + "\"location\": \"#{ZONE2}\"," \ + "\"container_id\": \"#{DOCKER_CONTAINER_ID}\"" \ + '}' \ + '}' + }, + # Docker container application logs. + "#{DOCKER_CONSTANTS[:resource_type]}_application" => { + 'unique_id' => "containerName.#{DOCKER_CONTAINER_NAME}", + 'monitored_resource' => '{' \ + "\"type\": \"#{DOCKER_CONSTANTS[:resource_type]}\"," \ + '"labels": {' \ + "\"location\": \"#{ZONE}\"," \ + "\"container_id\": \"#{DOCKER_CONTAINER_ID}\"" \ + '}' \ + '}' + } + } end