Commit b6d75b29 authored by Pawel Chojnacki's avatar Pawel Chojnacki

remove common Base Sampler code

parent f464adaa
...@@ -14,8 +14,6 @@ the settings page with a default template. To configure the template, see the ...@@ -14,8 +14,6 @@ the settings page with a default template. To configure the template, see the
## Requirements ## Requirements
[supported performance metrics](https://docs.gitlab.com/ee/user/project/integrations/prometheus_library/metrics.html)
Integration with Prometheus requires the following: Integration with Prometheus requires the following:
1. GitLab 9.0 or higher 1. GitLab 9.0 or higher
......
...@@ -2,20 +2,7 @@ require 'logger' ...@@ -2,20 +2,7 @@ require 'logger'
module Gitlab module Gitlab
module Metrics module Metrics
module Samplers module Samplers
class BaseSampler class BaseSampler < Daemon
def self.initialize_instance(*args)
raise "#{name} singleton instance already initialized" if @instance
@instance = new(*args)
at_exit(&@instance.method(:stop))
@instance
end
def self.instance
@instance
end
attr_reader :running
# interval - The sampling interval in seconds. # interval - The sampling interval in seconds.
def initialize(interval) def initialize(interval)
interval_half = interval.to_f / 2 interval_half = interval.to_f / 2
...@@ -23,44 +10,7 @@ module Gitlab ...@@ -23,44 +10,7 @@ module Gitlab
@interval = interval @interval = interval
@interval_steps = (-interval_half..interval_half).step(0.1).to_a @interval_steps = (-interval_half..interval_half).step(0.1).to_a
@mutex = Mutex.new super()
end
def enabled?
true
end
def start
return unless enabled?
@mutex.synchronize do
return if running
@running = true
@thread = Thread.new do
sleep(sleep_interval)
while running
safe_sample
sleep(sleep_interval)
end
end
end
end
def stop
@mutex.synchronize do
return unless running
@running = false
if @thread
@thread.wakeup if @thread.alive?
@thread.join
@thread = nil
end
end
end end
def safe_sample def safe_sample
...@@ -90,7 +40,22 @@ module Gitlab ...@@ -90,7 +40,22 @@ module Gitlab
end end
end end
end end
private
def start_working
@running = true
sleep(sleep_interval)
while running
safe_sample
end
end
def stop_working
@running = false
end
end end
end end
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment