Class: PrometheusExporter::Server::UnicornCollector
- Inherits:
-
TypeCollector
- Object
- TypeCollector
- PrometheusExporter::Server::UnicornCollector
- Defined in:
- lib/prometheus_exporter/server/unicorn_collector.rb
Overview
custom type collector for prometheus_exporter for handling the metrics sent from PrometheusExporter::Instrumentation::Unicorn
Constant Summary collapse
- UNICORN_GAUGES =
{ workers_total: 'Number of unicorn workers.', active_workers_total: 'Number of active unicorn workers', request_backlog_total: 'Number of requests waiting to be processed by a unicorn worker.' }.freeze
Instance Method Summary collapse
- #collect(obj) ⇒ Object
-
#initialize ⇒ UnicornCollector
constructor
A new instance of UnicornCollector.
- #metrics ⇒ Object
- #type ⇒ Object
Constructor Details
#initialize ⇒ UnicornCollector
Returns a new instance of UnicornCollector.
12 13 14 |
# File 'lib/prometheus_exporter/server/unicorn_collector.rb', line 12 def initialize @unicorn_metrics = [] end |
Instance Method Details
#collect(obj) ⇒ Object
38 39 40 |
# File 'lib/prometheus_exporter/server/unicorn_collector.rb', line 38 def collect(obj) @unicorn_metrics << obj end |
#metrics ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/prometheus_exporter/server/unicorn_collector.rb', line 20 def metrics return [] if @unicorn_metrics.length.zero? metrics = {} @unicorn_metrics.map do |m| UNICORN_GAUGES.map do |k, help| k = k.to_s if (v = m[k]) g = metrics[k] ||= PrometheusExporter::Metric::Gauge.new("unicorn_#{k}", help) g.observe(v) end end end metrics.values end |
#type ⇒ Object
16 17 18 |
# File 'lib/prometheus_exporter/server/unicorn_collector.rb', line 16 def type 'unicorn' end |