Sha256: ab5575925fad8fa7b3d7b1f07db5ddd69ef3a9f049f444d38ebad7c3d9270a09
Contents?: true
Size: 1.07 KB
Versions: 4
Compression:
Stored size: 1.07 KB
Contents
require 'ddtrace/ext/runtime' module Datadog module Runtime # For control groups module Cgroup LINE_REGEX = /^(\d+):([^:]*):(.+)$/.freeze Descriptor = Struct.new( :id, :groups, :path, :controllers ) module_function def descriptors(process = 'self') [].tap do |descriptors| begin filepath = "/proc/#{process}/cgroup" if File.exist?(filepath) File.foreach("/proc/#{process}/cgroup") do |line| line = line.strip descriptors << parse(line) unless line.empty? end end rescue StandardError => e Datadog.logger.error("Error while parsing cgroup. Cause: #{e.message} Location: #{e.backtrace.first}") end end end def parse(line) id, groups, path = line.scan(LINE_REGEX).first Descriptor.new(id, groups, path).tap do |descriptor| descriptor.controllers = groups.split(',') unless groups.nil? end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
ddtrace-0.50.0 | lib/ddtrace/runtime/cgroup.rb |
ddtrace-0.49.0 | lib/ddtrace/runtime/cgroup.rb |
ddtrace-0.48.0 | lib/ddtrace/runtime/cgroup.rb |
ddtrace-0.47.0 | lib/ddtrace/runtime/cgroup.rb |