module Prometheus::Client::Formats::Text
Text format is human readable mainly used for manual inspection.
Constants
- CONTENT_TYPE
- MEDIA_TYPE
- VERSION
Public Class Methods
marshal(registry)
click to toggle source
# File lib/prometheus/client/formats/text.rb, line 17 def marshal(registry) metrics = registry.metrics.map do |metric| samples = metric.values.flat_map do |label_set, value| representation(metric, label_set, value) end [metric.name, { type: metric.type, help: metric.docstring, samples: samples }] end Helper::MetricsRepresentation.to_text(metrics) end
marshal_multiprocess(path = Prometheus::Client.configuration.multiprocess_files_dir)
click to toggle source
# File lib/prometheus/client/formats/text.rb, line 29 def marshal_multiprocess(path = Prometheus::Client.configuration.multiprocess_files_dir) file_list = Dir.glob(File.join(path, '*.db')).sort .map {|f| Helper::PlainFile.new(f) } .map {|f| [f.filepath, f.multiprocess_mode.to_sym, f.type.to_sym, f.pid] } FastMmapedFile.to_metrics(file_list.to_a) end
Private Class Methods
histogram(name, set, value)
click to toggle source
# File lib/prometheus/client/formats/text.rb, line 70 def histogram(name, set, value) # |metric_name, labels, value| rv = value.get.map do |q, v| [name, set.merge(le: q), v] end rv << [name, set.merge(le: '+Inf'), value.get.total] rv << ["#{name}_sum", set, value.get.sum] rv << ["#{name}_count", set, value.get.total] rv end
load_metrics(path)
click to toggle source
# File lib/prometheus/client/formats/text.rb, line 39 def load_metrics(path) metrics = {} Dir.glob(File.join(path, '*.db')).sort.each do |f| Helper::PlainFile.new(f).to_metrics(metrics) end metrics end
representation(metric, label_set, value)
click to toggle source
# File lib/prometheus/client/formats/text.rb, line 48 def representation(metric, label_set, value) labels = metric.base_labels.merge(label_set) if metric.type == :summary summary(metric.name, labels, value) elsif metric.type == :histogram histogram(metric.name, labels, value) else [[metric.name, labels, value.get]] end end
summary(name, set, value)
click to toggle source
# File lib/prometheus/client/formats/text.rb, line 60 def summary(name, set, value) rv = value.get.map do |q, v| [name, set.merge(quantile: q), v] end rv << ["#{name}_sum", set, value.get.sum] rv << ["#{name}_count", set, value.get.total] rv end