NAME

Mojolicious::Plugin::ServerStatus - show server status like Apache's mod_status

SYNOPSIS

  plugin 'ServerStatus' => {
      path => '/server-status',
      allow => [ '127.0.0.1', '192.168.0.0/16' ],
  };

% curl http://server:port/server-status
Uptime: 1234567789
Total Accesses: 123
BusyWorkers: 2
IdleWorkers: 3
--
pid status remote_addr host method uri protocol ss
20060 A 127.0.0.1 localhost:10001 GET / HTTP/1.1 1
20061 .
20062 A 127.0.0.1 localhost:10001 GET /server-status HTTP/1.1 0
20063 .
20064 .

# JSON format
% curl http://server:port/server-status?json
{"Uptime":"1332476669","BusyWorkers":"2",
 "stats":[
   {"protocol":null,"remote_addr":null,"pid":"78639",
    "status":".","method":null,"uri":null,"host":null,"ss":null},
   {"protocol":"HTTP/1.1","remote_addr":"127.0.0.1","pid":"78640",
    "status":"A","method":"GET","uri":"/","host":"localhost:10226","ss":0},
   ...
],"IdleWorkers":"3"}

DESCRIPTION

Mojolicious::Plugin::ServerStatus is display server status in multiprocess Mojo servers such as morbo and hypnotoad . This module changes status only before and after executing the application. so cannot monitor keepalive session and network i/o wait.

CONFIGURATIONS

path
path => '/server-status',

location that displays server status

allow
allow => '127.0.0.1'
allow => ['192.168.0.0/16', '10.0.0.0/8']

host based access control of a page of server status. supports IPv6 address.

scoreboard
scoreboard => '/path/to/dir'

Scoreboard directory, Mojolicious::Plugin::ServerStatus stores processes activity information in

counter_file
counter_file => '/path/to/counter_file'

Enable Total Access counter

skip_ps_command
skip_ps_command => 1 or 0

ServerStatus executes `ps command` to find all worker processes. But in some systems that does not mount "/proc" can not find any processes. IF 'skip_ps_command' is true, ServerStatus does not `ps`, and checks only processes that already did process requests.

TOTAL BYTES

The largest integer that 32-bit Perl can store without loss of precision is 2**53. So rather than getting all fancy with Math::BigInt, we're just going to be conservative and wrap that around to 0. That's enough to count 1 GB per second for a hundred days.

WHAT DOES "SS" MEAN IN STATUS

Seconds since beginning of most recent request

AUTHOR

fu kai <iakuf {at} 163.com>

SEE ALSO

Original ServerStatus by <https://metacpan.org/pod/Plack::Middleware::ServerStatus::Lite>

Plack::Middleware::ServerStatus::Lite

LICENSE

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.