Class: Karafka::Web::Tracking::Consumers::Sampler::Metrics::Container
- Defined in:
- lib/karafka/web/tracking/consumers/sampler/metrics/container.rb
Overview
Collects metrics from containerized environments (Docker, Kubernetes) Extends OS metrics with container-aware memory limit detection from cgroups Supports both cgroups v1 and v2
Class Method Summary collapse
-
.active? ⇒ Boolean
Checks if running in a containerized environment with cgroups.
-
.memory_limit ⇒ Integer?
Gets the memory limit for the container.
Instance Method Summary collapse
-
#memory_size ⇒ Integer
In containerized environments, returns the container’s memory limit from cgroups.
Methods inherited from Os
#cpu_usage, #cpus, #initialize, #memory_threads_ps, #memory_total_usage, #memory_usage, #threads
Constructor Details
This class inherits a constructor from Karafka::Web::Tracking::Consumers::Sampler::Metrics::Os
Class Method Details
.active? ⇒ Boolean
Checks if running in a containerized environment with cgroups
35 36 37 |
# File 'lib/karafka/web/tracking/consumers/sampler/metrics/container.rb', line 35 def active? !cgroup_version.nil? end |
.memory_limit ⇒ Integer?
Gets the memory limit for the container
41 42 43 44 45 46 47 48 49 50 |
# File 'lib/karafka/web/tracking/consumers/sampler/metrics/container.rb', line 41 def memory_limit return @memory_limit if instance_variable_defined?(:@memory_limit) @memory_limit = case cgroup_version when :v2 read_cgroup_v2_memory_limit when :v1 read_cgroup_v1_memory_limit end end |
Instance Method Details
#memory_size ⇒ Integer
Memoized at instance level to avoid repeated class method calls
In containerized environments, returns the container’s memory limit from cgroups. Falls back to host memory if no limit is set.
104 105 106 |
# File 'lib/karafka/web/tracking/consumers/sampler/metrics/container.rb', line 104 def memory_size @memory_size ||= self.class.memory_limit || super end |