Class: Gitlab::Metrics::Subscribers::ActionCable

Inherits:
ActiveSupport::Subscriber
  • Object
show all
Includes:
Utils::StrongMemoize
Defined in:
lib/gitlab/metrics/subscribers/action_cable.rb

Constant Summary collapse

SOURCE_DIRECT =
'channel'
SOURCE_GRAPHQL_EVENT =
'graphql-event'
SOURCE_GRAPHQL_SUBSCRIPTION =
'graphql-subscription'
SOURCE_OTHER =
'unknown'
SINGLE_CLIENT_TRANSMISSION =
:action_cable_single_client_transmissions_total
TRANSMIT_SUBSCRIPTION_CONFIRMATION =
:action_cable_subscription_confirmations_total
TRANSMIT_SUBSCRIPTION_REJECTION =
:action_cable_subscription_rejections_total
BROADCAST =
:action_cable_broadcasts_total
DATA_TRANSMITTED_BYTES =
:action_cable_transmitted_bytes_total

Instance Method Summary collapse

Instance Method Details

#broadcast(event) ⇒ Object



44
45
46
# File 'lib/gitlab/metrics/subscribers/action_cable.rb', line 44

def broadcast(event)
  broadcast_counter.increment({ broadcasting: normalize_source(event.payload[:broadcasting]) })
end

#transmit(event) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/gitlab/metrics/subscribers/action_cable.rb', line 30

def transmit(event)
  payload = event.payload

  labels = {
    channel: payload[:channel_class],
    caller: normalize_source(payload[:via])
  }
  labels[:broadcasting] = graphql_event_broadcasting_from(payload[:data])

  transmit_counter.increment(labels)
  data_size = Gitlab::Json.generate(payload[:data]).bytesize
  transmitted_bytes_counter.increment(labels, data_size)
end

#transmit_subscription_confirmation(event) ⇒ Object



22
23
24
# File 'lib/gitlab/metrics/subscribers/action_cable.rb', line 22

def transmit_subscription_confirmation(event)
  confirm_subscription_counter.increment
end

#transmit_subscription_rejection(event) ⇒ Object



26
27
28
# File 'lib/gitlab/metrics/subscribers/action_cable.rb', line 26

def transmit_subscription_rejection(event)
  reject_subscription_counter.increment
end