Module: RerankerRuby::Logging
- Defined in:
- lib/reranker_ruby/logging.rb
Overview
Global logging and metrics for reranking operations.
Usage:
RerankerRuby::Logging.logger = Logger.new($stdout)
RerankerRuby::Logging.on_rerank do |event|
puts "#{event[:reranker]} took #{event[:duration_ms]}ms for #{event[:document_count]} docs"
end
Class Attribute Summary collapse
Class Method Summary collapse
- .callbacks ⇒ Object
- .clear_callbacks ⇒ Object
-
.instrument(reranker_class:, query:, document_count:, top_k:) ⇒ Object
Wrap a rerank call with logging and metrics.
-
.on_rerank(&block) ⇒ Object
Register a callback for rerank events.
Class Attribute Details
.logger ⇒ Object
18 19 20 |
# File 'lib/reranker_ruby/logging.rb', line 18 def logger @logger ||= Logger.new($stdout, level: Logger::WARN) end |
Class Method Details
.callbacks ⇒ Object
27 28 29 |
# File 'lib/reranker_ruby/logging.rb', line 27 def callbacks @callbacks ||= [] end |
.clear_callbacks ⇒ Object
31 32 33 |
# File 'lib/reranker_ruby/logging.rb', line 31 def clear_callbacks @callbacks = [] end |
.instrument(reranker_class:, query:, document_count:, top_k:) ⇒ Object
Wrap a rerank call with logging and metrics
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'lib/reranker_ruby/logging.rb', line 36 def instrument(reranker_class:, query:, document_count:, top_k:) start = Process.clock_gettime(Process::CLOCK_MONOTONIC) result = yield duration_ms = ((Process.clock_gettime(Process::CLOCK_MONOTONIC) - start) * 1000).round(2) event = { reranker: reranker_class, query: query, document_count: document_count, top_k: top_k, result_count: result.length, duration_ms: duration_ms, top_score: result.first.respond_to?(:score) ? result.first.score : nil } logger.info { "[RerankerRuby] #{reranker_class} reranked #{document_count} docs in #{duration_ms}ms" } callbacks.each { |cb| cb.call(event) } result end |
.on_rerank(&block) ⇒ Object
Register a callback for rerank events
23 24 25 |
# File 'lib/reranker_ruby/logging.rb', line 23 def on_rerank(&block) callbacks << block end |