module Datadog::Runtime::Container
For container environments
Constants
- CONTAINER_PATTERN
- CONTAINER_REGEX
- Descriptor
- POD_REGEX
- UUID_PATTERN
Public Instance Methods
container_id()
click to toggle source
# File lib/ddtrace/runtime/container.rb, line 26 def container_id descriptor.container_id end
descriptor()
click to toggle source
# File lib/ddtrace/runtime/container.rb, line 34 def descriptor @descriptor ||= begin Descriptor.new.tap do |descriptor| begin Cgroup.descriptors.each do |cgroup_descriptor| # Parse container data from cgroup descriptor path = cgroup_descriptor.path next if path.nil? # Split path into parts parts = path.split('/') parts.shift # Remove leading empty part next if parts.length < 2 # Read info from path platform = parts[0] container_id = parts[-1][CONTAINER_REGEX] task_uid = parts[-2][POD_REGEX] # If container ID wasn't found, ignore. # Path might describe a non-container environment. next if container_id.nil? descriptor.platform = platform descriptor.container_id = container_id descriptor.task_uid = task_uid break end rescue StandardError => e Datadog.logger.error( "Error while parsing container info. Cause: #{e.message} Location: #{e.backtrace.first}" ) end end end end
platform()
click to toggle source
# File lib/ddtrace/runtime/container.rb, line 22 def platform descriptor.platform end
task_uid()
click to toggle source
# File lib/ddtrace/runtime/container.rb, line 30 def task_uid descriptor.task_uid end