Class: Pgbus::Web::MetricsSerializer
- Inherits:
-
Object
- Object
- Pgbus::Web::MetricsSerializer
- Defined in:
- lib/pgbus/web/metrics_serializer.rb
Overview
Converts DataSource output into Prometheus text exposition format (Content-Type: text/plain; version=0.0.4; charset=utf-8).
Each metric family gets a HELP line, a TYPE line, and one or more sample lines. Labels are double-quoted per the Prometheus spec. All timing values are converted from milliseconds to seconds.
Resilient by design: each section rescues StandardError independently so a failure in one data source method doesn’t blank the entire scrape response.
Instance Method Summary collapse
-
#initialize(data_source) ⇒ MetricsSerializer
constructor
A new instance of MetricsSerializer.
- #serialize ⇒ Object
Constructor Details
#initialize(data_source) ⇒ MetricsSerializer
Returns a new instance of MetricsSerializer.
16 17 18 |
# File 'lib/pgbus/web/metrics_serializer.rb', line 16 def initialize(data_source) @data_source = data_source end |
Instance Method Details
#serialize ⇒ Object
20 21 22 23 24 25 26 27 28 29 |
# File 'lib/pgbus/web/metrics_serializer.rb', line 20 def serialize lines = [] append_queue_metrics(lines) append_job_metrics(lines) append_process_metrics(lines) append_summary_metrics(lines) append_stream_metrics(lines) append_health_metrics(lines) "#{lines.join("\n")}\n" end |