module Honeybadger::Plugins::Net::HTTP
Public Class Methods
Source
# File lib/honeybadger/plugins/net_http.rb, line 12 def self.set_hb_config(config) @@hb_config = config end
Public Instance Methods
Source
# File lib/honeybadger/plugins/net_http.rb, line 50 def build_uri(request_data) hostname = (address[/#{Resolv::IPv6::Regex}/]) ? "[#{address}]" : address URI.parse("#{use_ssl? ? 'https' : 'http'}://#{hostname}#{request_data.path}") end
Source
# File lib/honeybadger/plugins/net_http.rb, line 38 def hb? address.to_s[/#{@@hb_config[:'connection.host'].to_s}/] end
Source
# File lib/honeybadger/plugins/net_http.rb, line 42 def parsed_uri_data(request_data) uri = request_data.uri || build_uri(request_data) {}.tap do |uri_data| uri_data[:host] = uri.host uri_data[:url] = uri.to_s if @@hb_config[:'net_http.insights.full_url'] end end
Source
# File lib/honeybadger/plugins/net_http.rb, line 16 def request(request_data, body = nil, &block) return super unless started? return super if hb? Honeybadger.instrumentation.monotonic_timer { super }.tap do |duration, response_data| context = { duration: duration, method: request_data.method, status: response_data.code.to_i }.merge(parsed_uri_data(request_data)) if @@hb_config.load_plugin_insights_events?(:net_http) Honeybadger.event('request.net_http', context) end if @@hb_config.load_plugin_insights_metrics?(:net_http) context.delete(:url) Honeybadger.gauge('duration.request', context.merge(metric_source: 'net_http')) end end[1] # return the response data only end
Calls superclass method