Skip to content

Instantly share code, notes, and snippets.

@stympy
Created January 29, 2026 17:57
Show Gist options
  • Select an option

  • Save stympy/ff3eb0e772b2c711c55c2af51a0330e9 to your computer and use it in GitHub Desktop.

Select an option

Save stympy/ff3eb0e772b2c711c55c2af51a0330e9 to your computer and use it in GitHub Desktop.
Honeybadger Insights dashboard for ActiveJob
---
title: ActiveJob
widgets:
- id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
type: insights_vis
grid:
x: 0
"y": 0
w: 2
h: 3
config:
query: |-
filter event_type::str == "perform.active_job"
| stats toHumanString(count()) as count by status::str
| sort status
vis:
view: billboard
chart_config:
groupType: events
titleField: status
valueField: count
- id: b2c3d4e5-f6a7-8901-bcde-f23456789012
type: insights_vis
grid:
x: 2
"y": 0
w: 10
h: 3
presentation:
title: Job counts
subtitle: By job class
config:
query: |-
filter event_type::str == "perform.active_job"
| stats count() by bin(), job_class::str
vis:
view: line
chart_config:
xField: bin()
yField: count()
zField: job_class
groupType: events
- id: c3d4e5f6-a7b8-9012-cdef-345678901234
type: insights_vis
grid:
x: 0
"y": 3
w: 6
h: 3
presentation:
title: Job durations
subtitle: Averaged by job class
config:
query: |-
filter event_type::str == "perform.active_job"
| stats avg(duration::float) as avgDuration by bin(), job_class::str
vis:
view: line
chart_config:
xField: bin()
yField: avgDuration
zField: job_class
groupType: events
yFieldUnit: milliseconds
- id: d4e5f6a7-b8c9-0123-defa-456789012345
type: insights_vis
grid:
x: 0
"y": 6
w: 6
h: 4
presentation:
title: Job stats
config:
query: |-
filter event_type::str == "perform.active_job"
| stats
toHumanString(count(status::str == "success")) as Successes,
toHumanString(count(status::str == "failure")) as Failures,
toHumanString(sum(duration::float), "milliseconds") as totalTime,
toHumanString(avg(duration::float), "milliseconds") as avgTime
by job_class::str as `Job Class`
| only `Job Class`, Successes, Failures, totalTime as `Total execution time`, avgTime as `Avg execution time`
vis:
view: table
- id: e5f6a7b8-c9d0-1234-efab-567890123456
type: insights_vis
grid:
x: 6
"y": 3
w: 6
h: 3
presentation:
title: Duration distributions
subtitle: By job class
config:
query: |-
fields floor(duration::float / 100) * 100 as `Time Bin`
| filter event_type::str == "perform.active_job"
| stats count() as `Duration Count` by `Time Bin`, job_class::str
| limit 500
vis:
view: histogram
chart_config:
xField: Time Bin
yField: Duration Count
zField: job_class
xFieldUnit: milliseconds
- id: f6a7b8c9-d0e1-2345-fabc-678901234567
type: insights_vis
grid:
x: 6
"y": 6
w: 6
h: 4
presentation:
title: 10 slowest job runs
config:
query: |
fields
@ts,
job_class::str as `Job Class`,
queue_name::str as `Queue`,
status::str as `Status`,
toHumanString(duration::float, "milliseconds") as `Duration`
| sort duration::float desc
| filter event_type::str == "perform.active_job"
| limit 10
vis:
view: table
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment