Class: Logtide::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/logtide/configuration.rb

Overview

Holds the SDK configuration and the exact spec defaults (004 section 2).

Durations are expressed in seconds (Ruby has no duration type; seconds with an optional fractional part is the idiomatic choice and matches sleep, Net::HTTP timeouts, etc.).

Constant Summary collapse

INGEST_SUFFIX =
"/api/v1/ingest"
OTLP_TRACES_SUFFIX =
"/v1/otlp/traces"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(dsn: nil, api_url: nil, api_key: nil, service: nil, environment: "production", release: nil, server_name: nil, batch_size: 100, flush_interval: 5, max_buffer_size: 10_000, max_retries: 3, retry_delay: 1, max_backoff: 60, circuit_breaker_threshold: 5, circuit_breaker_reset: 30, flush_timeout: 10, max_breadcrumbs: 100, sample_rate: 1.0, traces_sample_rate: 1.0, global_metadata: nil, attach_stacktrace: true, send_default_pii: false, debug: false, before_send: nil, before_breadcrumb: nil) ⇒ Configuration

Returns a new instance of Configuration.



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/logtide/configuration.rb', line 25

def initialize(dsn: nil, api_url: nil, api_key: nil, service: nil,
               environment: "production", release: nil, server_name: nil,
               batch_size: 100, flush_interval: 5, max_buffer_size: 10_000,
               max_retries: 3, retry_delay: 1, max_backoff: 60,
               circuit_breaker_threshold: 5, circuit_breaker_reset: 30,
               flush_timeout: 10, max_breadcrumbs: 100,
               sample_rate: 1.0, traces_sample_rate: 1.0,
               global_metadata: nil, attach_stacktrace: true,
               send_default_pii: false, debug: false,
               before_send: nil, before_breadcrumb: nil)
  resolve_endpoint(dsn, api_url, api_key)
  @service = require_service(service)
  @environment = environment
  @release = release
  @server_name = server_name || Socket.gethostname

  @batch_size = batch_size
  @flush_interval = flush_interval
  @max_buffer_size = max_buffer_size
  @max_retries = max_retries
  @retry_delay = retry_delay
  @max_backoff = max_backoff
  @circuit_breaker_threshold = circuit_breaker_threshold
  @circuit_breaker_reset = circuit_breaker_reset
  @flush_timeout = flush_timeout
  @max_breadcrumbs = max_breadcrumbs
  @sample_rate = sample_rate
  @traces_sample_rate = traces_sample_rate
  @global_metadata =  || {}
  @attach_stacktrace = attach_stacktrace
  @send_default_pii = send_default_pii
  @debug = debug
  @before_send = before_send
  @before_breadcrumb = before_breadcrumb
end

Instance Attribute Details

#api_keyObject (readonly)

Returns the value of attribute api_key.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def api_key
  @api_key
end

#api_urlObject (readonly)

Returns the value of attribute api_url.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def api_url
  @api_url
end

#attach_stacktraceObject (readonly)

Returns the value of attribute attach_stacktrace.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def attach_stacktrace
  @attach_stacktrace
end

#batch_sizeObject (readonly)

Returns the value of attribute batch_size.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def batch_size
  @batch_size
end

#before_breadcrumbObject (readonly)

Returns the value of attribute before_breadcrumb.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def before_breadcrumb
  @before_breadcrumb
end

#before_sendObject (readonly)

Returns the value of attribute before_send.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def before_send
  @before_send
end

#circuit_breaker_resetObject (readonly)

Returns the value of attribute circuit_breaker_reset.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def circuit_breaker_reset
  @circuit_breaker_reset
end

#circuit_breaker_thresholdObject (readonly)

Returns the value of attribute circuit_breaker_threshold.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def circuit_breaker_threshold
  @circuit_breaker_threshold
end

#debugObject (readonly)

Returns the value of attribute debug.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def debug
  @debug
end

#environmentObject (readonly)

Returns the value of attribute environment.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def environment
  @environment
end

#flush_intervalObject (readonly)

Returns the value of attribute flush_interval.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def flush_interval
  @flush_interval
end

#flush_timeoutObject (readonly)

Returns the value of attribute flush_timeout.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def flush_timeout
  @flush_timeout
end

#global_metadataObject (readonly)

Returns the value of attribute global_metadata.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def 
  @global_metadata
end

#max_backoffObject (readonly)

Returns the value of attribute max_backoff.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def max_backoff
  @max_backoff
end

#max_breadcrumbsObject (readonly)

Returns the value of attribute max_breadcrumbs.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def max_breadcrumbs
  @max_breadcrumbs
end

#max_buffer_sizeObject (readonly)

Returns the value of attribute max_buffer_size.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def max_buffer_size
  @max_buffer_size
end

#max_retriesObject (readonly)

Returns the value of attribute max_retries.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def max_retries
  @max_retries
end

#releaseObject (readonly)

Returns the value of attribute release.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def release
  @release
end

#retry_delayObject (readonly)

Returns the value of attribute retry_delay.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def retry_delay
  @retry_delay
end

#sample_rateObject (readonly)

Returns the value of attribute sample_rate.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def sample_rate
  @sample_rate
end

#send_default_piiObject (readonly)

Returns the value of attribute send_default_pii.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def send_default_pii
  @send_default_pii
end

#server_nameObject (readonly)

Returns the value of attribute server_name.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def server_name
  @server_name
end

#serviceObject (readonly)

Returns the value of attribute service.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def service
  @service
end

#traces_sample_rateObject (readonly)

Returns the value of attribute traces_sample_rate.



17
18
19
# File 'lib/logtide/configuration.rb', line 17

def traces_sample_rate
  @traces_sample_rate
end

Instance Method Details

#ingest_urlObject



61
62
63
# File 'lib/logtide/configuration.rb', line 61

def ingest_url
  "#{@api_url}#{INGEST_SUFFIX}"
end

#otlp_traces_urlObject



65
66
67
# File 'lib/logtide/configuration.rb', line 65

def otlp_traces_url
  "#{@api_url}#{OTLP_TRACES_SUFFIX}"
end