Skip to content

Commit

Permalink
Add listener_address as Instance attributes of Promenade::Raindrops::…
Browse files Browse the repository at this point in the history
…Stats
  • Loading branch information
robertomiranda committed Aug 15, 2024
1 parent 59195bf commit 1581a4b
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 7 deletions.
13 changes: 7 additions & 6 deletions lib/promenade/raindrops/stats.rb
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,15 @@ module Raindrops

class Stats

attr_reader :active_workers, :queued_requests
attr_reader :active_workers, :queued_requests, :listener_address

def initialize
def initialize(listener_address: nil)
return unless defined?(::Raindrops)
return unless defined?(::Raindrops::Linux.tcp_listener_stats)

listener_address = "0.0.0.0:#{ENV.fetch('PORT', 3000)}"
stats = ::Raindrops::Linux.tcp_listener_stats([listener_address])[listener_address]
@listener_address = listener_address || "127.0.0.1:#{ENV.fetch('PORT', 3000)}"

stats = ::Raindrops::Linux.tcp_listener_stats([@listener_address])[@listener_address]

@active_workers = stats.active
@queued_requests = stats.queued
Expand All @@ -34,8 +35,8 @@ def instrument
Promenade.metric(:rack_queued_requests).set({}, queued_requests)
end

def self.instrument
new.instrument
def self.instrument(listener_address: nil)
new(listener_address: listener_address).instrument
end
end
end
Expand Down
2 changes: 1 addition & 1 deletion spec/promenade/raindrops/stats_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

RSpec.describe Promenade::Raindrops::Stats do
let(:listen_stats) { instance_double("Raindrops::Linux::ListenStats", active: 1, queued: 1) }
let(:listener_address) { "0.0.0.0:#{ENV.fetch('PORT', 3000)}" }
let(:listener_address) { "127.0.0.1:#{ENV.fetch('PORT', 3000)}" }

before do
allow(Raindrops::Linux).to receive(:tcp_listener_stats).and_return({ listener_address => listen_stats })
Expand Down

0 comments on commit 1581a4b

Please sign in to comment.