ddtrace 0.7.2 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
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