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.1"
Class Method Summary collapse
-
.config ⇒ Object
Global configuration instance.
-
.configure {|config| ... } ⇒ Object
Yields the configuration object for block-style setup:.
-
.metrics ⇒ Object
Returns the Tracelit metrics interface for manual instrumentation:.
-
.start! ⇒ Object
Manually trigger SDK setup.
-
.tracer ⇒ Object
Returns the OpenTelemetry tracer for this service.
Class Method Details
.config ⇒ Object
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
24 25 26 |
# File 'lib/tracelit.rb', line 24 def configure yield config end |
.metrics ⇒ Object
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 |
.tracer ⇒ Object
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 |