Module: Tracelit

Defined in:
lib/tracelit.rb,
lib/tracelit/metrics.rb,
lib/tracelit/railtie.rb,
lib/tracelit/version.rb,
lib/tracelit/configuration.rb,
lib/tracelit/instrumentation.rb,
lib/tracelit/rails_logger_bridge.rb,
lib/tracelit/error_span_processor.rb,
lib/tracelit/error_always_on_sampler.rb

Defined Under Namespace

Modules: Instrumentation, Metrics, RailsLoggerBridge Classes: Configuration, ErrorAlwaysOnSampler, ErrorSpanProcessor, Railtie

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.configObject

Global configuration instance. Thread-safe after boot — configure once in an initializer, read-only thereafter.



11
12
13
# File 'lib/tracelit.rb', line 11

def config
  @config ||= Configuration.new
end

.configure {|config| ... } ⇒ Object

Yields the configuration object for block-style setup:

Tracelit.configure do |config|
  config.api_key      = "tl_live_abc123"
  config.service_name = "payments-api"
  config.environment  = "production"
  config.sample_rate  = 0.2
end

Yields:



24
25
26
# File 'lib/tracelit.rb', line 24

def configure
  yield config
end

.metricsObject

Returns the Tracelit metrics interface for manual instrumentation:

Tracelit.metrics.counter("payments.processed").add(1,
  attributes: { "currency" => "USD" }
)


58
59
60
# File 'lib/tracelit.rb', line 58

def metrics
  Tracelit::Metrics
end

.start!Object

Manually trigger SDK setup. Not needed for Rails — the Railtie handles this automatically. Call explicitly for Sinatra/Rack:

Tracelit.start!


33
34
35
# File 'lib/tracelit.rb', line 33

def start!
  Instrumentation.setup(config)
end

.tracerObject

Returns the OpenTelemetry tracer for this service. Use for manual instrumentation of custom operations:

Tracelit.tracer.in_span("my_operation") do |span|
  span.set_attribute("order.id", order.id)
  do_work
end


45
46
47
48
49
50
# File 'lib/tracelit.rb', line 45

def tracer
  OpenTelemetry.tracer_provider.tracer(
    config.resolved_service_name,
    VERSION
  )
end