Module: OpenTelemetry::Resource::Detector::Azure

Extended by:
Azure
Included in:
Azure
Defined in:
lib/opentelemetry/resource/detector/azure.rb,
lib/opentelemetry/resource/detector/azure/version.rb

Overview

Azure contains detect class method for determining Azure environment resource attributes

Constant Summary collapse

AZURE_METADATA_URI =
'http://169.254.169.254/metadata/instance/compute?api-version=2019-08-15'
VERSION =
'0.3.0'

Instance Method Summary collapse

Instance Method Details

#detectObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/opentelemetry/resource/detector/azure.rb', line 18

def detect
   = 
  resource_attributes = {}

  unless .nil?
    resource_attributes[OpenTelemetry::SemanticConventions::Resource::CLOUD_PROVIDER] = 'azure'
    resource_attributes[OpenTelemetry::SemanticConventions::Resource::CLOUD_ACCOUNT_ID] = ['subscriptionId']
    resource_attributes[OpenTelemetry::SemanticConventions::Resource::CLOUD_PLATFORM] = cloud_platform(['provider'])
    resource_attributes[OpenTelemetry::SemanticConventions::Resource::CLOUD_REGION] = ['location']
    resource_attributes[OpenTelemetry::SemanticConventions::Resource::CLOUD_AVAILABILITY_ZONE] = ['zone']

    resource_attributes[OpenTelemetry::SemanticConventions::Resource::HOST_ID] = ['vmId']
    resource_attributes[OpenTelemetry::SemanticConventions::Resource::HOST_IMAGE_ID] = .dig('storageProfile', 'imageReference', 'id')
    resource_attributes[OpenTelemetry::SemanticConventions::Resource::HOST_TYPE] = ['vmSize']
    resource_attributes[OpenTelemetry::SemanticConventions::Resource::HOST_NAME] = ['name']
  end

  resource_attributes.delete_if { |_key, value| value.nil? || value.empty? }
  OpenTelemetry::SDK::Resources::Resource.create(resource_attributes)
end