hubstep 1.0.2 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0efe830ada901d3c3898e361c861fe5e5c577e7d
4
- data.tar.gz: f2e97b7fe95134a38fcd907f0e5685ee6cafe214
3
+ metadata.gz: a6cc1685cc178b797ff9f372fc95976ce9e71955
4
+ data.tar.gz: 6d0ee36b0061e338830a3216db25522ec32422e7
5
5
  SHA512:
6
- metadata.gz: 365d9a8283621ae309e5e9937c1cc7fa4f72d915bb81dbe62ff0b0f1ad0277c0d28e1e5e8af7783dd22df83a9feb82bf4b3de85bc0ce5de40a0fb2d3d2886e9d
7
- data.tar.gz: 748d1e752f58ac43ad81a477c571635f3e4615468bed8c322e2d7e4b45394e0a8dc6b7e0bcf4400d2b05bccba45dfc11d8f2aaf28d6b3283e01296b36e77d164
6
+ metadata.gz: a957015bb8f033702b83a843d234caa6c4b155e497cfaae7e5264bac6b2960953ae4538b54caf808630eb8a7721ff6221798c128a3016a51d56ef1c49bd4d722
7
+ data.tar.gz: d384d0b3ecf91fae640bc56984fa8405a2dc5df1e8bacf7fb85d739d1b308a53ee2ada32318cf29ada67739812c291c77529ffd0513e9981eb19348adc9b9827
data/hubstep.gemspec CHANGED
@@ -31,5 +31,7 @@ Gem::Specification.new do |spec|
31
31
  spec.add_development_dependency "rack-test", "~> 0.6"
32
32
  spec.add_development_dependency "activesupport", "~> 4.0"
33
33
  spec.add_development_dependency "faraday", "~> 0.10"
34
+ spec.add_development_dependency "failbot", "~> 2.0.0"
35
+ spec.add_development_dependency "webmock", "~> 2.3.1"
34
36
  spec.add_development_dependency "pry-byebug"
35
37
  end
@@ -12,8 +12,9 @@ module LightStep
12
12
  class HTTPError < StandardError; end
13
13
 
14
14
  # There's no way to call through to the normal implementation while getting
15
- # access to the response object, so we just copy all the code here.
16
- def report(report) # rubocop:disable Metrics/AbcSize
15
+ # access to the request/response objects, so we just copy all the code
16
+ # here.
17
+ def report(report) # rubocop:disable Metrics/AbcSize,Metrics/MethodLength
17
18
  p report if @verbose >= 3
18
19
 
19
20
  https = Net::HTTP.new(@host, @port)
@@ -23,6 +24,9 @@ module LightStep
23
24
  req["Content-Type"] = "application/json"
24
25
  req["Connection"] = "keep-alive"
25
26
  req.body = report.to_json
27
+
28
+ ::Failbot.push(request_body: req.body)
29
+
26
30
  res = https.request(req)
27
31
 
28
32
  puts res.to_s, res.body if @verbose >= 3
@@ -32,6 +36,7 @@ module LightStep
32
36
  nil
33
37
  ensure
34
38
  ::Failbot.report!($ERROR_INFO) if $ERROR_INFO
39
+ ::Failbot.pop
35
40
  end
36
41
 
37
42
  def track_error(res)
@@ -24,10 +24,15 @@ module HubStep
24
24
  # returns true, the tracer will be enabled for the duration
25
25
  # of the request. If the Proc returns false, the tracer will
26
26
  # be disabled for the duration of the request.
27
- def initialize(app, tracer, enable_if)
27
+ # include_urls - Boolean specifying whether the `http.url` tag should be
28
+ # added to the spans this middleware creates. URLs can
29
+ # contain sensitive information, so they are omitted by
30
+ # default.
31
+ def initialize(app, tracer:, enable_if:, include_urls: false)
28
32
  @app = app
29
33
  @tracer = tracer
30
34
  @enable_if = enable_if
35
+ @include_urls = include_urls
31
36
  end
32
37
 
33
38
  def call(env)
@@ -68,9 +73,11 @@ module HubStep
68
73
  tags = {
69
74
  "component" => "rack",
70
75
  "span.kind" => "server",
71
- "http.url" => request.url,
72
76
  "http.method" => request.request_method,
73
77
  }
78
+ if @include_urls
79
+ tags["http.url"] = request.url
80
+ end
74
81
  id = request_id(request)
75
82
  if id
76
83
  tags["guid:github_request_id"] = id
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module HubStep
3
- VERSION = "1.0.2"
3
+ VERSION = "2.0.0"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hubstep
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GitHub
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-12-19 00:00:00.000000000 Z
11
+ date: 2016-12-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lightstep
@@ -122,6 +122,34 @@ dependencies:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
124
  version: '0.10'
125
+ - !ruby/object:Gem::Dependency
126
+ name: failbot
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 2.0.0
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - "~>"
137
+ - !ruby/object:Gem::Version
138
+ version: 2.0.0
139
+ - !ruby/object:Gem::Dependency
140
+ name: webmock
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - "~>"
144
+ - !ruby/object:Gem::Version
145
+ version: 2.3.1
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - "~>"
151
+ - !ruby/object:Gem::Version
152
+ version: 2.3.1
125
153
  - !ruby/object:Gem::Dependency
126
154
  name: pry-byebug
127
155
  requirement: !ruby/object:Gem::Requirement