From ed0f91313875b74900544422534df9737b51790b Mon Sep 17 00:00:00 2001 From: Emiliano Frascaro Date: Fri, 19 Jun 2026 18:32:26 +0200 Subject: [PATCH] Restringe pattern ops sidekiq_failure per evitare falsi allarmi. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Non segnala più WARN generici come delete_path failed; solo job ActiveJob/Sidekiq realmente falliti. Co-authored-by: Cursor --- backend/config/ops_log_patterns.yml | 3 ++- .../ops/log_pattern_matcher_sidekiq_spec.rb | 26 +++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 backend/spec/services/ops/log_pattern_matcher_sidekiq_spec.rb diff --git a/backend/config/ops_log_patterns.yml b/backend/config/ops_log_patterns.yml index 7374dca..25b5d84 100644 --- a/backend/config/ops_log_patterns.yml +++ b/backend/config/ops_log_patterns.yml @@ -10,7 +10,8 @@ patterns: regex: 'PG::(ConnectionBad|UnableToSend)' - name: sidekiq_failure severity: warning - regex: 'WARN.*fail' + # Job Sidekiq/ActiveJob falliti — non matchare WARN generici tipo "delete_path failed" + regex: '(Error performing .+Job \(Job ID:|Job raised exception)' - name: fatal_error severity: critical regex: '\bFATAL\b' diff --git a/backend/spec/services/ops/log_pattern_matcher_sidekiq_spec.rb b/backend/spec/services/ops/log_pattern_matcher_sidekiq_spec.rb new file mode 100644 index 0000000..e093267 --- /dev/null +++ b/backend/spec/services/ops/log_pattern_matcher_sidekiq_spec.rb @@ -0,0 +1,26 @@ +require "rails_helper" + +RSpec.describe Ops::LogPatternMatcher, "sidekiq_failure" do + subject(:matcher) { described_class.new } + + it "rileva un job ActiveJob fallito" do + log = "E, [2026-06-17T10:00:00] ERROR -- : Error performing Recordings::UploadJob (Job ID: abc) in 12ms" + + names = matcher.scan(log).map(&:name).grep(/sidekiq_failure/) + expect(names).to eq(["sidekiq_failure"]) + end + + it "rileva Job raised exception (Sidekiq)" do + log = "W, [2026-06-17T10:00:00] WARN -- : Job raised exception" + + names = matcher.scan(log).map(&:name).grep(/sidekiq_failure/) + expect(names).to eq(["sidekiq_failure"]) + end + + it "non rileva warning di cleanup MediaMTX" do + log = "W, [2026-06-17T21:19:52] WARN -- : [Recordings::UploadFromSession] delete_path: MediaMTX path delete failed: 404" + + names = matcher.scan(log).map(&:name).grep(/sidekiq_failure/) + expect(names).to be_empty + end +end