Sha256: a3fc86211d538a43d767f66b372221ede8e88b416234564ffa6495eb0a9f9e68
Contents?: true
Size: 1.62 KB
Versions: 2
Compression:
Stored size: 1.62 KB
Contents
module WatCatcher class Report attr_accessor :exception, :request, :sidekiq def initialize(exception, request: nil, sidekiq: nil) self.exception = exception self.request = request self.sidekiq = sidekiq send_report end def send_report ::WatCatcher::SidekiqPoster.perform_async("#{WatCatcher.configuration.host}/wats", params) end def params { wat: base_description.merge(exception_description).merge(request_description).merge(worker_description).merge(param_exception_description) } end def param_exception_description return {} if exception || request.blank? request.params[:wat].merge(request_params: nil) end def base_description { app_env: ::Rails.env.to_s, app_name: ::Rails.application.class.parent_name, language: "ruby" } end def exception_description return {} unless exception { backtrace: exception.backtrace.to_a, message: exception.message, error_class: exception.class.to_s, } end def request_description return {} unless request request_params = request.filtered_parameters session = request.session.as_json page_url = request.url { page_url: page_url, request_headers: headers, request_params: request_params, session: session, } end def headers Hash[*request.headers.select { |x, y| y.instance_of? String }.sort_by(&:first).flatten] end def worker_description return {} unless sidekiq { sidekiq_msg: sidekiq } end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
wat_catcher-0.4.1 | lib/wat_catcher/report.rb |
wat_catcher-0.4.0 | lib/wat_catcher/report.rb |