Class: UU::OS::Util::ServerStatistics
- Inherits:
-
Object
- Object
- UU::OS::Util::ServerStatistics
- Defined in:
- uu_os_application-server-2.7.3/lib/uu/os/util/server_statistics.rb
Overview
Object encapsulating server usage statistics.
Instance Attribute Summary (collapse)
-
- (Fixnum) client_error_count
readonly
Number of failed requests caused by client error.
-
- (Fixnum) concurrent_requests
readonly
Number of concurrently processed requests.
-
- (Time) last_client_error_time
readonly
Last time of error caused by client.
-
- (Time) last_request_time
readonly
Last request time.
-
- (Time) last_server_error_time
readonly
Last time of error caused by internal server problem.
-
- (Fixnum) request_count
readonly
Total count of processed requests.
-
- (Fixnum) server_error_count
readonly
Number of failed requests caused by internal server error.
-
- (Time) start_time
readonly
Server start time.
Instance Method Summary (collapse)
-
- (Fixnum) average_request_time
Returns average request time.
-
- (void) begin_request
Method to be called on beginning of request processing.
-
- (ServerStatistics) initialize(max_request_time)
constructor
Creates new instance of statistics.
-
- (Fixnum) max_request_time
Returns slowest request time.
-
- (Fixnum) min_request_time
Returns fastest request time.
-
- (void) record_client_error(duration)
Method to be called upon request failed by client error.
-
- (void) record_request(duration)
Method to be called upon sucessfuly processed request.
-
- (void) record_server_error(duration)
Method to be called upon request failed by server error.
-
- (Fixnum) request_time_percentile(val)
Returns value of request time percentile.
-
- (void) reset!
Resets statistics.
-
- (String) uptime
Server uptime (with seconds precision).
Constructor Details
- (ServerStatistics) initialize(max_request_time)
Creates new instance of statistics.
45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'uu_os_application-server-2.7.3/lib/uu/os/util/server_statistics.rb', line 45 def initialize(max_request_time) @max_request_time = max_request_time @start_time = Time.now @last_request_time = nil @last_client_error_time = nil @last_server_error_time = nil @request_count = 0 @client_error_count = 0 @server_error_count = 0 @concurrent_requests = 0 @request_histogram = UU::OS::Util::Histogram.new(1, max_request_time * 1000000, max_request_time * 10) end |
Instance Attribute Details
- (Fixnum) client_error_count (readonly)
Number of failed requests caused by client error.
33 34 35 |
# File 'uu_os_application-server-2.7.3/lib/uu/os/util/server_statistics.rb', line 33 def client_error_count @client_error_count end |
- (Fixnum) concurrent_requests (readonly)
Number of concurrently processed requests.
41 42 43 |
# File 'uu_os_application-server-2.7.3/lib/uu/os/util/server_statistics.rb', line 41 def concurrent_requests @concurrent_requests end |
- (Time) last_client_error_time (readonly)
Last time of error caused by client.
20 21 22 |
# File 'uu_os_application-server-2.7.3/lib/uu/os/util/server_statistics.rb', line 20 def last_client_error_time @last_client_error_time end |
- (Time) last_request_time (readonly)
Last request time.
16 17 18 |
# File 'uu_os_application-server-2.7.3/lib/uu/os/util/server_statistics.rb', line 16 def last_request_time @last_request_time end |
- (Time) last_server_error_time (readonly)
Last time of error caused by internal server problem.
25 26 27 |
# File 'uu_os_application-server-2.7.3/lib/uu/os/util/server_statistics.rb', line 25 def last_server_error_time @last_server_error_time end |
- (Fixnum) request_count (readonly)
Total count of processed requests.
29 30 31 |
# File 'uu_os_application-server-2.7.3/lib/uu/os/util/server_statistics.rb', line 29 def request_count @request_count end |
- (Fixnum) server_error_count (readonly)
Number of failed requests caused by internal server error.
37 38 39 |
# File 'uu_os_application-server-2.7.3/lib/uu/os/util/server_statistics.rb', line 37 def server_error_count @server_error_count end |
- (Time) start_time (readonly)
Server start time.
12 13 14 |
# File 'uu_os_application-server-2.7.3/lib/uu/os/util/server_statistics.rb', line 12 def start_time @start_time end |
Instance Method Details
- (Fixnum) average_request_time
Returns average request time.
123 124 125 126 |
# File 'uu_os_application-server-2.7.3/lib/uu/os/util/server_statistics.rb', line 123 def average_request_time res = @request_histogram.average res ? res * 1000 : res end |
- (void) begin_request
This method returns an undefined value.
Method to be called on beginning of request processing.
66 67 68 |
# File 'uu_os_application-server-2.7.3/lib/uu/os/util/server_statistics.rb', line 66 def begin_request @concurrent_requests += 1 end |
- (Fixnum) max_request_time
Returns slowest request time.
116 117 118 119 |
# File 'uu_os_application-server-2.7.3/lib/uu/os/util/server_statistics.rb', line 116 def max_request_time res = @request_histogram.max res ? res * 1000 : res end |
- (Fixnum) min_request_time
Returns fastest request time.
109 110 111 112 |
# File 'uu_os_application-server-2.7.3/lib/uu/os/util/server_statistics.rb', line 109 def min_request_time res = @request_histogram.min res ? res * 1000 : res end |
- (void) record_client_error(duration)
This method returns an undefined value.
Method to be called upon request failed by client error.
84 85 86 87 88 89 90 91 92 |
# File 'uu_os_application-server-2.7.3/lib/uu/os/util/server_statistics.rb', line 84 def record_client_error(duration) time = Time.now @last_request_time = time @last_client_error_time = time @request_count += 1 @client_error_count += 1 @concurrent_requests -= 1 @request_histogram.record(duration / 1000) end |
- (void) record_request(duration)
This method returns an undefined value.
Method to be called upon sucessfuly processed request.
73 74 75 76 77 78 79 |
# File 'uu_os_application-server-2.7.3/lib/uu/os/util/server_statistics.rb', line 73 def record_request(duration) time = Time.now @last_request_time = time @request_count += 1 @concurrent_requests -= 1 @request_histogram.record(duration / 1000) end |
- (void) record_server_error(duration)
This method returns an undefined value.
Method to be called upon request failed by server error.
97 98 99 100 101 102 103 104 105 |
# File 'uu_os_application-server-2.7.3/lib/uu/os/util/server_statistics.rb', line 97 def record_server_error(duration) time = Time.now @last_request_time = time @last_server_error_time = time @request_count += 1 @server_error_count += 1 @concurrent_requests -= 1 @request_histogram.record(duration / 1000) end |
- (Fixnum) request_time_percentile(val)
Returns value of request time percentile.
131 132 133 134 |
# File 'uu_os_application-server-2.7.3/lib/uu/os/util/server_statistics.rb', line 131 def request_time_percentile(val) res = @request_histogram.percentile(val) res ? res * 1000 : res end |
- (void) reset!
This method returns an undefined value.
Resets statistics.
138 139 140 141 142 143 144 145 146 |
# File 'uu_os_application-server-2.7.3/lib/uu/os/util/server_statistics.rb', line 138 def reset! @last_request_time = nil @last_client_error_time = nil @last_server_error_time = nil @request_count = 0 @client_error_count = 0 @server_error_count = 0 @request_histogram = UU::OS::Util::Histogram.new(1, @max_request_time * 1000000, @max_request_time * 10) end |
- (String) uptime
Server uptime (with seconds precision).
60 61 62 |
# File 'uu_os_application-server-2.7.3/lib/uu/os/util/server_statistics.rb', line 60 def uptime Time.at(Time.now - @start_time).utc.strftime("%H:%M:%S") end |