Module: SidekiqVigil
- Defined in:
- lib/sidekiq_vigil.rb,
lib/sidekiq_vigil/cli.rb,
lib/sidekiq_vigil/config.rb,
lib/sidekiq_vigil/result.rb,
lib/sidekiq_vigil/checker.rb,
lib/sidekiq_vigil/runtime.rb,
lib/sidekiq_vigil/storage.rb,
lib/sidekiq_vigil/version.rb,
lib/sidekiq_vigil/reporter.rb,
lib/sidekiq_vigil/timezone.rb,
lib/sidekiq_vigil/collector.rb,
lib/sidekiq_vigil/alert/cron.rb,
lib/sidekiq_vigil/alert/mute.rb,
lib/sidekiq_vigil/check/base.rb,
lib/sidekiq_vigil/health_app.rb,
lib/sidekiq_vigil/alert/event.rb,
lib/sidekiq_vigil/alert/state.rb,
lib/sidekiq_vigil/sidekiq_api.rb,
lib/sidekiq_vigil/check/memory.rb,
lib/sidekiq_vigil/notifier/log.rb,
lib/sidekiq_vigil/alert/manager.rb,
lib/sidekiq_vigil/notifier/base.rb,
lib/sidekiq_vigil/alert/grouping.rb,
lib/sidekiq_vigil/check/registry.rb,
lib/sidekiq_vigil/check/set_size.rb,
lib/sidekiq_vigil/notifier/slack.rb,
lib/sidekiq_vigil/leader_election.rb,
lib/sidekiq_vigil/check/queue_size.rb,
lib/sidekiq_vigil/check/stuck_jobs.rb,
lib/sidekiq_vigil/notifier/manager.rb,
lib/sidekiq_vigil/notifier/webhook.rb,
lib/sidekiq_vigil/check/utilization.rb,
lib/sidekiq_vigil/middleware/server.rb,
lib/sidekiq_vigil/check/failure_rate.rb,
lib/sidekiq_vigil/check/redis_health.rb,
lib/sidekiq_vigil/check/process_alive.rb,
lib/sidekiq_vigil/check/queue_latency.rb,
lib/sidekiq_vigil/check/scheduled_backlog.rb,
lib/sidekiq_vigil/notifier/http_transport.rb,
lib/sidekiq_vigil/check/throughput_anomaly.rb
Defined Under Namespace
Modules: Alert, Check, Middleware, Notifier, Timezone
Classes: AlertingConfig, CLI, Checker, Collector, Config, ConfigError, Error, HealthApp, LeaderElection, Reporter, Result, Runtime, SidekiqApi, Storage
Constant Summary
collapse
- BUILT_IN_CHECKS =
{
queue_latency: SidekiqVigil::Check::QueueLatency,
queue_size: SidekiqVigil::Check::QueueSize,
retry_set: SidekiqVigil::Check::RetrySet,
dead_set: SidekiqVigil::Check::DeadSet,
process_alive: SidekiqVigil::Check::ProcessAlive,
utilization: SidekiqVigil::Check::Utilization,
failure_rate: SidekiqVigil::Check::FailureRate,
stuck_jobs: SidekiqVigil::Check::StuckJobs,
memory: SidekiqVigil::Check::Memory,
redis_health: SidekiqVigil::Check::RedisHealth,
scheduled_backlog: SidekiqVigil::Check::ScheduledBacklog,
throughput_anomaly: SidekiqVigil::Check::ThroughputAnomaly
}.freeze
- VERSION =
"0.1.0"
Class Attribute Summary collapse
Class Method Summary
collapse
Class Attribute Details
.logger ⇒ Object
29
30
31
|
# File 'lib/sidekiq_vigil.rb', line 29
def logger
@logger ||= defined?(Sidekiq.logger) ? Sidekiq.logger : Logger.new($stdout)
end
|
Class Method Details
.build_storage(configuration = config) ⇒ Object
33
34
35
36
37
38
39
40
41
|
# File 'lib/sidekiq_vigil.rb', line 33
def build_storage(configuration = config)
redis = if configuration.redis
options = configuration.redis.transform_keys(&:to_sym).compact
pool_size = options.delete(:pool_size) || 5
pool_timeout = options.delete(:pool_timeout) || 1
RedisClient.config(**options).new_pool(size: pool_size, timeout: pool_timeout)
end
Storage.new(redis:, key_prefix: configuration.key_prefix)
end
|
.collector ⇒ Object
25
26
27
|
# File 'lib/sidekiq_vigil.rb', line 25
def collector
@collector ||= Collector.new
end
|
.config ⇒ Object
21
22
23
|
# File 'lib/sidekiq_vigil.rb', line 21
def config
@config ||= Config.new
end
|
15
16
17
18
19
|
# File 'lib/sidekiq_vigil.rb', line 15
def configure
yield config
config.validate!
config
end
|
.install! ⇒ Object
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/sidekiq_vigil.rb', line 43
def install!
return if @installed
Sidekiq.configure_server do |server|
server.server_middleware { |chain| chain.add(Middleware::Server) }
server.on(:startup) { start_runtime }
server.on(:quiet) { @runtime&.quiet }
server.on(:shutdown) { stop_runtime }
end
@installed = true
end
|
.reset! ⇒ Object
65
66
67
68
69
70
|
# File 'lib/sidekiq_vigil.rb', line 65
def reset!
@config = Config.new
@collector = Collector.new
@logger = nil
@runtime = nil
end
|
.start_runtime ⇒ Object
55
56
57
58
|
# File 'lib/sidekiq_vigil.rb', line 55
def start_runtime
@runtime ||= Runtime.new(config:, storage: build_storage)
@runtime.start
end
|
.stop_runtime ⇒ Object
60
61
62
63
|
# File 'lib/sidekiq_vigil.rb', line 60
def stop_runtime
@runtime&.stop
@runtime = nil
end
|