class Splash::Daemon::Metrics::Manager
Attributes
execution_count[R]
metric : commands executions count during Splash
daemon uptime
monitoring_logs_count[R]
metric : logs monitoring count during Splash
daemon uptime
monitoring_processes_count[R]
metric : processes monitoring count during Splash
daemon uptime
Public Class Methods
new(options ={})
click to toggle source
Constructor prepare prometheus-client, defined metrics and init attributes
# File lib/splash/daemon/metrics.rb, line 35 def initialize(options ={}) @session = options[:session] @config = get_config @starttime = Time.now @execution_count = 0 @monitoring_logs_count = 0 @monitoring_processes_count = 0 @registry = Prometheus::Client::Registry::new @metric_uptime = Prometheus::Client::Gauge.new(:splash_uptime, docstring: 'SPLASH self metric uptime') @metric_execution = Prometheus::Client::Gauge.new(:splash_execution, docstring: 'SPLASH self metric total commands execution count') @metric_logs_monitoring = Prometheus::Client::Gauge.new(:splash_logs_monitoring, docstring: 'SPLASH self metric total logs monitoring count') @metric_processes_monitoring = Prometheus::Client::Gauge.new(:splash_processes_monitoring, docstring: 'SPLASH self metric total processes monitoring count') @registry.register(@metric_uptime) @registry.register(@metric_execution) @registry.register(@metric_logs_monitoring) @registry.register(@metric_processes_monitoring) end
Public Instance Methods
inc_execution()
click to toggle source
increment metric : execution_count
# File lib/splash/daemon/metrics.rb, line 61 def inc_execution @execution_count += 1 end
inc_logs_monitoring()
click to toggle source
increment metric : monitoring_logs_count
# File lib/splash/daemon/metrics.rb, line 66 def inc_logs_monitoring @monitoring_logs_count += 1 end
inc_processes_monitoring()
click to toggle source
increment metric : monitoring_processes_count
# File lib/splash/daemon/metrics.rb, line 71 def inc_processes_monitoring @monitoring_processes_count += 1 end
notify()
click to toggle source
Send metrics to Prometheus PushGateway @return [Hash] Exiter
case ( :service_dependence_missing , :quiet_exit)
# File lib/splash/daemon/metrics.rb, line 77 def notify log = get_logger unless verify_service url: @config.prometheus_pushgateway_url then return { :case => :service_dependence_missing, :more => "Prometheus Notification not send." } end log.ok "Sending Splash self metrics to PushGateway." , @session @metric_uptime.set uptime @metric_execution.set execution_count @metric_logs_monitoring.set monitoring_logs_count @metric_processes_monitoring.set monitoring_processes_count hostname = Socket.gethostname url = @config.prometheus_pushgateway_url Prometheus::Client::Push.new('Splash',hostname, url).add(@registry) log.debug "Sending to Prometheus PushGateway done.", @session return {:case => :quiet_exit } end
uptime()
click to toggle source
virtual accessor uptime
# File lib/splash/daemon/metrics.rb, line 56 def uptime return Time.now - @starttime end