Sha256: 044176ad48900680fc97fdde1fa33b44342082251f9c3aaa3d0f3a764be832e3
Contents?: true
Size: 1.42 KB
Versions: 15
Compression:
Stored size: 1.42 KB
Contents
# frozen_string_literal: true require 'json' module OpenTracing module Instrumentation module Common # ErrorWriter can be used to write error tag and log to span class ErrorWriter LOG_ERROR_EVENT = 'error' ERROR_TAG = 'error' attr_reader :set_error_tag attr_reader :log_error_event # @param set_error_tag [TrueClass,ErrorClass] enable set error tag # @param log_error_event [TrueClass, ErrorClass] enable log exception def initialize( set_error_tag: true, log_error_event: true ) @set_error_tag = set_error_tag @log_error_event = log_error_event end # Write error tag and log error event # @param span [OpenTracing::Span] target for tag and log # @param exception [Exception] logged to tag def write_error(span, exception, event: LOG_ERROR_EVENT) tag_error(span) log_error(span, exception, event) end private def tag_error(span) return unless set_error_tag span.set_tag('error', true) end def log_error(span, exception, event) return unless log_error_event span.log_kv( event: event, 'error.kind': exception.class.to_s, message: exception.to_s, stack: JSON.dump(exception.backtrace), ) end end end end end
Version data entries
15 entries across 15 versions & 1 rubygems