Class: Honeybadger::RubyLLMSubscriber

Inherits:
NotificationSubscriber show all
Defined in:
lib/honeybadger/plugins/ruby_llm.rb

Instance Method Summary collapse

Methods inherited from NotificationSubscriber

#finish, #process?, #record, #record_metrics, #start

Methods included from InstrumentationHelper

#decrement_counter, #extract_attributes, #extract_callable, #gauge, #histogram, #increment_counter, #metric_agent, #metric_attributes, #metric_instrumentation, #metric_source, #monotonic_timer, #time

Instance Method Details

#format_payload(name, payload) ⇒ Object

Payloads carry full Ruby objects (chat, messages, responses, tool arguments, inputs), which may contain sensitive content. Allow only scalar metadata through.



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/honeybadger/plugins/ruby_llm.rb', line 32

def format_payload(name, payload)
  case name
  when "chat.ruby_llm"
    payload.slice(:provider, :provider_class, :model, :message_count, :temperature, :tool_choice, :tool_call_limit, :streaming, :response_model, :response_role, :tool_call, :input_tokens, :output_tokens, :cached_tokens, :cache_creation_tokens, :thinking_tokens, :exception)
  when "tool_call.ruby_llm"
    payload.slice(:provider, :provider_class, :model, :tool_name, :tool_call_id, :result_class, :exception)
  when "embedding.ruby_llm"
    payload.slice(:provider, :provider_class, :model, :dimensions, :response_model, :input_tokens, :embedding_dimensions, :embedding_count, :exception)
  when "image.ruby_llm"
    payload.slice(:provider, :provider_class, :model, :size, :response_model, :exception)
  when "moderation.ruby_llm"
    payload.slice(:provider, :provider_class, :model, :flagged, :exception)
  when "transcription.ruby_llm"
    payload.slice(:provider, :provider_class, :model, :language, :response_model, :input_tokens, :output_tokens, :exception)
  when "models.refresh.ruby_llm"
    payload.slice(:remote_only, :model_count, :exception)
  else
    payload.slice(:provider, :provider_class, :model, :exception)
  end
end