class Promenade::Kafka::ConnectionSubscriber

Public Instance Methods

request(event) click to toggle source
# File lib/promenade/kafka/connection_subscriber.rb, line 29
def request(event) # rubocop:disable Metrics/AbcSize
  labels = {
    client: event.payload.fetch(:client_id),
    api: event.payload.fetch(:api, "unknown"),
    broker: event.payload.fetch(:broker_host),
  }

  Promenade.metric(:kafka_connection_calls).increment(labels)
  Promenade.metric(:kafka_connection_latency).observe(labels, event.duration)

  Promenade.metric(:kafka_connection_request_size).observe(labels, event.payload.fetch(:request_size, 0))
  Promenade.metric(:kafka_connection_response_size).observe(labels, event.payload.fetch(:response_size, 0))

  Promenade.metric(:kafka_connection_errors).increment(labels) if event.payload.key?(:exception)
end