Sha256: 4d2717c06a0c1b07878263b80f5498a3882b24cc6eb228d941eaea441d226919

Contents?: true

Size: 1.15 KB

Versions: 3

Compression:

Stored size: 1.15 KB

Contents

require 'honeybadger/plugin'

module Honeybadger
  module Plugins
    Plugin.register :karafka do
      requirement { defined?(::Karafka) && ::Karafka.respond_to?(:monitor) }

      execution do
        ::Karafka.monitor.subscribe("error.occurred") do |event|
          Honeybadger.notify(event[:error])
          Honeybadger.event("error.occurred.karafka", error: event[:error]) if config.load_plugin_insights?(:karafka)
        end

        if config.load_plugin_insights?(:karafka)
          ::Karafka.monitor.subscribe("consumer.consumed") do |event|
            context = {
              duration: event.payload[:time],
              consumer: event.payload[:caller].class.to_s,
              id: event.payload[:caller].id,
              topic: event.payload[:caller].messages.metadata.topic,
              messages_count: event.payload[:caller].messages.metadata.size,
              processing_lag: event.payload[:caller].messages.metadata.processing_lag,
              partition: event.payload[:caller].messages.metadata.partition
            }

            Honeybadger.event("consumer.consumed.karafka", context)
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
honeybadger-5.18.0 lib/honeybadger/plugins/karafka.rb
honeybadger-5.17.0 lib/honeybadger/plugins/karafka.rb
honeybadger-5.16.0 lib/honeybadger/plugins/karafka.rb