Class: Librato::Rack
- Inherits:
-
Object
- Object
- Librato::Rack
- Defined in:
- lib/librato/rack.rb,
lib/librato/rack/errors.rb,
lib/librato/rack/logger.rb,
lib/librato/rack/worker.rb,
lib/librato/rack/tracker.rb,
lib/librato/rack/version.rb,
lib/librato/rack/configuration.rb,
lib/librato/rack/validating_queue.rb,
lib/librato/rack/configuration/suites.rb
Overview
Middleware for rack applications. Installs tracking hearbeat for metric submission and tracks performance metrics.
Defined Under Namespace
Classes: Configuration, InvalidLogLevel, InvalidSuiteConfiguration, Logger, Tracker, ValidatingQueue, Worker
Constant Summary collapse
- RECORD_RACK_BODY =
<<-'EOS' group.increment 'total' group.timing 'time', duration, percentile: 95 group.increment 'slow' if duration > 200.0 EOS
- RECORD_RACK_STATUS_BODY =
<<-'EOS' group.group 'status' do |s| s.increment status s.increment "#{status.to_s[0]}xx" s.timing "#{status}.time", duration s.timing "#{status.to_s[0]}xx.time", duration end EOS
- RECORD_RACK_METHOD_BODY =
<<-'EOS' group.group 'method' do |m| http_method.downcase! m.increment http_method m.timing "#{http_method}.time", duration end EOS
- VERSION =
"1.1.0"
Instance Attribute Summary collapse
-
#config ⇒ Object
readonly
Returns the value of attribute config.
-
#tracker ⇒ Object
readonly
Returns the value of attribute tracker.
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, options = {}) ⇒ Rack
constructor
A new instance of Rack.
Constructor Details
#initialize(app, options = {}) ⇒ Rack
Returns a new instance of Rack.
66 67 68 69 70 71 72 73 74 75 |
# File 'lib/librato/rack.rb', line 66 def initialize(app, ={}) @app = app @config = .fetch(:config, Configuration.new) @tracker = @config.tracker || Tracker.new(@config) Librato.register_tracker(@tracker) # create global reference build_record_request_metrics_method build_record_header_metrics_method build_record_exception_method end |
Instance Attribute Details
#config ⇒ Object (readonly)
Returns the value of attribute config.
64 65 66 |
# File 'lib/librato/rack.rb', line 64 def config @config end |
#tracker ⇒ Object (readonly)
Returns the value of attribute tracker.
64 65 66 |
# File 'lib/librato/rack.rb', line 64 def tracker @tracker end |
Instance Method Details
#call(env) ⇒ Object
77 78 79 80 81 82 83 84 |
# File 'lib/librato/rack.rb', line 77 def call(env) check_log_output(env) unless @log_target @tracker.check_worker record_header_metrics(env) response, duration = process_request(env) record_request_metrics(response.first, env["REQUEST_METHOD"], duration) response end |