class Yabeda::HttpRequests::Sniffer
Middleware for sniffer gem
Public Instance Methods
request(data_item) { || ... }
click to toggle source
# File lib/yabeda/http_requests/sniffer.rb, line 7 def request(data_item) yield Yabeda.http_request_total.increment( { host: data_item.request.host, port: data_item.request.port, method: data_item.request.method } ) end
response(data_item) { || ... }
click to toggle source
# File lib/yabeda/http_requests/sniffer.rb, line 18 def response(data_item) yield log_http_response_total(data_item) log_http_response_duration(data_item) end
Private Instance Methods
duration_in_milliseconds(data_item)
click to toggle source
# File lib/yabeda/http_requests/sniffer.rb, line 50 def duration_in_milliseconds(data_item) seconds = data_item.response&.timing return nil if seconds.nil? (seconds * 1000).round end
log_http_response_duration(data_item)
click to toggle source
# File lib/yabeda/http_requests/sniffer.rb, line 37 def log_http_response_duration(data_item) labels = { host: data_item.request.host, port: data_item.request.port, method: data_item.request.method, status: data_item.response.status } Yabeda.http_response_duration.measure( labels, duration_in_milliseconds(data_item) ) end
log_http_response_total(data_item)
click to toggle source
# File lib/yabeda/http_requests/sniffer.rb, line 26 def log_http_response_total(data_item) Yabeda.http_response_total.increment( { host: data_item.request.host, port: data_item.request.port, method: data_item.request.method, status: data_item.response.status } ) end