class Sqreen::Signals::SignalsSubmissionStrategy
see also Sqreen::Legacy::OldEventSubmissionStrategy
usage in Sqreen:Session
Public Instance Methods
post_attack(_attack)
click to toggle source
@param _attack [Sqreen::Attack] XXX: unused
# File lib/sqreen/signals/signals_submission_strategy.rb, line 33 def post_attack(_attack) raise NotImplementedError end
post_batch(events)
click to toggle source
# File lib/sqreen/signals/signals_submission_strategy.rb, line 56 def post_batch(events) guarded 'Failed to serialize or submit batch of events' do batch = Conversions.convert_batch(events) batch.each { |sig_or_trace| append_sanitizing_filter(sig_or_trace) } client.report_batch(batch) end end
post_metrics(metrics)
click to toggle source
@param [Array<Sqreen::AggregatedMetric>] metrics
# File lib/sqreen/signals/signals_submission_strategy.rb, line 20 def post_metrics(metrics) return if metrics.nil? || metrics.empty? guarded 'Failed to serialize or submit aggregated metrics' do batch = metrics.map do |m| Conversions.convert_metric_sample(m) end client.report_batch(batch) end end
post_request_record(request_record)
click to toggle source
@param request_record [Sqreen::RequestRecord]
# File lib/sqreen/signals/signals_submission_strategy.rb, line 38 def post_request_record(request_record) guarded 'Failed to serialize or submit request record' do trace = Conversions.convert_req_record(request_record) append_sanitizing_filter(trace) client.report_trace(trace) end end
post_sqreen_exception(exception)
click to toggle source
Post an exception to Sqreen
for analysis @param exception [RemoteException] Exception
and context to be sent over
# File lib/sqreen/signals/signals_submission_strategy.rb, line 48 def post_sqreen_exception(exception) guarded 'Failed to serialize or submit exception', false do data = Conversions.convert_exception(exception) append_sanitizing_filter(data) client.report_signal(data) end end
Private Instance Methods
append_sanitizing_filter(sig_or_trace)
click to toggle source
# File lib/sqreen/signals/signals_submission_strategy.rb, line 66 def append_sanitizing_filter(sig_or_trace) sig_or_trace.append_to_h_filter Kit::StringSanitizer.method(:sanitize) end
client()
click to toggle source
# File lib/sqreen/signals/signals_submission_strategy.rb, line 78 def client Sqreen::Kit.auth_signals_client end
guarded(msg, report = true) { || ... }
click to toggle source
we don't want exceptions to propagate and kill the worker thread
# File lib/sqreen/signals/signals_submission_strategy.rb, line 71 def guarded(msg, report = true) yield rescue StandardError => e logger.warn "#{msg}: #{e.message}\n#{e.backtrace.map { |x| " #{x}" }.join("\n")}" post_sqreen_exception(RemoteException.new(e)) if report end