Class: ThriftRack::ServerMetric

Inherits:
Object
  • Object
show all
Defined in:
lib/thrift_rack/server_metric.rb

Class Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ ServerMetric

Returns a new instance of ServerMetric.



3
4
5
# File 'lib/thrift_rack/server_metric.rb', line 3

def initialize(app)
  @app = app
end

Class Attribute Details

.server_idObject



19
20
21
# File 'lib/thrift_rack/server_metric.rb', line 19

def server_id
  @server_id || "unkonwn"
end

.server_private_ipObject



23
24
25
# File 'lib/thrift_rack/server_metric.rb', line 23

def server_private_ip
  @server_private_ip || "0.0.0.0"
end

Instance Method Details

#call(env) ⇒ Object



7
8
9
10
11
12
13
14
# 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