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, InvalidTagConfiguration, 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' status_tags = { status: status } tracker.increment "rack.request.status", tags: status_tags, inherit_tags: true tracker.timing "rack.request.status.time", duration, tags: status_tags, inherit_tags: true EOS
- RECORD_RACK_METHOD_BODY =
<<-'EOS' method_tags = { method: http_method.downcase! } tracker.increment "rack.request.method", tags: method_tags, inherit_tags: true tracker.timing "rack.request.method.time", duration, tags: method_tags, inherit_tags: true EOS
- VERSION =
"2.0.2"
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.
60 61 62 63 64 65 66 67 68 69 |
# File 'lib/librato/rack.rb', line 60 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.
58 59 60 |
# File 'lib/librato/rack.rb', line 58 def config @config end |
#tracker ⇒ Object (readonly)
Returns the value of attribute tracker.
58 59 60 |
# File 'lib/librato/rack.rb', line 58 def tracker @tracker end |
Instance Method Details
#call(env) ⇒ Object
71 72 73 74 75 76 77 78 |
# File 'lib/librato/rack.rb', line 71 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 |