All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
-
Optional capture of error class for failed jobs counter.
Set
label_for_error_class_on_sidekiq_jobs_failed
totrue
to adderror
label tosidekiq_jobs_failed_total
metric.
- Stop including development-related files into packaged gem to avoid confusing users or software tools. @Envek
-
retries_segmented_by_queue
configuration setting to allow segmentation of retry count by queue.It is disabled by default as it requires to iterate over all jobs in the retry set and may be very slow if number of retries is huge.
- New metric
sidekiq_jobs_rerouted_total_count
to measure jobs that on enqueue were pushed to different queue from the one specified in worker'ssidekiq_options
. See #30. @LukinEgor
- In
sidekiq_jobs_enqueued_total_count
track real queue that job was pushed into, not the one specified insidekiq_options
(sometimes they may be different). See #30. @LukinEgor
-
Configuration setting to declare worker in-process metrics outside workers.
It can be needed for official Prometheus client in multi-process mode where separate process expose metrics from Sidekiq worker processes.
-
most_recent
aggregation for all cluster-wide gauges.It is also needed for official Prometheus client in multi-process mode to reduce number of time series.
-
Ability to programmatically change gem settings by calling writer methods on
Yabeda::Sidekiq.config
. @EnvekUsage is quite limited though as you need to do it before
Yabeda.configure!
is called.
- Compatibility with Sidekiq 6.2.2+ due to renamings in Sidekiq's undocumented API that yabeda-sidekiq uses. See mperham/sidekiq#4971. @Envek
-
sidekiq_running_job_runtime
metric that tracks maximum runtime of currently running jobs. It may be useful for detection of hung jobs. See #17. @dsalahutdinov, @Envek -
Setting
collect_cluster_metrics
allowing to force enable or disable collection of global (whole Sidekiq installaction-wide) metrics. See #20. @mrexoxBy default all sidekiq worker processes (servers) collects global metrics about whole Sidekiq installation. Client processes (everything else that is not Sidekiq worker) by default doesn't.
With this config you can override this behavior:
- force disable if you don't want multiple Sidekiq workers to report the same numbers (that causes excess load to both Redis and monitoring)
- force enable if you want non-Sidekiq process to collect them (like dedicated metric exporter process)
- Tags from
yabeda_tags
method are applied to all metrics collected inside a job, not only sidekiq-specific. See #14. @Envek
- Ability to override or add tags for every job via
yabeda_tags
method. @Envek
- New
sidekiq_job_latency
histogram to track latency statistics of different job classes. #9 by @asusikov
- BREAKING CHANGE! Renamed
sidekiq_jobs_latency
gauge tosidekiq_queue_latency
to better describe its purpose and differentiate with the new histogram. #9 by @asusikov
- Added
tags
option to metric declarations for compatibility with yabeda and yabeda-prometheus 0.2. @Envek
- Require of core yabeda gem #4. @dsalahutdinov
- Require of core yabeda gem #1. @Envek
- Renamed evil-metrics-sidekiq gem to yabeda-sidekiq. @Envek
- Automatic add client and server middlewares to Sidekiq. @Envek
- Initial release of evil-metrics-sidekiq gem. @Envek