Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

More metrics #1

Open
wants to merge 9 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
37 changes: 31 additions & 6 deletions lib/status_parser.rb
Expand Up @@ -7,24 +7,29 @@ def initialize(output)

@status_result = [
doc.xpath('//info/max').text.to_i,
doc.xpath('//info/capacity_used').text.to_i,
doc.xpath('//info/get_wait_list_size').text.to_i,
doc.xpath('//info/supergroups/supergroup/group/capacity_used').text.to_i,
doc.xpath('//info/supergroups/supergroup/group/get_wait_list_size').text.to_i,
parse_sessions(doc),
parse_cpu(doc),
parse_app_memory(doc),
parse_last_used(doc)
parse_last_used(doc),
doc.xpath('//info/supergroups/supergroup/group/enabled_process_count').text.to_i,
doc.xpath('//info/supergroups/supergroup/group/disabling_process_count').text.to_i,
doc.xpath('//info/supergroups/supergroup/group/disabled_process_count').text.to_i,
doc.xpath('//info/supergroups/supergroup/group/disable_wait_list_size').text.to_i,
doc.xpath('//info/supergroups/supergroup/group/processes_being_spawned').text.to_i
]
end

def max
def max_process_count
@status_result[0]
end

def current
def current_process_count
@status_result[1]
end

def queue
def waiting_request_count
@status_result[2]
end

Expand All @@ -43,6 +48,26 @@ def process_memory
def last_used_time
@status_result[6]
end

def enabled_process_count
@status_result[7]
end

def disabling_process_count
@status_result[8]
end

def disabled_process_count
@status_result[9]
end

def disable_wait_process_count
@status_result[10]
end

def being_spawned_process_count
@status_result[11]
end

private

Expand Down
13 changes: 9 additions & 4 deletions newrelic_passenger_agent
Expand Up @@ -14,7 +14,7 @@ module PassengerAgent

class Agent < NewRelic::Plugin::Agent::Base

agent_guid "com.Gazelle.passenger"
agent_guid "com.powerhome.passenger"
agent_version "1.0.1"
agent_config_options :passenger_status, :passenger_free
# Name of instance that will display in New Relic
Expand Down Expand Up @@ -44,9 +44,14 @@ module PassengerAgent
report_metric "passenger/calculated/percent_free", "%", percent_free

# Report data from passegner-status command
report_metric "passenger/processes/max", "Processes", @status.max
report_metric "passenger/processes/running", "Processes", @status.current
report_metric "passenger/queue/waiting", "Requests", @status.queue
report_metric "passenger/processes/max", "Processes", @status.max_process_count
report_metric "passenger/processes/running", "Processes", @status.current_process_count
report_metric "passenger/processes/enabled", "Processes", @status.enabled_process_count
report_metric "passenger/processes/disabling", "Processes", @status.disabling_process_count
report_metric "passenger/processes/disabled", "Processes", @status.disabled_process_count
report_metric "passenger/processes/disable_wait", "Processes", @status.disable_wait_process_count
report_metric "passenger/processes/being_spawned", "Processes", @status.being_spawned_process_count
report_metric "passenger/queue/waiting", "Requests", @status.waiting_request_count
report_metric "passenger/totals/sessions", "Sessions", @status.sessions
report_metric "passenger/totals/cpu", "CPU%", @status.cpu

Expand Down
26 changes: 23 additions & 3 deletions test/passenger_status_test.rb
Expand Up @@ -10,15 +10,35 @@ def setup
end

test "max possible passenger processes are parsed correctly" do
assert_equal 6, @status_parser.max
assert_equal 22, @status_parser.max_process_count
end

test "number of running passenger processes are parsed correctly" do
assert_equal 6, @status_parser.current
assert_equal 444, @status_parser.current_process_count
end

test "number of enabled passenger processes are parsed correctly" do
assert_equal 111, @status_parser.enabled_process_count
end

test "number of disabling passenger processes are parsed correctly" do
assert_equal 222, @status_parser.disabling_process_count
end

test "number of disabled passenger processes are parsed correctly" do
assert_equal 333, @status_parser.disabled_process_count
end

test "number of disable_wait passenger processes are parsed correctly" do
assert_equal 666, @status_parser.disable_wait_process_count
end

test "number of being spawned passenger processes are parsed correctly" do
assert_equal 777, @status_parser.being_spawned_process_count
end

test "requests waiting on global queue are parsed correctly" do
assert_equal 3, @status_parser.queue
assert_equal 555, @status_parser.waiting_request_count
end

test "number of sessions (summed as total) parsed correctly" do
Expand Down
22 changes: 11 additions & 11 deletions test/test_commands/passenger-status --show=xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="iso8859-1"?>
<info version="2">
<process_count>6</process_count>
<max>6</max>
<capacity_used>6</capacity_used>
<get_wait_list_size>3</get_wait_list_size>
<process_count>11</process_count>
<max>22</max>
<capacity_used>33</capacity_used>
<get_wait_list_size>44</get_wait_list_size>
<get_wait_list/>
<supergroups>
<supergroup>
Expand All @@ -18,13 +18,13 @@
<app_root>testapp</app_root>
<app_type>rack</app_type>
<environment>backstage</environment>
<enabled_process_count>6</enabled_process_count>
<disabling_process_count>0</disabling_process_count>
<disabled_process_count>0</disabled_process_count>
<capacity_used>6</capacity_used>
<get_wait_list_size>3</get_wait_list_size>
<disable_wait_list_size>0</disable_wait_list_size>
<processes_being_spawned>0</processes_being_spawned>
<enabled_process_count>111</enabled_process_count>
<disabling_process_count>222</disabling_process_count>
<disabled_process_count>333</disabled_process_count>
<capacity_used>444</capacity_used>
<get_wait_list_size>555</get_wait_list_size>
<disable_wait_list_size>666</disable_wait_list_size>
<processes_being_spawned>777</processes_being_spawned>
<secret>secret</secret>
<life_status>ALIVE</life_status>
<options>
Expand Down