class JoobQ::ErrorMonitor

Overview

Error monitoring and alerting system

Included Modules

Defined in:

joobq/error_monitor.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new(pull : JSON::PullParser) #

[View source]
def self.new(time_window : Time::Span = 5.minutes, max_recent_errors : Int32 = 100, notify_alert : Proc(Hash(String, String), Nil) = ->(_alert_context : Hash(String, String)) do end) #

[View source]

Instance Method Detail

def alert_thresholds : Hash(String, Int32) #

[View source]
def alert_thresholds=(thresholds : Hash(String, Int32)) #

Setter methods for configuration


[View source]
def clear_old_errors : Nil #

[View source]
def clear_redis_errors : Nil #

[View source]
def error_counts : Hash(String, Int32) #

[View source]
def force_reload_from_redis : Nil #

Force reload data from Redis, bypassing the cache


[View source]
def get_error_stats : Hash(String, Int32) #

[View source]
def get_errors_by_queue(queue_name : String) : Array(ErrorContext) #

[View source]
def get_errors_by_type(error_type : String) : Array(ErrorContext) #

[View source]
def get_errors_for_jobs_batch(jids : Array(String)) : Hash(String, ErrorContext | Nil) #

Get error information for multiple jobs in batch


[View source]
def get_fresh_error_stats : Hash(String, Int32) #

Get fresh error stats by forcing a reload from Redis


[View source]
def get_recent_errors(limit : Int32 = 20) : Array(ErrorContext) #

[View source]
def get_recent_errors_count : Int32 #

Get total count of recent errors


[View source]
def get_recent_errors_paginated(page : Int32, per_page : Int32) : Array(ErrorContext) #

Get recent errors with pagination support


[View source]
def get_time_windowed_error_stats : Hash(String, Int32) #

[View source]
def load_errors_from_redis : Nil #

[View source]
def max_recent_errors : Int32 #

[View source]
def max_recent_errors=(max : Int32) #

[View source]
def notify_alert : Proc(Hash(String, String), Nil) #

[View source]
def notify_alert=(callback : Proc(Hash(String, String), Nil)) #

[View source]
def recent_errors : Array(ErrorContext) #

[View source]
def record_error(error_context : ErrorContext) : Nil #

[View source]
def reset : Nil #

[View source]
def store_errors_batch(error_contexts : Array(ErrorContext)) : Nil #

Batch error storage for improved performance


[View source]
def time_window : Time::Span #

[View source]
def time_window=(window : Time::Span) #

[View source]