Class: Lapsoss::Adapters::TelebugsAdapter
- Inherits:
-
SentryAdapter
- Object
- Base
- SentryAdapter
- Lapsoss::Adapters::TelebugsAdapter
- 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
Instance Method Summary collapse
-
#capture(event) ⇒ Object
Override capture to add debug logging.
- #debug_log(message, level = :info) ⇒ Object
-
#headers_for(envelope) ⇒ Object
Override headers builder to add Telebugs-specific headers.
-
#initialize(name = :telebugs, settings = {}) ⇒ TelebugsAdapter
constructor
A new instance of TelebugsAdapter.
Methods inherited from SentryAdapter
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
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(, level = :info) return unless @debug if defined?(Rails) && Rails.respond_to?(:logger) && Rails.logger Rails.logger.public_send(level, ) elsif @logger @logger.public_send(level, ) 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 |