Class: LitmusPaper::Metric::SocketUtilization
- Inherits:
-
Object
- Object
- LitmusPaper::Metric::SocketUtilization
show all
- Defined in:
- lib/litmus_paper/metric/socket_utilization.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
Returns a new instance of SocketUtilization.
8
9
10
11
|
# File 'lib/litmus_paper/metric/socket_utilization.rb', line 8
def initialize(weight, maxconn)
@weight = weight
@maxconn = maxconn
end
|
Instance Attribute Details
#maxconn ⇒ Object
Returns the value of attribute maxconn.
6
7
8
|
# File 'lib/litmus_paper/metric/socket_utilization.rb', line 6
def maxconn
@maxconn
end
|
#weight ⇒ Object
Returns the value of attribute weight.
6
7
8
|
# File 'lib/litmus_paper/metric/socket_utilization.rb', line 6
def weight
@weight
end
|
Instance Method Details
#_stats ⇒ Object
39
40
41
|
# File 'lib/litmus_paper/metric/socket_utilization.rb', line 39
def _stats
raise "Sub-classes must implement _stats"
end
|
#current_health ⇒ Object
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
# File 'lib/litmus_paper/metric/socket_utilization.rb', line 13
def current_health
stats = _stats
if stats.queued == 0
return weight
end
[
weight - (
(weight * stats.active.to_f) / (3 * maxconn.to_f) +
(2 * weight * stats.queued.to_f) / (3 * maxconn.to_f)
),
1
].max
end
|
#stats ⇒ Object
29
30
31
32
33
34
35
36
37
|
# File 'lib/litmus_paper/metric/socket_utilization.rb', line 29
def stats
stats = _stats
{
:socket_active => stats.active,
:socket_queued => stats.queued,
:socket_utilization => ((stats.queued / maxconn.to_f) * 100).round,
}
end
|
#to_s ⇒ Object
43
44
45
|
# File 'lib/litmus_paper/metric/socket_utilization.rb', line 43
def to_s
raise "Sub-classes must implement to_s"
end
|