Class: Lapsoss::Adapters::TelebugsAdapter

Inherits:
SentryAdapter show all
Defined in:
lib/lapsoss/adapters/telebugs_adapter.rb

Overview

Telebugs adapter - uses Sentry protocol with Telebugs endpoints Telebugs is compatible with Sentry’s API, so we inherit from SentryAdapter

Constant Summary

Constants included from Concerns::EnvelopeBuilder

Concerns::EnvelopeBuilder::GZIP_THRESHOLD

Constants included from Concerns::LevelMapping

Concerns::LevelMapping::LEVEL_MAPPINGS

Constants inherited from Base

Base::JSON_CONTENT_TYPE, Base::USER_AGENT

Instance Attribute Summary

Attributes inherited from Base

#name, #settings

Instance Method Summary collapse

Methods inherited from SentryAdapter

#capabilities

Methods included from Concerns::HttpDelivery

#adapter_specific_headers, #build_delivery_headers, #deliver, #git_branch, #git_sha, #handle_client_error, #handle_delivery_error, #handle_response, #mark_error_handled

Methods included from Concerns::EnvelopeBuilder

#build_envelope_wrapper, #format_breadcrumbs, #format_timestamp, #sdk_info, #serialize_payload

Methods included from Concerns::LevelMapping

#map_level

Methods inherited from Base

#capabilities, #disable!, #enable!, #enabled?, #flush, #shutdown, #supports?

Methods included from Validators

logger, validate_api_key!, validate_callable!, validate_dsn!, validate_environment!, validate_presence!, validate_retries!, validate_sample_rate!, validate_timeout!, validate_url!

Constructor Details

#initialize(name = :telebugs, settings = {}) ⇒ TelebugsAdapter

Returns a new instance of TelebugsAdapter.



10
11
12
13
14
# File 'lib/lapsoss/adapters/telebugs_adapter.rb', line 10

def initialize(name = :telebugs, settings = {})
  debug_log "[TELEBUGS INIT] Initializing with settings: #{settings.inspect}"
  super(name, settings)
  debug_log "[TELEBUGS INIT] Initialization complete, enabled: #{@enabled}"
end

Instance Method Details

#capture(event) ⇒ Object

Override capture to add debug logging



63
64
65
66
67
68
69
70
71
72
73
74
75
76
# File 'lib/lapsoss/adapters/telebugs_adapter.rb', line 63

def capture(event)
  debug_log "[TELEBUGS DEBUG] Capture called for event: #{event.type}"
  debug_log "[TELEBUGS DEBUG] DSN configured: #{@dsn.inspect}"
  debug_log "[TELEBUGS DEBUG] Endpoint: #{@api_endpoint}"
  debug_log "[TELEBUGS DEBUG] API Path: #{@api_path}"

  result = super(event)
  debug_log "[TELEBUGS DEBUG] Event sent successfully, response: #{result.inspect}"
  result
rescue => e
  debug_log "[TELEBUGS ERROR] Failed to send: #{e.message}", :error
  debug_log "[TELEBUGS ERROR] Backtrace: #{e.backtrace.first(5).join("\n")}", :error
  raise
end

#debug_log(message, level = :info) ⇒ Object



78
79
80
81
82
83
84
85
86
# File 'lib/lapsoss/adapters/telebugs_adapter.rb', line 78

def debug_log(message, level = :info)
  return unless @debug

  if defined?(Rails) && Rails.respond_to?(:logger) && Rails.logger
    Rails.logger.public_send(level, message)
  elsif @logger
    @logger.public_send(level, message)
  end
end

#headers_for(envelope) ⇒ Object

Override headers builder to add Telebugs-specific headers



89
90
91
92
93
94
# File 'lib/lapsoss/adapters/telebugs_adapter.rb', line 89

def headers_for(envelope)
  base_headers = super(envelope)
  base_headers.merge(
    "X-Telebugs-Client" => "lapsoss/#{Lapsoss::VERSION}"
  )
end