Class: Karafka::Web::Ui::Controllers::ErrorsController

Inherits:
BaseController
  • Object
show all
Defined in:
lib/karafka/web/ui/controllers/errors_controller.rb

Overview

Errors displaying controller It supports only scenarios with a single partition for errors If you have high load of errors, consider going Pro

Constant Summary

Constants inherited from BaseController

BaseController::Models

Instance Attribute Summary

Attributes inherited from BaseController

#params, #session

Instance Method Summary collapse

Methods inherited from BaseController

#cache, #initialize

Methods included from Requests::Hookable

included, #run_after_hooks, #run_before_hooks

Constructor Details

This class inherits a constructor from Karafka::Web::Ui::Controllers::BaseController

Instance Method Details

#indexObject

Lists first page of the errors



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/karafka/web/ui/controllers/errors_controller.rb', line 12

def index
  @watermark_offsets = Models::WatermarkOffsets.find(errors_topic, 0)
  previous_offset, @error_messages, next_offset, = current_page_data

  paginate(
    previous_offset,
    @params.current_offset,
    next_offset,
    # If message is an array, it means it's a compacted dummy offset representation
    @error_messages.map { |message| message.is_a?(Array) ? message.last : message.offset }
  )

  render
end

#show(offset) ⇒ Object

Parameters:

  • offset (Integer)

    given error message offset



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/karafka/web/ui/controllers/errors_controller.rb', line 28

def show(offset)
  @partition_id = 0
  @offset = offset

  watermark_offsets = Models::WatermarkOffsets.find(errors_topic, @partition_id)

  @error_message = Models::Message.find(
    errors_topic,
    @partition_id,
    offset,
    watermark_offsets: watermark_offsets
  )

  paginate(offset, watermark_offsets.low, watermark_offsets.high)

  render
end