Sha256: de6fd6da66ade68e6deec7af4c523392aae1151d27f77cc3bf5d7da9f309f841
Contents?: true
Size: 1.16 KB
Versions: 3
Compression:
Stored size: 1.16 KB
Contents
module PrometheusExporter::Server class DelayedJobCollector < TypeCollector def type "delayed_job" end def collect(obj) ensure_delayed_job_metrics @delayed_job_duration_seconds.observe(obj["duration"], job_name: obj["name"]) @delayed_jobs_total.observe(1, job_name: obj["name"]) @delayed_failed_jobs_total.observe(1, job_name: obj["name"]) if !obj["success"] end def metrics if @delayed_jobs_total [@delayed_job_duration_seconds, @delayed_jobs_total, @delayed_failed_jobs_total] else [] end end protected def ensure_delayed_job_metrics if !@delayed_jobs_total @delayed_job_duration_seconds = PrometheusExporter::Metric::Counter.new( "delayed_job_duration_seconds", "Total time spent in delayed jobs.") @delayed_jobs_total = PrometheusExporter::Metric::Counter.new( "delayed_jobs_total", "Total number of delayed jobs executed.") @delayed_failed_jobs_total = PrometheusExporter::Metric::Counter.new( "delayed_failed_jobs_total", "Total number failed delayed jobs executed.") end end end end
Version data entries
3 entries across 3 versions & 1 rubygems