Class: LangsmithrbRails::OTEL::Exporter

Inherits:
Object
  • Object
show all
Defined in:
lib/langsmithrb_rails/otel/exporter.rb

Overview

OpenTelemetry exporter for LangSmith

Instance Method Summary collapse

Constructor Details

#initialize(api_key: nil, api_url: nil) ⇒ Exporter

Initialize a new OpenTelemetry exporter



10
11
12
13
14
# File 'lib/langsmithrb_rails/otel/exporter.rb', line 10

def initialize(api_key: nil, api_url: nil)
  @api_key = api_key || Config[:api_key]
  @api_url = api_url || Config[:api_url]
  @client = LangsmithrbRails::Client.new(api_key: @api_key, api_url: @api_url)
end

Instance Method Details

#export(spans) ⇒ Integer

Export spans to LangSmith



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/langsmithrb_rails/otel/exporter.rb', line 19

def export(spans)
  return :success if spans.empty?

  spans.each do |span|
    export_span(span)
  end

  :success
rescue => e
  LangsmithrbRails.logger.error("Failed to export spans: #{e.message}")
  :failure
end

#shutdown(timeout = 0) ⇒ Boolean

Shutdown the exporter



35
36
37
# File 'lib/langsmithrb_rails/otel/exporter.rb', line 35

def shutdown(timeout = 0)
  true
end