Module: RoundhouseUi::ObservabilityHelper

Defined in:
app/helpers/roundhouse_ui/observability_helper.rb

Instance Method Summary collapse

Instance Method Details

#error_trace_icon(klass:, error: nil) ⇒ Object



25
26
27
28
29
30
31
32
33
34
# File 'app/helpers/roundhouse_ui/observability_helper.rb', line 25

def error_trace_icon(klass:, error: nil)
  adapter = RoundhouseUi.observability
  return unless adapter.respond_to?(:error_url)

  url = adapter.error_url(klass: klass, error: error)
  return unless url

  link_to "", url, target: "_blank", rel: "noopener", class: "rh-trace rh-trace-ico",
    title: "Open in #{adapter.label}", "aria-label": "Open in #{adapter.label}"
end

Deep-link for a grouped error row (no single JID) — a class-wide search. respond_to? keeps older/custom adapters that lack error_url working.



38
39
40
41
42
43
44
45
46
# File 'app/helpers/roundhouse_ui/observability_helper.rb', line 38

def error_trace_link(klass:, error: nil)
  adapter = RoundhouseUi.observability
  return unless adapter.respond_to?(:error_url)

  url = adapter.error_url(klass: klass, error: error)
  return unless url

  link_to "#{adapter.label}", url, target: "_blank", rel: "noopener", class: "rh-trace"
end

#trace_icon(klass:, jid:, queue: nil) ⇒ Object

Icon-only variant for table rows. The adapter's name is worth reading once in a header or a detail page, not once per row — there it is width spent repeating a word the operator already knows.



16
17
18
19
20
21
22
23
# File 'app/helpers/roundhouse_ui/observability_helper.rb', line 16

def trace_icon(klass:, jid:, queue: nil)
  adapter = RoundhouseUi.observability
  url = adapter.job_url(klass: klass, jid: jid, queue: queue)
  return unless url

  link_to "", url, target: "_blank", rel: "noopener", class: "rh-trace rh-trace-ico",
    title: "Open in #{adapter.label}", "aria-label": "Open in #{adapter.label}"
end

Renders a deep-link to the configured observability tool for a job, or nothing when no adapter is configured (the default).



5
6
7
8
9
10
11
# File 'app/helpers/roundhouse_ui/observability_helper.rb', line 5

def trace_link(klass:, jid:, queue: nil)
  adapter = RoundhouseUi.observability
  url = adapter.job_url(klass: klass, jid: jid, queue: queue)
  return unless url

  link_to "#{adapter.label}", url, target: "_blank", rel: "noopener", class: "rh-trace"
end