class Gruf::Prometheus::Server::TypeCollector

Type Collector for grpc server metrics

Public Instance Methods

type() click to toggle source
# File lib/gruf/prometheus/server/type_collector.rb, line 25
def type
  'grpc_server'
end

Private Instance Methods

build_metrics() click to toggle source

Initialize the collector

# File lib/gruf/prometheus/server/type_collector.rb, line 34
def build_metrics
  metrics = {
    grpc_server_started_total: PrometheusExporter::Metric::Counter.new('grpc_server_started_total', 'Total number of RPCs started on the server'),
    grpc_server_handled_total: PrometheusExporter::Metric::Counter.new('grpc_server_handled_total', 'Total number of RPCs completed on the server, regardless of success or failure')
  }
  metrics[:grpc_server_handled_latency_seconds] = PrometheusExporter::Metric::Histogram.new('grpc_server_handled_latency_seconds', 'Histogram of response latency of RPCs handled by the server, in seconds') if measure_latency?
  metrics
end
collect_metrics(data: {}, labels: {}) click to toggle source

Collect the object into the buffer

# File lib/gruf/prometheus/server/type_collector.rb, line 46
def collect_metrics(data: {}, labels: {})
  metric(:grpc_server_started_total)&.observe(data['grpc_server_started_total'].to_i, labels)
  metric(:grpc_server_handled_total)&.observe(data['grpc_server_handled_total'].to_i, labels)
  metric(:grpc_server_handled_latency_seconds)&.observe(data['grpc_server_handled_latency_seconds'].to_f, labels) if measure_latency?
end
measure_latency?() click to toggle source

@return [Boolean]

# File lib/gruf/prometheus/server/type_collector.rb, line 55
def measure_latency?
  @measure_latency ||= ::Gruf::Prometheus.server_measure_latency
end