ddtrace 0.11.4 → 0.12.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
@@ -22,13 +22,8 @@ module Datadog
22
22
  # SignalException::Interrupt would still bubble up.
23
23
  rescue Exception => e
24
24
  tracer = Datadog.configuration[:rails][:tracer]
25
- span = tracer.active_span
26
- unless span.nil?
27
- # Only set error if it's supposed to be flagged as such
28
- # e.g. we don't want to flag 404s.
29
- # You can add custom errors via `config.action_dispatch.rescue_responses`
30
- span.set_error(e) if Utils.exception_is_error?(e)
31
- end
25
+ span = tracer.active_span()
26
+ span.set_error(e) unless span.nil?
32
27
  raise e
33
28
  end
34
29
  end
@@ -36,6 +36,11 @@ module Datadog
36
36
 
37
37
  defined?(::Rails::VERSION) && ::Rails::VERSION::MAJOR.to_i >= 3
38
38
  end
39
+
40
+ def active_record_instantiation_tracing_supported?
41
+ Gem.loaded_specs['activerecord'] \
42
+ && Gem.loaded_specs['activerecord'].version >= Gem::Version.new('4.2')
43
+ end
39
44
  end
40
45
  end
41
46
  end
@@ -6,10 +6,7 @@ module Datadog
6
6
  # Railtie class initializes
7
7
  class Railtie < Rails::Railtie
8
8
  config.app_middleware.insert_before(0, Datadog::Contrib::Rack::TraceMiddleware)
9
- # Insert right after Rails exception handling middleware, because if it's before,
10
- # it catches and swallows the error. If it's too far after, custom middleware can find itself
11
- # between, and raise exceptions that don't end up getting tagged on the request properly (e.g lost stack trace.)
12
- config.app_middleware.insert_after(ActionDispatch::ShowExceptions, Datadog::Contrib::Rails::ExceptionMiddleware)
9
+ config.app_middleware.use(Datadog::Contrib::Rails::ExceptionMiddleware)
13
10
 
14
11
  config.after_initialize do
15
12
  Datadog::Contrib::Rails::Framework.setup
@@ -47,77 +47,32 @@ module Datadog
47
47
  end
48
48
 
49
49
  def self.adapter_name
50
- connection_config[:adapter_name]
50
+ normalize_vendor(connection_config[:adapter])
51
51
  end
52
52
 
53
53
  def self.database_name
54
- connection_config[:database_name]
54
+ connection_config[:database]
55
55
  end
56
56
 
57
57
  def self.adapter_host
58
- connection_config[:adapter_host]
58
+ connection_config[:host]
59
59
  end
60
60
 
61
61
  def self.adapter_port
62
- connection_config[:adapter_port]
62
+ connection_config[:port]
63
63
  end
64
64
 
65
- def self.connection_config(object_id = nil)
66
- config = object_id.nil? ? default_connection_config : connection_config_by_id(object_id)
67
- {
68
- adapter_name: normalize_vendor(config[:adapter]),
69
- adapter_host: config[:host],
70
- adapter_port: config[:port],
71
- database_name: config[:database]
72
- }
73
- end
74
-
75
- # Attempt to retrieve the connection from an object ID.
76
- def self.connection_by_id(object_id)
77
- return nil if object_id.nil?
78
- ObjectSpace._id2ref(object_id)
79
- rescue StandardError
80
- nil
81
- end
82
-
83
- # Attempt to retrieve the connection config from an object ID.
84
- # Typical of ActiveSupport::Notifications `sql.active_record`
85
- def self.connection_config_by_id(object_id)
86
- connection = connection_by_id(object_id)
87
- return {} if connection.nil?
88
-
89
- if connection.instance_variable_defined?(:@config)
90
- connection.instance_variable_get(:@config)
91
- else
92
- {}
65
+ def self.connection_config
66
+ @connection_config ||= begin
67
+ if defined?(::ActiveRecord::Base.connection_config)
68
+ ::ActiveRecord::Base.connection_config
69
+ else
70
+ ::ActiveRecord::Base.connection_pool.spec.config
71
+ end
93
72
  end
94
73
  end
95
74
 
96
- def self.default_connection_config
97
- return @default_connection_config unless @default_connection_config.nil?
98
- current_connection_name = if ::ActiveRecord::Base.respond_to?(:connection_specification_name)
99
- ::ActiveRecord::Base.connection_specification_name
100
- else
101
- ::ActiveRecord::Base
102
- end
103
-
104
- connection_pool = ::ActiveRecord::Base.connection_handler.retrieve_connection_pool(current_connection_name)
105
- connection_pool.nil? ? {} : (@default_connection_config = connection_pool.spec.config)
106
- rescue StandardError
107
- {}
108
- end
109
-
110
- def self.exception_is_error?(exception)
111
- if defined?(::ActionDispatch::ExceptionWrapper)
112
- # Gets the equivalent status code for the exception (not all are 5XX)
113
- # You can add custom errors via `config.action_dispatch.rescue_responses`
114
- status = ::ActionDispatch::ExceptionWrapper.status_code_for_exception(exception.class.name)
115
- # Only 5XX exceptions are actually errors (e.g. don't flag 404s)
116
- status.to_s.starts_with?('5')
117
- else
118
- true
119
- end
120
- end
75
+ private_class_method :connection_config
121
76
  end
122
77
  end
123
78
  end
@@ -1,40 +1,18 @@
1
1
  module Datadog
2
2
  # Defines some useful patching methods for integrations
3
3
  module Patcher
4
- def self.included(base)
5
- base.send(:extend, CommonMethods)
6
- base.send(:include, CommonMethods)
7
- end
4
+ module_function
8
5
 
9
- # Defines some common methods for patching, that can be used
10
- # at the instance, class, or module level.
11
- module CommonMethods
12
- def without_warnings
13
- # This is typically used when monkey patching functions such as
14
- # intialize, which Ruby advices you not to. Use cautiously.
15
- v = $VERBOSE
16
- $VERBOSE = nil
17
- begin
18
- yield
19
- ensure
20
- $VERBOSE = v
21
- end
22
- end
23
-
24
- def do_once(key = nil)
25
- # If already done, don't do again
26
- @done_once ||= {}
27
- return @done_once[key] if @done_once.key?(key)
28
-
29
- # Otherwise 'do'
30
- yield.tap do
31
- # Then add the key so we don't do again.
32
- @done_once[key] = true
33
- end
6
+ def without_warnings
7
+ # This is typically used when monkey patching functions such as
8
+ # intialize, which Ruby advices you not to. Use cautiously.
9
+ v = $VERBOSE
10
+ $VERBOSE = nil
11
+ begin
12
+ yield
13
+ ensure
14
+ $VERBOSE = v
34
15
  end
35
16
  end
36
-
37
- # Extend the common methods so they're available as a module function.
38
- extend(CommonMethods)
39
17
  end
40
18
  end
@@ -8,7 +8,6 @@ module Datadog
8
8
  # Transport class that handles the spans delivery to the
9
9
  # local trace-agent. The class wraps a Net:HTTP instance
10
10
  # so that the Transport is thread-safe.
11
- # rubocop:disable Metrics/ClassLength
12
11
  class HTTPTransport
13
12
  attr_accessor :hostname, :port
14
13
  attr_reader :traces_endpoint, :services_endpoint
@@ -22,21 +21,18 @@ module Datadog
22
21
 
23
22
  API = {
24
23
  V4 = 'v0.4'.freeze => {
25
- version: V4,
26
24
  traces_endpoint: '/v0.4/traces'.freeze,
27
25
  services_endpoint: '/v0.4/services'.freeze,
28
26
  encoder: Encoding::MsgpackEncoder,
29
27
  fallback: 'v0.3'.freeze
30
28
  }.freeze,
31
29
  V3 = 'v0.3'.freeze => {
32
- version: V3,
33
30
  traces_endpoint: '/v0.3/traces'.freeze,
34
31
  services_endpoint: '/v0.3/services'.freeze,
35
32
  encoder: Encoding::MsgpackEncoder,
36
33
  fallback: 'v0.2'.freeze
37
34
  }.freeze,
38
35
  V2 = 'v0.2'.freeze => {
39
- version: V2,
40
36
  traces_endpoint: '/v0.2/traces'.freeze,
41
37
  services_endpoint: '/v0.2/services'.freeze,
42
38
  encoder: Encoding::JSONEncoder
@@ -75,45 +71,34 @@ module Datadog
75
71
  case endpoint
76
72
  when :services
77
73
  payload = @encoder.encode_services(data)
78
- status_code = post(@api[:services_endpoint], payload) do |response|
79
- process_callback(:services, response)
80
- end
74
+ status_code = post(@api[:services_endpoint], payload)
81
75
  when :traces
82
76
  count = data.length
83
77
  payload = @encoder.encode_traces(data)
84
- status_code = post(@api[:traces_endpoint], payload, count) do |response|
85
- process_callback(:traces, response)
86
- end
78
+ status_code = post(@api[:traces_endpoint], payload, count)
87
79
  else
88
80
  Datadog::Tracer.log.error("Unsupported endpoint: #{endpoint}")
89
81
  return nil
90
82
  end
91
83
 
92
- if downgrade?(status_code)
93
- downgrade!
94
- send(endpoint, data)
95
- else
96
- status_code
97
- end
84
+ downgrade! && send(endpoint, data) if downgrade?(status_code)
85
+
86
+ status_code
98
87
  end
99
88
 
100
89
  # send data to the trace-agent; the method is thread-safe
101
90
  def post(url, data, count = nil)
102
- begin
103
- Datadog::Tracer.log.debug("Sending data from process: #{Process.pid}")
104
- headers = count.nil? ? {} : { TRACE_COUNT_HEADER => count.to_s }
105
- headers = headers.merge(@headers)
106
- request = Net::HTTP::Post.new(url, headers)
107
- request.body = data
108
-
109
- response = Net::HTTP.start(@hostname, @port, read_timeout: TIMEOUT) { |http| http.request(request) }
110
- handle_response(response)
111
- rescue StandardError => e
112
- Datadog::Tracer.log.error(e.message)
113
- 500
114
- end.tap do
115
- yield(response) if block_given?
116
- end
91
+ Datadog::Tracer.log.debug("Sending data from process: #{Process.pid}")
92
+ headers = count.nil? ? {} : { TRACE_COUNT_HEADER => count.to_s }
93
+ headers = headers.merge(@headers)
94
+ request = Net::HTTP::Post.new(url, headers)
95
+ request.body = data
96
+
97
+ response = Net::HTTP.start(@hostname, @port, read_timeout: TIMEOUT) { |http| http.request(request) }
98
+ handle_response(response)
99
+ rescue StandardError => e
100
+ Datadog::Tracer.log.error(e.message)
101
+ 500
117
102
  end
118
103
 
119
104
  # Downgrade the connection to a compatibility version of the HTTPTransport;
@@ -181,6 +166,8 @@ module Datadog
181
166
  @mutex.synchronize { @count_server_error += 1 }
182
167
  end
183
168
 
169
+ process_callback(response)
170
+
184
171
  status_code
185
172
  rescue StandardError => e
186
173
  Datadog::Tracer.log.error(e.message)
@@ -201,10 +188,10 @@ module Datadog
201
188
 
202
189
  private
203
190
 
204
- def process_callback(action, response)
191
+ def process_callback(response)
205
192
  return unless @response_callback && @response_callback.respond_to?(:call)
206
193
 
207
- @response_callback.call(action, response, @api)
194
+ @response_callback.call(response)
208
195
  rescue => e
209
196
  Tracer.log.debug("Error processing callback: #{e}")
210
197
  end
@@ -1,9 +1,10 @@
1
1
  module Datadog
2
2
  module VERSION
3
3
  MAJOR = 0
4
- MINOR = 11
5
- PATCH = 4
4
+ MINOR = 12
5
+ PATCH = 0
6
+ PRE = 'beta1'.freeze
6
7
 
7
- STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
+ STRING = [MAJOR, MINOR, PATCH, PRE].compact.join('.')
8
9
  end
9
10
  end
@@ -5,7 +5,7 @@ require 'ddtrace/workers'
5
5
  module Datadog
6
6
  # Traces and services writer that periodically sends data to the trace-agent
7
7
  class Writer
8
- attr_reader :transport, :worker, :priority_sampler
8
+ attr_reader :transport, :worker
9
9
 
10
10
  HOSTNAME = 'localhost'.freeze
11
11
  PORT = '8126'.freeze
@@ -117,16 +117,10 @@ module Datadog
117
117
 
118
118
  private
119
119
 
120
- def sampling_updater(action, response, api)
121
- return unless action == :traces && response.is_a?(Net::HTTPOK)
122
-
123
- if api[:version] == HTTPTransport::V4
124
- service_rates = JSON.parse(response.body)
125
- @priority_sampler.update(service_rates)
126
- true
127
- else
128
- false
129
- end
120
+ def sampling_updater(response)
121
+ return unless response.is_a?(Net::HTTPOK)
122
+ service_rates = JSON.parse(response.body)
123
+ @priority_sampler.update(service_rates)
130
124
  end
131
125
  end
132
126
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ddtrace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.4
4
+ version: 0.12.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Datadog, Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-03-29 00:00:00.000000000 Z
11
+ date: 2018-02-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: msgpack
@@ -222,7 +222,6 @@ files:
222
222
  - ".rubocop.yml"
223
223
  - ".yardopts"
224
224
  - Appraisals
225
- - CHANGELOG.md
226
225
  - Gemfile
227
226
  - LICENSE
228
227
  - README.md
@@ -270,6 +269,7 @@ files:
270
269
  - lib/ddtrace/contrib/faraday/patcher.rb
271
270
  - lib/ddtrace/contrib/grape/endpoint.rb
272
271
  - lib/ddtrace/contrib/grape/patcher.rb
272
+ - lib/ddtrace/contrib/graphql/patcher.rb
273
273
  - lib/ddtrace/contrib/http/patcher.rb
274
274
  - lib/ddtrace/contrib/mongodb/parsers.rb
275
275
  - lib/ddtrace/contrib/mongodb/patcher.rb
@@ -347,9 +347,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
347
347
  version: 1.9.1
348
348
  required_rubygems_version: !ruby/object:Gem::Requirement
349
349
  requirements:
350
- - - ">="
350
+ - - ">"
351
351
  - !ruby/object:Gem::Version
352
- version: '0'
352
+ version: 1.3.1
353
353
  requirements: []
354
354
  rubyforge_project:
355
355
  rubygems_version: 2.6.14
@@ -1,260 +0,0 @@
1
- # Changelog
2
-
3
- ## [Unreleased (stable)]
4
-
5
- ## [Unreleased (beta)]
6
-
7
- ## [0.12.0.beta2] - 2018-02-28
8
-
9
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.12.0.beta2
10
-
11
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.12.0.beta1...v0.12.0.beta2
12
-
13
- ### Fixed
14
- - Loading the ddtrace library after Rails has fully initialized can result in load errors. (#357)
15
-
16
- ## [0.12.0.beta1] - 2018-02-09
17
-
18
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.12.0.beta1
19
-
20
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.2...v0.12.0.beta1
21
-
22
- ### Added
23
- - GraphQL integration (supporting graphql 1.7.9+) (#295)
24
- - ActiveRecord object instantiation tracing (#311, #334)
25
- - `http.request_id` tag to Rack spans (#335)
26
-
27
- ## [0.11.4] - 2018-03-29
28
-
29
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.4
30
-
31
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.3...v0.11.4
32
-
33
- ### Fixed
34
- - Transport body parsing when downgrading (#369)
35
- - Transport incorrectly attempting to apply sampling to service metadata (#370)
36
- - `sql.active_record` traces showing incorrect adapter settings when non-default adapter used (#383)
37
-
38
- ## [0.11.3] - 2018-03-06
39
-
40
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.3
41
-
42
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.2...v0.11.3
43
-
44
- ### Added
45
- - CHANGELOG.md (#350, #363) (@awendt)
46
- - `http.request_id` tag to Rack spans (#335)
47
- - Tracer configuration to README.md (#332) (@noma4i)
48
-
49
- ### Fixed
50
- - Extra indentation in README.md (#349) (@ck3g)
51
- - `http.url` when Rails raises exceptions (#351, #353)
52
- - Rails from being patched twice (#352)
53
- - 4XX responses from middleware being marked as errors (#345)
54
- - Rails exception middleware sometimes not being inserted at correct position (#345)
55
- - Processing pipeline documentation typo (#355) (@MMartyn)
56
- - Loading the ddtrace library after Rails has fully initialized can result in load errors. (#357)
57
- - Use of block syntax with Rails `render` not working (#359, #360) (@dorner)
58
-
59
- ## [0.11.2] - 2018-02-02
60
-
61
- **Critical update**: `Datadog::Monkey` removed in version 0.11.1. Adds `Datadog::Monkey` back as no-op, deprecated module.
62
-
63
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.2
64
-
65
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.1...v0.11.2
66
-
67
- ### Deprecated
68
- - `Datadog::Monkey` to be no-op and print deprecation warnings.
69
-
70
- ## [0.11.1] - 2018-01-29
71
-
72
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.1
73
-
74
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.0...v0.11.1
75
-
76
- ### Added
77
- - `http.base_url` tag for Rack applications (#301, #327)
78
- - `distributed_tracing` option to Sinatra (#325)
79
- - `exception_controller` option to Rails (#320)
80
-
81
- ### Changed
82
- - Decoupled Sinatra and ActiveRecord integrations (#328, #330) (@hawknewton)
83
- - Racecar uses preferred ActiveSupport::Notifications strategy (#323)
84
-
85
- ### Removed
86
- - `Datadog::Monkey` in favor of newer configuration API (#322)
87
-
88
- ### Fixed
89
- - Custom resource names from Rails controllers being overridden (#321)
90
- - Custom Rails exception controllers reporting as the resource (#320)
91
-
92
- ## [0.11.0] - 2018-01-17
93
-
94
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.0
95
-
96
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.10.0...v0.11.0
97
-
98
- ## [0.11.0.beta2] - 2017-12-27
99
-
100
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.0.beta2
101
-
102
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.11.0.beta1...v0.11.0.beta2
103
-
104
- ## [0.11.0.beta1] - 2017-12-04
105
-
106
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.11.0.beta1
107
-
108
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.10.0...v0.11.0.beta1
109
-
110
- ## [0.10.0] - 2017-11-30
111
-
112
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.10.0
113
-
114
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.9.2...v0.10.0
115
-
116
- ## [0.9.2] - 2017-11-03
117
-
118
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.9.2
119
-
120
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.9.1...v0.9.2
121
-
122
- ## [0.9.1] - 2017-11-02
123
-
124
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.9.1
125
-
126
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.9.0...v0.9.1
127
-
128
- ## [0.9.0] - 2017-10-06
129
-
130
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.9.0
131
-
132
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.8.2...v0.9.0
133
-
134
- ## [0.8.2] - 2017-09-08
135
-
136
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.8.2
137
-
138
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.8.1...v0.8.2
139
-
140
- ## [0.8.1] - 2017-08-10
141
-
142
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.8.1
143
-
144
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.8.0...v0.8.1
145
-
146
- ## [0.8.0] - 2017-07-24
147
-
148
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.8.0
149
-
150
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.7.2...v0.8.0
151
-
152
- ## [0.7.2] - 2017-05-24
153
-
154
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.7.2
155
-
156
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.7.1...v0.7.2
157
-
158
- ## [0.7.1] - 2017-05-10
159
-
160
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.7.1
161
-
162
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.7.0...v0.7.1
163
-
164
- ## [0.7.0] - 2017-04-24
165
-
166
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.7.0
167
-
168
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.6.2...v0.7.0
169
-
170
- ## [0.6.2] - 2017-04-07
171
-
172
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.6.2
173
-
174
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.6.1...v0.6.2
175
-
176
- ## [0.6.1] - 2017-04-05
177
-
178
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.6.1
179
-
180
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.6.0...v0.6.1
181
-
182
- ## [0.6.0] - 2017-03-28
183
-
184
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.6.0
185
-
186
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.5.0...v0.6.0
187
-
188
- ## [0.5.0] - 2017-03-08
189
-
190
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.5.0
191
-
192
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.4.3...v0.5.0
193
-
194
- ## [0.4.3] - 2017-02-17
195
-
196
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.4.3
197
-
198
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.4.2...v0.4.3
199
-
200
- ## [0.4.2] - 2017-02-14
201
-
202
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.4.2
203
-
204
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.4.1...v0.4.2
205
-
206
- ## [0.4.1] - 2017-02-14
207
-
208
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.4.1
209
-
210
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.4.0...v0.4.1
211
-
212
- ## [0.4.0] - 2017-01-24
213
-
214
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.4.0
215
-
216
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.1...v0.4.0
217
-
218
- ## [0.3.1] - 2017-01-23
219
-
220
- Release notes: https://github.com/DataDog/dd-trace-rb/releases/tag/v0.3.1
221
-
222
- Git diff: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
223
-
224
- [Unreleased (stable)]: https://github.com/DataDog/dd-trace-rb/compare/v0.11.3...master
225
- [Unreleased (beta)]: https://github.com/DataDog/dd-trace-rb/compare/v0.12.0.beta2...0.12-dev
226
- [0.12.0.beta2]: https://github.com/DataDog/dd-trace-rb/compare/v0.12.0.beta1...v0.12.0.beta2
227
- [0.12.0.beta1]: https://github.com/DataDog/dd-trace-rb/compare/v0.11.2...v0.12.0.beta1
228
- [0.11.4]: https://github.com/DataDog/dd-trace-rb/compare/v0.11.3...v0.11.4
229
- [0.11.3]: https://github.com/DataDog/dd-trace-rb/compare/v0.11.2...v0.11.3
230
- [0.11.2]: https://github.com/DataDog/dd-trace-rb/compare/v0.11.1...v0.11.2
231
- [0.11.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.11.0...v0.11.1
232
- [0.11.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.10.0...v0.11.0
233
- [0.11.0.beta2]: https://github.com/DataDog/dd-trace-rb/compare/v0.11.0.beta1...v0.11.0.beta2
234
- [0.11.0.beta1]: https://github.com/DataDog/dd-trace-rb/compare/v0.10.0...v0.11.0.beta1
235
- [0.10.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.9.2...v0.10.0
236
- [0.9.2]: https://github.com/DataDog/dd-trace-rb/compare/v0.9.1...v0.9.2
237
- [0.9.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.9.0...v0.9.1
238
- [0.9.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.8.2...v0.9.0
239
- [0.8.2]: https://github.com/DataDog/dd-trace-rb/compare/v0.8.1...v0.8.2
240
- [0.8.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.8.0...v0.8.1
241
- [0.8.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.7.2...v0.8.0
242
- [0.7.2]: https://github.com/DataDog/dd-trace-rb/compare/v0.7.1...v0.7.2
243
- [0.7.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.7.0...v0.7.1
244
- [0.7.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.6.2...v0.7.0
245
- [0.6.2]: https://github.com/DataDog/dd-trace-rb/compare/v0.6.1...v0.6.2
246
- [0.6.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.6.0...v0.6.1
247
- [0.6.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.5.0...v0.6.0
248
- [0.5.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.4.3...v0.5.0
249
- [0.4.3]: https://github.com/DataDog/dd-trace-rb/compare/v0.4.2...v0.4.3
250
- [0.4.2]: https://github.com/DataDog/dd-trace-rb/compare/v0.4.1...v0.4.2
251
- [0.4.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.4.0...v0.4.1
252
- [0.4.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.3.1...v0.4.0
253
- [0.3.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.3.0...v0.3.1
254
- [0.3.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.2.0...v0.3.0
255
- [0.2.0]: https://github.com/DataDog/dd-trace-rb/compare/v0.1.5...v0.2.0
256
- [0.1.5]: https://github.com/DataDog/dd-trace-rb/compare/v0.1.4...v0.1.5
257
- [0.1.4]: https://github.com/DataDog/dd-trace-rb/compare/v0.1.3...v0.1.4
258
- [0.1.3]: https://github.com/DataDog/dd-trace-rb/compare/v0.1.2...v0.1.3
259
- [0.1.2]: https://github.com/DataDog/dd-trace-rb/compare/v0.1.1...v0.1.2
260
- [0.1.1]: https://github.com/DataDog/dd-trace-rb/compare/v0.1.0...v0.1.1