Class: Seams::Observability::Adapter

Inherits:
Object
  • Object
show all
Defined in:
lib/seams/observability/adapter.rb

Overview

Abstract base class for observability adapters. Concrete adapters bridge to the host application's logger / APM (Rails.logger, Datadog, OpenTelemetry, etc.) — engines never speak to those libraries directly.

Instance Method Summary collapse

Instance Method Details

#debug(_message, **_context) ⇒ void

This method returns an undefined value.

Log a debug-level message with structured context.

Parameters:

  • _message (String) —

    the log message.

  • _context (Hash) —

    structured key/value context (engine, actor id, ...).

Raises:

  • (NotImplementedError) —

    unless a subclass overrides it.



17
18
19
# File 'lib/seams/observability/adapter.rb', line 17

def debug(_message, **_context)
  raise NotImplementedError, "#{self.class} must implement #debug"
end

#error(_message, **_context) ⇒ void

This method returns an undefined value.

Log an error-level message with structured context.

Parameters:

  • _message (String) —

    the log message.

  • _context (Hash) —

    structured key/value context (engine, actor id, ...).

Raises:

  • (NotImplementedError) —

    unless a subclass overrides it.



41
42
43
# File 'lib/seams/observability/adapter.rb', line 41

def error(_message, **_context)
  raise NotImplementedError, "#{self.class} must implement #error"
end

#info(_message, **_context) ⇒ void

This method returns an undefined value.

Log an info-level message with structured context.

Parameters:

  • _message (String) —

    the log message.

  • _context (Hash) —

    structured key/value context (engine, actor id, ...).

Raises:

  • (NotImplementedError) —

    unless a subclass overrides it.



25
26
27
# File 'lib/seams/observability/adapter.rb', line 25

def info(_message, **_context)
  raise NotImplementedError, "#{self.class} must implement #info"
end

#measure(_operation, **_context) ⇒ Object

Time the given block and emit the duration as structured context.

Parameters:

  • _operation (String) —

    a label for the timed operation.

  • _context (Hash) —

    structured key/value context.

Returns:

  • (Object) —

    whatever the block returns.

Raises:

  • (NotImplementedError) —

    unless a subclass overrides it.



50
51
52
# File 'lib/seams/observability/adapter.rb', line 50

def measure(_operation, **_context, &)
  raise NotImplementedError, "#{self.class} must implement #measure"
end

#warn(_message, **_context) ⇒ void

This method returns an undefined value.

Log a warn-level message with structured context.

Parameters:

  • _message (String) —

    the log message.

  • _context (Hash) —

    structured key/value context (engine, actor id, ...).

Raises:

  • (NotImplementedError) —

    unless a subclass overrides it.



33
34
35
# File 'lib/seams/observability/adapter.rb', line 33

def warn(_message, **_context)
  raise NotImplementedError, "#{self.class} must implement #warn"
end