Skip to content
Snippets Groups Projects
Commit 9101915c authored by Paco Guzman's avatar Paco Guzman
Browse files

Add Sidekiq queue duration to transaction metrics.

parent 62948886
No related branches found
No related tags found
No related merge requests found
Loading
@@ -2,6 +2,7 @@ Please view this file on the master branch, on stable branches it's out of date.
Loading
@@ -2,6 +2,7 @@ Please view this file on the master branch, on stable branches it's out of date.
   
v 8.10.0 (unreleased) v 8.10.0 (unreleased)
- Wrap code blocks on Activies and Todos page. !4783 (winniehell) - Wrap code blocks on Activies and Todos page. !4783 (winniehell)
- Add Sidekiq queue duration to transaction metrics.
- Fix MR-auto-close text added to description. !4836 - Fix MR-auto-close text added to description. !4836
- Implement Subresource Integrity for CSS and JavaScript assets. This prevents malicious assets from loading in the case of a CDN compromise. - Implement Subresource Integrity for CSS and JavaScript assets. This prevents malicious assets from loading in the case of a CDN compromise.
   
Loading
Loading
Loading
@@ -8,6 +8,8 @@ module Gitlab
Loading
@@ -8,6 +8,8 @@ module Gitlab
trans = Transaction.new("#{worker.class.name}#perform") trans = Transaction.new("#{worker.class.name}#perform")
   
begin begin
# Old gitlad-shell messages don't provide enqueued_at/created_at attributes
trans.set(:sidekiq_queue_duration, Time.now.to_f - (message['enqueued_at'] || message['created_at'] || 0))
trans.run { yield } trans.run { yield }
ensure ensure
trans.finish trans.finish
Loading
Loading
Loading
@@ -2,6 +2,7 @@ require 'spec_helper'
Loading
@@ -2,6 +2,7 @@ require 'spec_helper'
   
describe Gitlab::Metrics::SidekiqMiddleware do describe Gitlab::Metrics::SidekiqMiddleware do
let(:middleware) { described_class.new } let(:middleware) { described_class.new }
let(:message) { { 'args' => ['test'], 'enqueued_at' => Time.new(2016, 6, 23, 6, 59).to_f } }
   
describe '#call' do describe '#call' do
it 'tracks the transaction' do it 'tracks the transaction' do
Loading
@@ -11,9 +12,23 @@ describe Gitlab::Metrics::SidekiqMiddleware do
Loading
@@ -11,9 +12,23 @@ describe Gitlab::Metrics::SidekiqMiddleware do
with('TestWorker#perform'). with('TestWorker#perform').
and_call_original and_call_original
   
expect_any_instance_of(Gitlab::Metrics::Transaction).to receive(:set).with(:sidekiq_queue_duration, instance_of(Float))
expect_any_instance_of(Gitlab::Metrics::Transaction).to receive(:finish) expect_any_instance_of(Gitlab::Metrics::Transaction).to receive(:finish)
   
middleware.call(worker, 'test', :test) { nil } middleware.call(worker, message, :test) { nil }
end
it 'tracks the transaction (for messages without `enqueued_at`)' do
worker = double(:worker, class: double(:class, name: 'TestWorker'))
expect(Gitlab::Metrics::Transaction).to receive(:new).
with('TestWorker#perform').
and_call_original
expect_any_instance_of(Gitlab::Metrics::Transaction).to receive(:set).with(:sidekiq_queue_duration, instance_of(Float))
expect_any_instance_of(Gitlab::Metrics::Transaction).to receive(:finish)
middleware.call(worker, {}, :test) { nil }
end end
end end
end end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment