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.
Files changed (37) hide show
  1. checksums.yaml +5 -13
  2. data/Appraisals +38 -19
  3. data/README.md +13 -0
  4. data/Rakefile +9 -9
  5. data/circle.yml +14 -11
  6. data/ddtrace.gemspec +1 -0
  7. data/docs/GettingStarted.md +96 -6
  8. data/gemfiles/rails30_postgres.gemfile +10 -0
  9. data/gemfiles/rails30_postgres_sidekiq.gemfile +11 -0
  10. data/gemfiles/{rails3_mysql2.gemfile → rails32_mysql2.gemfile} +0 -0
  11. data/gemfiles/{rails3_postgres.gemfile → rails32_postgres.gemfile} +0 -0
  12. data/gemfiles/{rails3_postgres_redis.gemfile → rails32_postgres_redis.gemfile} +0 -0
  13. data/gemfiles/{rails3_postgres_sidekiq.gemfile → rails32_postgres_sidekiq.gemfile} +1 -1
  14. data/lib/ddtrace/buffer.rb +1 -26
  15. data/lib/ddtrace/context.rb +145 -0
  16. data/lib/ddtrace/contrib/active_record/patcher.rb +2 -2
  17. data/lib/ddtrace/contrib/elasticsearch/patcher.rb +1 -0
  18. data/lib/ddtrace/contrib/grape/endpoint.rb +4 -4
  19. data/lib/ddtrace/contrib/http/patcher.rb +36 -9
  20. data/lib/ddtrace/contrib/rack/middlewares.rb +53 -12
  21. data/lib/ddtrace/contrib/rails/action_controller.rb +14 -5
  22. data/lib/ddtrace/contrib/rails/action_view.rb +3 -3
  23. data/lib/ddtrace/contrib/rails/active_record.rb +1 -1
  24. data/lib/ddtrace/contrib/rails/active_support.rb +2 -2
  25. data/lib/ddtrace/contrib/rails/core_extensions.rb +45 -20
  26. data/lib/ddtrace/contrib/rails/framework.rb +11 -0
  27. data/lib/ddtrace/distributed.rb +38 -0
  28. data/lib/ddtrace/ext/distributed.rb +10 -0
  29. data/lib/ddtrace/pin.rb +6 -4
  30. data/lib/ddtrace/provider.rb +16 -0
  31. data/lib/ddtrace/span.rb +54 -22
  32. data/lib/ddtrace/tracer.rb +120 -64
  33. data/lib/ddtrace/utils.rb +9 -2
  34. data/lib/ddtrace/version.rb +2 -2
  35. data/lib/ddtrace/workers.rb +1 -2
  36. data/lib/ddtrace/writer.rb +0 -1
  37. metadata +43 -27
@@ -1,9 +1,16 @@
1
+ require 'thread'
2
+
1
3
  module Datadog
2
- # TODO[manu]: write docs
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
@@ -1,8 +1,8 @@
1
1
  module Datadog
2
2
  module VERSION
3
3
  MAJOR = 0
4
- MINOR = 7
5
- PATCH = 2
4
+ MINOR = 8
5
+ PATCH = 0
6
6
 
7
7
  STRING = [MAJOR, MINOR, PATCH].compact.join('.')
8
8
  end
@@ -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)
@@ -1,4 +1,3 @@
1
- require 'ddtrace/buffer'
2
1
  require 'ddtrace/transport'
3
2
  require 'ddtrace/encoding'
4
3
  require 'ddtrace/workers'
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.7.2
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-05-24 00:00:00.000000000 Z
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: ! 'ddtrace is Datadog’s tracing client for Ruby. It is used to trace
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/rails3_mysql2.gemfile
113
- - gemfiles/rails3_postgres.gemfile
114
- - gemfiles/rails3_postgres_redis.gemfile
115
- - gemfiles/rails3_postgres_sidekiq.gemfile
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.10
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