Class: Karafka::Web::Tracking::Consumers::Sampler::Metrics::Network

Inherits:
Base
  • Object
show all
Defined in:
lib/karafka/web/tracking/consumers/sampler/metrics/network.rb

Overview

Collects network throughput metrics (bytes received/sent per second)

Instance Method Summary collapse

Constructor Details

#initialize(windows) ⇒ Network

Returns a new instance of Network.

Parameters:



12
13
14
15
# File 'lib/karafka/web/tracking/consumers/sampler/metrics/network.rb', line 12

def initialize(windows)
  super()
  @windows = windows
end

Instance Method Details

#bytes_receivedInteger

Note:

We use one minute window to compensate for cases where metrics would be reported or recorded faster or slower. This normalizes data

Returns number of bytes received per second out of a one minute time window by all the consumers.

Returns:

  • (Integer)

    number of bytes received per second out of a one minute time window by all the consumers



21
22
23
24
25
26
27
# File 'lib/karafka/web/tracking/consumers/sampler/metrics/network.rb', line 21

def bytes_received
  windows
    .m1
    .stats_from { |k, _v| k.end_with?('rxbytes') }
    .rps
    .round
end

#bytes_sentInteger

Returns number of bytes sent per second out of a one minute time window by all the consumers.

Returns:

  • (Integer)

    number of bytes sent per second out of a one minute time window by all the consumers



31
32
33
34
35
36
37
# File 'lib/karafka/web/tracking/consumers/sampler/metrics/network.rb', line 31

def bytes_sent
  windows
    .m1
    .stats_from { |k, _v| k.end_with?('txbytes') }
    .rps
    .round
end