Class: Gruf::Prometheus::Server::Collector

Inherits:
Bigcommerce::Prometheus::Collectors::Base
  • Object
show all
Defined in:
lib/gruf/prometheus/server/collector.rb

Overview

Prometheus instrumentor for gRPC servers

Constant Summary collapse

RESPONSE_CODE_OK =
'OK'
FAILURE_CLASSES =
%w[
  GRPC::Unknown
  GRPC::Internal
  GRPC::DataLoss
  GRPC::FailedPrecondition
  GRPC::Unavailable
  GRPC::DeadlineExceeded
  GRPC::Cancelled
].freeze

Instance Method Summary collapse

Instance Method Details

#failed_total(request:, result:) ⇒ Object

Parameters:

  • request (Gruf::Controller::Request)
  • result (Gruf::Interceptors::Timer::Result)


50
51
52
53
54
55
56
57
# File 'lib/gruf/prometheus/server/collector.rb', line 50

def failed_total(request:, result:)
  return unless failure?(result)

  push(
    grpc_server_failed_total: 1,
    custom_labels: custom_labels(request:)
  )
end

#handled_latency_seconds(request:, result:) ⇒ Object

Parameters:

  • request (Gruf::Controller::Request)
  • result (Gruf::Interceptors::Timer::Result)


74
75
76
77
78
79
# File 'lib/gruf/prometheus/server/collector.rb', line 74

def handled_latency_seconds(request:, result:)
  push(
    grpc_server_handled_latency_seconds: result.elapsed.to_f,
    custom_labels: custom_labels(request:, result:)
  )
end

#handled_total(request:, result:) ⇒ Object

Parameters:

  • request (Gruf::Controller::Request)
  • result:party (Gruf::Interceptors::Timer::Result)


63
64
65
66
67
68
# File 'lib/gruf/prometheus/server/collector.rb', line 63

def handled_total(request:, result:)
  push(
    grpc_server_handled_total: 1,
    custom_labels: custom_labels(request:, result:)
  )
end

#started_total(request:) ⇒ Object

Parameters:

  • request (Gruf::Controller::Request)


39
40
41
42
43
44
# File 'lib/gruf/prometheus/server/collector.rb', line 39

def started_total(request:)
  push(
    grpc_server_started_total: 1,
    custom_labels: custom_labels(request:)
  )
end