class Instana::Snapshot::FargateProcess
Describes the current process in terms of its existence inside of a Fargate container @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_process.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") @start_time = Time.now end
Public Instance Methods
data()
click to toggle source
# File lib/instana/snapshot/fargate_process.rb, line 21 def data proc_table = Sys::ProcTable.ps(pid: Process.pid) process = Backend::ProcessInfo.new(proc_table) { pid: process.pid.to_i, env: ENV.to_h, exec: process.name, args: process.arguments, user: process.uid, group: process.gid, start: @start_time.to_i * 1000, containerType: 'docker', container: container_id, "com.instana.plugin.host.name": task_id } end
entity_id()
click to toggle source
# File lib/instana/snapshot/fargate_process.rb, line 17 def entity_id Process.pid.to_s end
snapshot()
click to toggle source
# File lib/instana/snapshot/fargate_process.rb, line 39 def snapshot { name: ID, entityId: entity_id, data: data } end
Private Instance Methods
container_id()
click to toggle source
# File lib/instana/snapshot/fargate_process.rb, line 58 def container_id @container_id ||= lookup['DockerId'] end
lookup(resource = nil)
click to toggle source
# File lib/instana/snapshot/fargate_process.rb, line 49 def lookup(resource = nil) path = resource ? @metadata_uri.path + resource : @metadata_uri.path response = @client.send_request('GET', path) raise "Unable to get `#{path}`. Got `#{response.code}`." unless response.ok? response.json end
task_id()
click to toggle source
# File lib/instana/snapshot/fargate_process.rb, line 62 def task_id @task_id ||= lookup('/task')['TaskARN'] end