Module: OpenTelemetry::Resource::Detectors::GoogleCloudPlatform
- Extended by:
- GoogleCloudPlatform
- Included in:
- GoogleCloudPlatform
- Defined in:
- lib/opentelemetry/resource/detectors/google_cloud_platform.rb
Overview
GoogleCloudPlatform contains detect class method for determining gcp environment resource labels
Instance Method Summary collapse
-
#detect ⇒ Object
rubocop:disable Metrics/AbcSize.
Instance Method Details
#detect ⇒ Object
rubocop:disable Metrics/AbcSize
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/opentelemetry/resource/detectors/google_cloud_platform.rb', line 16 def detect # rubocop:disable Metrics/AbcSize gcp_env = Google::Cloud::Env.new resource_labels = {} resource_constants = OpenTelemetry::SDK::Resources::Constants if gcp_env.compute_engine? resource_labels[resource_constants::CLOUD_RESOURCE[:provider]] = 'gcp' resource_labels[resource_constants::CLOUD_RESOURCE[:account_id]] = gcp_env.project_id resource_labels[resource_constants::CLOUD_RESOURCE[:region]] = gcp_env.instance_attribute('cluster-location') resource_labels[resource_constants::CLOUD_RESOURCE[:zone]] = gcp_env.instance_zone resource_labels[resource_constants::HOST_RESOURCE[:hostname]] = hostname resource_labels[resource_constants::HOST_RESOURCE[:id]] = gcp_env.('instance', 'id') resource_labels[resource_constants::HOST_RESOURCE[:name]] = gcp_env.('instance', 'hostname') end if gcp_env.kubernetes_engine? resource_labels[resource_constants::K8S_RESOURCE[:cluster_name]] = gcp_env.instance_attribute('cluster-name') resource_labels[resource_constants::K8S_RESOURCE[:namespace_name]] = gcp_env.kubernetes_engine_namespace_id resource_labels[resource_constants::K8S_RESOURCE[:pod_name]] = hostname resource_labels[resource_constants::CONTAINER_RESOURCE[:name]] = ENV['CONTAINER_NAME'] end resource_labels.delete_if { |_key, value| value.nil? || value.empty? } OpenTelemetry::SDK::Resources::Resource.create(resource_labels) end |