class Instana::Snapshot::FargateTask
Describes the current process in terms of its existence inside of a Fargate task @since 1.197.0
Constants
- ID
Public Class Methods
new(metadata_uri: ENV['ECS_CONTAINER_METADATA_URI'])
click to toggle source
# File lib/instana/snapshot/fargate_task.rb, line 11 def initialize(metadata_uri: ENV['ECS_CONTAINER_METADATA_URI']) @metadata_uri = URI(metadata_uri) @client = Backend::RequestClient.new(@metadata_uri.host, @metadata_uri.port, use_ssl: @metadata_uri.scheme == "https") end
Public Instance Methods
data()
click to toggle source
# File lib/instana/snapshot/fargate_task.rb, line 21 def data { taskArn: task_metadata['TaskARN'], clusterArn: task_metadata['Cluster'], taskDefinition: task_metadata['Family'], taskDefinitionVersion: task_metadata['Revision'], availabilityZone: task_metadata['AvailabilityZone'], desiredStatus: task_metadata['DesiredStatus'], knownStatus: task_metadata['KnownStatus'], pullStartedAt: task_metadata['PullStartedAt'], pullStoppedAt: task_metadata['PullStoppedAt'], instanaZone: instana_zone, tags: instana_tags }.reject { |_, v| v.nil? } end
entity_id()
click to toggle source
# File lib/instana/snapshot/fargate_task.rb, line 16 def entity_id task_metadata['TaskARN'] end
Also aliased as: host_name
snapshot()
click to toggle source
# File lib/instana/snapshot/fargate_task.rb, line 37 def snapshot { name: ID, entityId: entity_id, data: data } end
Private Instance Methods
instana_zone()
click to toggle source
# File lib/instana/snapshot/fargate_task.rb, line 51 def instana_zone ENV['INSTANA_ZONE'] end
lookup(resource)
click to toggle source
# File lib/instana/snapshot/fargate_task.rb, line 62 def lookup(resource) path = @metadata_uri.path + resource response = @client.send_request('GET', path) raise "Unable to get `#{path}`. Got `#{response.code}`." unless response.ok? response.json end
task_metadata()
click to toggle source
# File lib/instana/snapshot/fargate_task.rb, line 47 def task_metadata lookup('/task') end