Skip to content

Commit 9e37ff5

Browse files
committed
Add instrumentation for slow response processing
1 parent f2faacc commit 9e37ff5

File tree

3 files changed

+21
-4
lines changed

3 files changed

+21
-4
lines changed

lib/docs/core/requester.rb

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
module Docs
22
class Requester < Typhoeus::Hydra
3+
include Instrumentable
4+
35
attr_reader :request_options
46

57
def self.run(urls, options = {}, &block)
@@ -52,9 +54,11 @@ def build_and_queue_request(url, options, &block)
5254
end
5355

5456
def handle_response(response)
55-
on_response.each do |callback|
56-
result = callback.call(response)
57-
result.each { |url| request(url) } if result.is_a? Array
57+
instrument 'handle_response.requester', url: response.url do
58+
on_response.each do |callback|
59+
result = callback.call(response)
60+
result.each { |url| request(url) } if result.is_a?(Array)
61+
end
5862
end
5963
end
6064
end
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
# frozen_string_literal: true
2+
3+
module Docs
4+
class RequesterSubscriber < Subscriber
5+
self.namespace = 'requester'
6+
7+
def handle_response(event)
8+
if event.duration > 10_000
9+
log "WARN: #{format_url event.payload[:url]} was slow to process (#{(event.duration / 1000).round}s)"
10+
end
11+
end
12+
end
13+
end

lib/tasks/docs.thor

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ class DocsCLI < Thor
6262
Docs.rescue_errors = true
6363
Docs.install_report :store if options[:verbose]
6464
Docs.install_report :scraper if options[:debug]
65-
Docs.install_report :progress_bar, :doc, :image if $stdout.tty?
65+
Docs.install_report :progress_bar, :doc, :image, :requester if $stdout.tty?
6666

6767
require 'unix_utils' if options[:package]
6868

0 commit comments

Comments
 (0)