class ThriftRack::ServerMetric

Attributes

server_id[W]
server_private_ip[W]

Public Class Methods

new(app) click to toggle source
# File lib/thrift_rack/server_metric.rb, line 3
def initialize(app)
  @app = app
end
server_id() click to toggle source
# File lib/thrift_rack/server_metric.rb, line 19
def server_id
  @server_id || "unkonwn"
end
server_private_ip() click to toggle source
# File lib/thrift_rack/server_metric.rb, line 23
def server_private_ip
  @server_private_ip || "0.0.0.0"
end

Public Instance Methods

call(env) click to toggle source
# File lib/thrift_rack/server_metric.rb, line 7
def call(env)
  request_at = env['LAUNCH_AT'] || Time.now
  status, headers, body = @app.call(env)
  headers["x-server-process-duration"] = ((Time.now - request_at) * 1000).to_s
  headers["x-server-id"] = self.class.server_id
  headers["x-server-private-ip"] = self.class.server_private_ip
  [status, headers, body]
end