ddtrace 0.7.2 → 0.8.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 +5 -13
- data/Appraisals +38 -19
- data/README.md +13 -0
- data/Rakefile +9 -9
- data/circle.yml +14 -11
- data/ddtrace.gemspec +1 -0
- data/docs/GettingStarted.md +96 -6
- data/gemfiles/rails30_postgres.gemfile +10 -0
- data/gemfiles/rails30_postgres_sidekiq.gemfile +11 -0
- data/gemfiles/{rails3_mysql2.gemfile → rails32_mysql2.gemfile} +0 -0
- data/gemfiles/{rails3_postgres.gemfile → rails32_postgres.gemfile} +0 -0
- data/gemfiles/{rails3_postgres_redis.gemfile → rails32_postgres_redis.gemfile} +0 -0
- data/gemfiles/{rails3_postgres_sidekiq.gemfile → rails32_postgres_sidekiq.gemfile} +1 -1
- data/lib/ddtrace/buffer.rb +1 -26
- data/lib/ddtrace/context.rb +145 -0
- data/lib/ddtrace/contrib/active_record/patcher.rb +2 -2
- data/lib/ddtrace/contrib/elasticsearch/patcher.rb +1 -0
- data/lib/ddtrace/contrib/grape/endpoint.rb +4 -4
- data/lib/ddtrace/contrib/http/patcher.rb +36 -9
- data/lib/ddtrace/contrib/rack/middlewares.rb +53 -12
- data/lib/ddtrace/contrib/rails/action_controller.rb +14 -5
- data/lib/ddtrace/contrib/rails/action_view.rb +3 -3
- data/lib/ddtrace/contrib/rails/active_record.rb +1 -1
- data/lib/ddtrace/contrib/rails/active_support.rb +2 -2
- data/lib/ddtrace/contrib/rails/core_extensions.rb +45 -20
- data/lib/ddtrace/contrib/rails/framework.rb +11 -0
- data/lib/ddtrace/distributed.rb +38 -0
- data/lib/ddtrace/ext/distributed.rb +10 -0
- data/lib/ddtrace/pin.rb +6 -4
- data/lib/ddtrace/provider.rb +16 -0
- data/lib/ddtrace/span.rb +54 -22
- data/lib/ddtrace/tracer.rb +120 -64
- data/lib/ddtrace/utils.rb +9 -2
- data/lib/ddtrace/version.rb +2 -2
- data/lib/ddtrace/workers.rb +1 -2
- data/lib/ddtrace/writer.rb +0 -1
- metadata +43 -27
data/lib/ddtrace/utils.rb
CHANGED
@@ -1,9 +1,16 @@
|
|
1
|
+
require 'thread'
|
2
|
+
|
1
3
|
module Datadog
|
2
|
-
#
|
4
|
+
# Utils contains low-level utilities, typically to provide pseudo-random trace IDs.
|
3
5
|
module Utils
|
6
|
+
# We use a custom random number generator because we want no interference
|
7
|
+
# with the default one. Using the default prng, we could break code that
|
8
|
+
# would rely on srand/rand sequences.
|
9
|
+
@rnd = Random.new
|
10
|
+
|
4
11
|
# Return a span id
|
5
12
|
def self.next_id
|
6
|
-
rand(Datadog::Span::MAX_ID)
|
13
|
+
@rnd.rand(Datadog::Span::MAX_ID)
|
7
14
|
end
|
8
15
|
end
|
9
16
|
end
|
data/lib/ddtrace/version.rb
CHANGED
data/lib/ddtrace/workers.rb
CHANGED
@@ -98,8 +98,7 @@ module Datadog
|
|
98
98
|
@trace_buffer.push(trace)
|
99
99
|
end
|
100
100
|
|
101
|
-
# Enqueue an item in the service internal buffer. This operation is thread-safe
|
102
|
-
# because uses the +TraceBuffer+ data structure.
|
101
|
+
# Enqueue an item in the service internal buffer. This operation is thread-safe.
|
103
102
|
def enqueue_service(service)
|
104
103
|
return if service == {} # no use to send this, not worth it
|
105
104
|
@service_buffer.push(service)
|
data/lib/ddtrace/writer.rb
CHANGED
metadata
CHANGED
@@ -1,43 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ddtrace
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Datadog, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-07-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: msgpack
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '10.5'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.5'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rubocop
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.47'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.47'
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: minitest
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,48 +70,44 @@ dependencies:
|
|
56
70
|
name: appraisal
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
58
72
|
requirements:
|
59
|
-
- - ~>
|
73
|
+
- - "~>"
|
60
74
|
- !ruby/object:Gem::Version
|
61
75
|
version: '2.1'
|
62
76
|
type: :development
|
63
77
|
prerelease: false
|
64
78
|
version_requirements: !ruby/object:Gem::Requirement
|
65
79
|
requirements:
|
66
|
-
- - ~>
|
80
|
+
- - "~>"
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '2.1'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: yard
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
72
86
|
requirements:
|
73
|
-
- - ~>
|
87
|
+
- - "~>"
|
74
88
|
- !ruby/object:Gem::Version
|
75
89
|
version: '0.9'
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
|
-
- - ~>
|
94
|
+
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
96
|
version: '0.9'
|
83
|
-
description:
|
84
|
-
requests
|
85
|
-
|
97
|
+
description: |
|
98
|
+
ddtrace is Datadog’s tracing client for Ruby. It is used to trace requests
|
86
99
|
as they flow across web servers, databases and microservices so that developers
|
87
|
-
|
88
100
|
have great visiblity into bottlenecks and troublesome requests.
|
89
|
-
|
90
|
-
'
|
91
101
|
email:
|
92
102
|
- dev@datadoghq.com
|
93
103
|
executables: []
|
94
104
|
extensions: []
|
95
105
|
extra_rdoc_files: []
|
96
106
|
files:
|
97
|
-
- .env
|
98
|
-
- .gitignore
|
99
|
-
- .rubocop.yml
|
100
|
-
- .yardopts
|
107
|
+
- ".env"
|
108
|
+
- ".gitignore"
|
109
|
+
- ".rubocop.yml"
|
110
|
+
- ".yardopts"
|
101
111
|
- Appraisals
|
102
112
|
- Gemfile
|
103
113
|
- LICENSE
|
@@ -109,10 +119,12 @@ files:
|
|
109
119
|
- docs/GettingStarted.md
|
110
120
|
- gemfiles/contrib.gemfile
|
111
121
|
- gemfiles/contrib_old.gemfile
|
112
|
-
- gemfiles/
|
113
|
-
- gemfiles/
|
114
|
-
- gemfiles/
|
115
|
-
- gemfiles/
|
122
|
+
- gemfiles/rails30_postgres.gemfile
|
123
|
+
- gemfiles/rails30_postgres_sidekiq.gemfile
|
124
|
+
- gemfiles/rails32_mysql2.gemfile
|
125
|
+
- gemfiles/rails32_postgres.gemfile
|
126
|
+
- gemfiles/rails32_postgres_redis.gemfile
|
127
|
+
- gemfiles/rails32_postgres_sidekiq.gemfile
|
116
128
|
- gemfiles/rails4_mysql2.gemfile
|
117
129
|
- gemfiles/rails4_postgres.gemfile
|
118
130
|
- gemfiles/rails4_postgres_redis.gemfile
|
@@ -123,6 +135,7 @@ files:
|
|
123
135
|
- gemfiles/rails5_postgres_sidekiq.gemfile
|
124
136
|
- lib/ddtrace.rb
|
125
137
|
- lib/ddtrace/buffer.rb
|
138
|
+
- lib/ddtrace/context.rb
|
126
139
|
- lib/ddtrace/contrib/active_record/patcher.rb
|
127
140
|
- lib/ddtrace/contrib/elasticsearch/patcher.rb
|
128
141
|
- lib/ddtrace/contrib/elasticsearch/quantize.rb
|
@@ -142,9 +155,11 @@ files:
|
|
142
155
|
- lib/ddtrace/contrib/redis/tags.rb
|
143
156
|
- lib/ddtrace/contrib/sidekiq/tracer.rb
|
144
157
|
- lib/ddtrace/contrib/sinatra/tracer.rb
|
158
|
+
- lib/ddtrace/distributed.rb
|
145
159
|
- lib/ddtrace/encoding.rb
|
146
160
|
- lib/ddtrace/ext/app_types.rb
|
147
161
|
- lib/ddtrace/ext/cache.rb
|
162
|
+
- lib/ddtrace/ext/distributed.rb
|
148
163
|
- lib/ddtrace/ext/errors.rb
|
149
164
|
- lib/ddtrace/ext/http.rb
|
150
165
|
- lib/ddtrace/ext/net.rb
|
@@ -153,6 +168,7 @@ files:
|
|
153
168
|
- lib/ddtrace/logger.rb
|
154
169
|
- lib/ddtrace/monkey.rb
|
155
170
|
- lib/ddtrace/pin.rb
|
171
|
+
- lib/ddtrace/provider.rb
|
156
172
|
- lib/ddtrace/sampler.rb
|
157
173
|
- lib/ddtrace/span.rb
|
158
174
|
- lib/ddtrace/tracer.rb
|
@@ -172,17 +188,17 @@ require_paths:
|
|
172
188
|
- lib
|
173
189
|
required_ruby_version: !ruby/object:Gem::Requirement
|
174
190
|
requirements:
|
175
|
-
- -
|
191
|
+
- - ">="
|
176
192
|
- !ruby/object:Gem::Version
|
177
193
|
version: 1.9.1
|
178
194
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
179
195
|
requirements:
|
180
|
-
- -
|
196
|
+
- - ">="
|
181
197
|
- !ruby/object:Gem::Version
|
182
198
|
version: '0'
|
183
199
|
requirements: []
|
184
200
|
rubyforge_project:
|
185
|
-
rubygems_version: 2.6.
|
201
|
+
rubygems_version: 2.6.12
|
186
202
|
signing_key:
|
187
203
|
specification_version: 4
|
188
204
|
summary: Datadog tracing code for your Ruby applications
|