Class: Tracekit::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/tracekit/config.rb

Overview

Configuration for the TraceKit SDK Follows the builder pattern with sensible defaults

Defined Under Namespace

Classes: Builder

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(builder) ⇒ Config

Returns a new instance of Config.



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/tracekit/config.rb', line 12

def initialize(builder)
  @api_key = builder.api_key
  @service_name = builder.service_name
  @endpoint = builder.endpoint || "app.tracekit.dev"
  @use_ssl = builder.use_ssl.nil? ? true : builder.use_ssl
  @environment = builder.environment || "production"
  @service_version = builder.service_version || "1.0.0"
  @enable_code_monitoring = builder.enable_code_monitoring.nil? ? true : builder.enable_code_monitoring
  @code_monitoring_poll_interval = builder.code_monitoring_poll_interval || 30
  @local_ui_port = builder.local_ui_port || 9999
  @sampling_rate = builder.sampling_rate || 1.0
  @llm = (builder.llm || {}).freeze

  validate!
  freeze # Make configuration immutable
end

Instance Attribute Details

#api_keyObject (readonly)

Returns the value of attribute api_key.



7
8
9
# File 'lib/tracekit/config.rb', line 7

def api_key
  @api_key
end

#code_monitoring_poll_intervalObject (readonly)

Returns the value of attribute code_monitoring_poll_interval.



7
8
9
# File 'lib/tracekit/config.rb', line 7

def code_monitoring_poll_interval
  @code_monitoring_poll_interval
end

#enable_code_monitoringObject (readonly)

Returns the value of attribute enable_code_monitoring.



7
8
9
# File 'lib/tracekit/config.rb', line 7

def enable_code_monitoring
  @enable_code_monitoring
end

#endpointObject (readonly)

Returns the value of attribute endpoint.



7
8
9
# File 'lib/tracekit/config.rb', line 7

def endpoint
  @endpoint
end

#environmentObject (readonly)

Returns the value of attribute environment.



7
8
9
# File 'lib/tracekit/config.rb', line 7

def environment
  @environment
end

#llmObject (readonly)

Returns the value of attribute llm.



7
8
9
# File 'lib/tracekit/config.rb', line 7

def llm
  @llm
end

#local_ui_portObject (readonly)

Returns the value of attribute local_ui_port.



7
8
9
# File 'lib/tracekit/config.rb', line 7

def local_ui_port
  @local_ui_port
end

#sampling_rateObject (readonly)

Returns the value of attribute sampling_rate.



7
8
9
# File 'lib/tracekit/config.rb', line 7

def sampling_rate
  @sampling_rate
end

#service_nameObject (readonly)

Returns the value of attribute service_name.



7
8
9
# File 'lib/tracekit/config.rb', line 7

def service_name
  @service_name
end

#service_versionObject (readonly)

Returns the value of attribute service_version.



7
8
9
# File 'lib/tracekit/config.rb', line 7

def service_version
  @service_version
end

#use_sslObject (readonly)

Returns the value of attribute use_ssl.



7
8
9
# File 'lib/tracekit/config.rb', line 7

def use_ssl
  @use_ssl
end

Class Method Details

.build {|builder| ... } ⇒ Object

Builder pattern for fluent API

Yields:

  • (builder)


30
31
32
33
34
# File 'lib/tracekit/config.rb', line 30

def self.build
  builder = Builder.new
  yield(builder) if block_given?
  new(builder)
end