Class: Uptrace::Client
- Inherits:
-
Object
- Object
- Uptrace::Client
- Defined in:
- lib/uptrace/client.rb
Overview
Uptrace client that configures OpenTelemetry SDK to use Uptrace exporter.
Instance Method Summary collapse
- #disabled? ⇒ Boolean
-
#initialize(dsn: '') ⇒ Client
constructor
A new instance of Client.
- #span_processor ⇒ OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor
- #trace_url(span) ⇒ String
Constructor Details
#initialize(dsn: '') ⇒ Client
Returns a new instance of Client.
9 10 11 12 13 14 15 16 17 18 19 20 |
# File 'lib/uptrace/client.rb', line 9 def initialize(dsn: '') dsn = ENV.fetch('UPTRACE_DSN', '') if dsn.empty? begin @dsn = DSN.new(dsn) rescue ArgumentError => e Uptrace.logger.error("Uptrace is disabled: #{e.}") @disabled = true @dsn = DSN.new('https://[email protected]/PROJECT_ID') end end |
Instance Method Details
#disabled? ⇒ Boolean
22 23 24 |
# File 'lib/uptrace/client.rb', line 22 def disabled? @disabled end |
#span_processor ⇒ OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor
35 36 37 38 39 40 41 42 43 |
# File 'lib/uptrace/client.rb', line 35 def span_processor exp = Uptrace::Trace::Exporter.new(@dsn) OpenTelemetry::SDK::Trace::Export::BatchSpanProcessor.new( exp, max_queue_size: 1000, max_export_batch_size: 1000, schedule_delay: 5_000 ) end |
#trace_url(span) ⇒ String
28 29 30 31 32 |
# File 'lib/uptrace/client.rb', line 28 def trace_url(span) host = @dsn.host.delete_prefix('api.') trace_id = span.context.hex_trace_id "#{@dsn.scheme}://#{host}/search/#{@dsn.project_id}?q=#{trace_id}" end |