Skip to content
Snippets Groups Projects
Commit c02547aa authored by Ahmad Sherif's avatar Ahmad Sherif
Browse files

Refactor memory monitoring to behave like git probing

parent 9f8e7ffd
No related branches found
No related tags found
1 merge request!4Add a memory monitor
Pipeline #
Loading
Loading
@@ -9,5 +9,6 @@ module GitLab
autoload :DatabaseDeadTuplesCollector, "gitlab_monitor/database_dead_tuples"
autoload :DatabaseDeadTuplesProber, "gitlab_monitor/database_dead_tuples"
autoload :ProcessMemory, "gitlab_monitor/process_memory"
autoload :ProcessMemoryProber, "gitlab_monitor/process_memory"
end
end
Loading
Loading
@@ -150,17 +150,9 @@ module GitLab
end
 
def run
memory = ::GitLab::Monitor::ProcessMemory.new(@pid)
metrics = PrometheusMetrics.new
@fields.each do |field|
value = memory[field]
next unless value
metrics.add("process_memory", value, field: field, process_name: @name)
end
@target.write(metrics.to_s)
::GitLab::Monitor::ProcessMemoryProber.new(pid: @pid, fields: @fields, name: @name)
.probe_memory
.write_to(@target)
end
end
 
Loading
Loading
Loading
Loading
@@ -34,5 +34,30 @@ module GitLab
nil
end
end
# Probes a process for memory then writes metrics to a target
class ProcessMemoryProber
def initialize(options, metrics: PrometheusMetrics.new)
@metrics = metrics
@fields = options[:fields]
@name = options[:name]
@memory = ProcessMemory.new(options[:pid])
end
def probe_memory
@fields.each do |field|
value = @memory[field]
next unless value
@metrics.add("#{@name.downcase}_memory_bytes", value, field: field)
end
self
end
def write_to(target)
target.write(@metrics.to_s)
end
end
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment