zipkin-tracer 0.5.1 → 0.6

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,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: cc36cf36304c766a560916c48018e38589f70ddf
4
- data.tar.gz: 284ef99f881958de1282d5132a52c46441fdba7f
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YTE1MTJjMmE1MzQyMDZjYzUzYjViZTQ2ZTg0ZmFkZmJjOTgxZTZhYQ==
5
+ data.tar.gz: !binary |-
6
+ NGUzYTY2NWUwZDI2ZWIwM2RjMzBjOWNlMTYyMjE2ZjliOGM5M2ZhZg==
5
7
  SHA512:
6
- metadata.gz: b092180723094e71621a49226c49af1f053d9576c48555c9212081278a3e67692b3d35678f1b5795605d1bc8aa00e9ebe091d810cec6f75a909ccefd4dd96bd9
7
- data.tar.gz: 4f466e1962b76d1cf60bedb49648c43c233a6fe3a98db000026d2798371dcac289e558c4f13274caf956b6cbca7198cdd916e256398ed9d6517bc45d128c8746
8
+ metadata.gz: !binary |-
9
+ YWM0MzJlNjM1NWJhMGVkYmRmNzFkNzVhZGUzOWI3ZWJmM2MxZjVmOGI3Mzdj
10
+ OTViZWU3OTk3MTVjZmNmMzZiZTk0NGYxZTQwMzE4MWFlYjM4MjBhZDUxNDMw
11
+ YWNjMTBhMGI5Yzc0OTBlNjFkZjJjYzdmMWI4MmMzMWNmYzZkNGQ=
12
+ data.tar.gz: !binary |-
13
+ YmRiMDdhNWYzNDk1YjU5ZmZhY2FhMDFiMTk4N2E5NzY1ZGJiOWZkY2E3MjY0
14
+ ZmI1Y2FkODg2ZjQ2N2YyMTU4ZGMzMWFjMmU0ZDVjZDYxYjNkMmQyYTk1ZTZk
15
+ OTliMTMwMjYxZDQ1Nzc3YmJjMjI0ZTkwYjM3Nzg5NzcxMDAzOTg=
@@ -1,3 +1,4 @@
1
+ require 'base64' #Bug in finagle. They should be requiring this: finagle-thrift-1.4.1/lib/finagle-thrift/tracer.rb:115
1
2
  require 'zipkin-tracer/rack/zipkin-tracer'
2
3
 
3
4
  begin
@@ -1,8 +1,9 @@
1
+ require 'logger'
1
2
  module ZipkinTracer
2
3
 
3
4
  class Config
4
5
  attr_reader :service_name, :service_port, :scribe_server, :zookeeper, :sample_rate,
5
- :scribe_max_buffer, :annotate_plugin, :filter_plugin, :whitelist_plugin
6
+ :scribe_max_buffer, :annotate_plugin, :filter_plugin, :whitelist_plugin, :logger
6
7
 
7
8
  def initialize(app, config_hash)
8
9
  config = config_hash || app_config(app)
@@ -15,6 +16,7 @@ module ZipkinTracer
15
16
  @annotate_plugin = config[:annotate_plugin] # call for trace annotation
16
17
  @filter_plugin = config[:filter_plugin] # skip tracing if returns false
17
18
  @whitelist_plugin = config[:whitelist_plugin] # force sampling if returns true
19
+ @logger = config[:logger] || fallback_logger
18
20
  end
19
21
 
20
22
  def using_scribe?
@@ -27,6 +29,14 @@ module ZipkinTracer
27
29
 
28
30
  private
29
31
 
32
+ def fallback_logger
33
+ if defined?(Rails) # If we happen to be inside a Rails app, use its logger
34
+ Rails.logger
35
+ else
36
+ Logger.new(STDOUT)
37
+ end
38
+ end
39
+
30
40
  DEFAULTS = {
31
41
  scribe_max_buffer: 10,
32
42
  sample_rate: 0.1
@@ -33,17 +33,25 @@ module ZipkinTracer
33
33
 
34
34
  # annotate with method (GET/POST/etc.) and uri path
35
35
  ::Trace.set_rpc_name(env[:method].to_s.upcase)
36
- ::Trace.record(::Trace::BinaryAnnotation.new("http.uri", url.path, "STRING", endpoint))
37
- ::Trace.record(::Trace::Annotation.new(::Trace::Annotation::CLIENT_SEND, endpoint))
36
+ record(::Trace::BinaryAnnotation.new("http.uri", url.path, "STRING", endpoint))
37
+ record(::Trace::Annotation.new(::Trace::Annotation::CLIENT_SEND, endpoint))
38
38
  result = @app.call(env).on_complete do |renv|
39
39
  # record HTTP status code on response
40
- ::Trace.record(::Trace::BinaryAnnotation.new("http.status", [renv[:status]].pack('n'), "I16", endpoint))
40
+ record(::Trace::BinaryAnnotation.new("http.status", [renv[:status]].pack('n'), "I16", endpoint))
41
41
  end
42
- ::Trace.record(::Trace::Annotation.new(::Trace::Annotation::CLIENT_RECV, endpoint))
42
+ record(::Trace::Annotation.new(::Trace::Annotation::CLIENT_RECV, endpoint))
43
43
  result
44
44
  end
45
45
  end
46
46
 
47
+ private
48
+
49
+ def record(annotation)
50
+ ::Trace.record(annotation)
51
+ rescue Exception # Sockets errors inherit from Exception, not from StandardError
52
+ #TODO: if this class some day accepts a config hash, add a logger
53
+ end
54
+
47
55
  # get host IP for specified hostname, catching exceptions
48
56
  def host_ip_for(hostname)
49
57
  ::Trace::Endpoint.host_to_i32(hostname)
@@ -51,6 +59,6 @@ module ZipkinTracer
51
59
  # default to 0.0.0.0 if lookup fails
52
60
  0x00000000
53
61
  end
54
- private :host_ip_for
62
+
55
63
  end
56
64
  end
@@ -94,7 +94,10 @@ module ZipkinTracer extend self
94
94
  @lock.synchronize do
95
95
  yield
96
96
  end
97
- rescue# Nothing wonky that the tracer does should stop us from using the app!!!
97
+ # Nothing wonky that the tracer does should stop us from using the app!!!
98
+ # Usually is better to rescue StandardError but the socket layer can launch Errno kind of exceptions
99
+ rescue Exception => e
100
+ @config.logger.error("Exception #{e.message} while sending Zipkin traces. #{e.backtrace}")
98
101
  end
99
102
 
100
103
  def get_or_create_trace_id(env, whitelisted, default_flags = ::Trace::Flags::EMPTY)
@@ -12,6 +12,6 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
  module ZipkinTracer
15
- VERSION = "0.5.1"
15
+ VERSION = "0.6"
16
16
  end
17
17
 
metadata CHANGED
@@ -1,143 +1,143 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zipkin-tracer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: '0.6'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Franklin Hu
8
8
  - R Tyler Croy
9
9
  - James Way
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2015-09-10 00:00:00.000000000 Z
13
+ date: 2015-09-11 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: finagle-thrift
17
- version_requirements: !ruby/object:Gem::Requirement
17
+ requirement: !ruby/object:Gem::Requirement
18
18
  requirements:
19
19
  - - ~>
20
20
  - !ruby/object:Gem::Version
21
21
  version: 1.4.1
22
- requirement: !ruby/object:Gem::Requirement
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
23
25
  requirements:
24
26
  - - ~>
25
27
  - !ruby/object:Gem::Version
26
28
  version: 1.4.1
27
- prerelease: false
28
- type: :runtime
29
29
  - !ruby/object:Gem::Dependency
30
30
  name: scribe
31
- version_requirements: !ruby/object:Gem::Requirement
31
+ requirement: !ruby/object:Gem::Requirement
32
32
  requirements:
33
33
  - - ~>
34
34
  - !ruby/object:Gem::Version
35
35
  version: 0.2.4
36
- requirement: !ruby/object:Gem::Requirement
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
37
39
  requirements:
38
40
  - - ~>
39
41
  - !ruby/object:Gem::Version
40
42
  version: 0.2.4
41
- prerelease: false
42
- type: :runtime
43
43
  - !ruby/object:Gem::Dependency
44
44
  name: rack
45
- version_requirements: !ruby/object:Gem::Requirement
45
+ requirement: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - ~>
48
48
  - !ruby/object:Gem::Version
49
49
  version: '1.6'
50
- requirement: !ruby/object:Gem::Requirement
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
51
53
  requirements:
52
54
  - - ~>
53
55
  - !ruby/object:Gem::Version
54
56
  version: '1.6'
55
- prerelease: false
56
- type: :runtime
57
57
  - !ruby/object:Gem::Dependency
58
58
  name: rspec
59
- version_requirements: !ruby/object:Gem::Requirement
59
+ requirement: !ruby/object:Gem::Requirement
60
60
  requirements:
61
61
  - - ~>
62
62
  - !ruby/object:Gem::Version
63
63
  version: '3.3'
64
- requirement: !ruby/object:Gem::Requirement
64
+ type: :development
65
+ prerelease: false
66
+ version_requirements: !ruby/object:Gem::Requirement
65
67
  requirements:
66
68
  - - ~>
67
69
  - !ruby/object:Gem::Version
68
70
  version: '3.3'
69
- prerelease: false
70
- type: :development
71
71
  - !ruby/object:Gem::Dependency
72
72
  name: rack-test
73
- version_requirements: !ruby/object:Gem::Requirement
73
+ requirement: !ruby/object:Gem::Requirement
74
74
  requirements:
75
75
  - - ~>
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0.6'
78
- requirement: !ruby/object:Gem::Requirement
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: !ruby/object:Gem::Requirement
79
81
  requirements:
80
82
  - - ~>
81
83
  - !ruby/object:Gem::Version
82
84
  version: '0.6'
83
- prerelease: false
84
- type: :development
85
85
  - !ruby/object:Gem::Dependency
86
86
  name: rake
87
- version_requirements: !ruby/object:Gem::Requirement
87
+ requirement: !ruby/object:Gem::Requirement
88
88
  requirements:
89
89
  - - ~>
90
90
  - !ruby/object:Gem::Version
91
91
  version: '10.0'
92
- requirement: !ruby/object:Gem::Requirement
92
+ type: :development
93
+ prerelease: false
94
+ version_requirements: !ruby/object:Gem::Requirement
93
95
  requirements:
94
96
  - - ~>
95
97
  - !ruby/object:Gem::Version
96
98
  version: '10.0'
97
- prerelease: false
98
- type: :development
99
99
  - !ruby/object:Gem::Dependency
100
100
  name: pry
101
- version_requirements: !ruby/object:Gem::Requirement
101
+ requirement: !ruby/object:Gem::Requirement
102
102
  requirements:
103
103
  - - ~>
104
104
  - !ruby/object:Gem::Version
105
105
  version: '0.10'
106
- requirement: !ruby/object:Gem::Requirement
106
+ type: :development
107
+ prerelease: false
108
+ version_requirements: !ruby/object:Gem::Requirement
107
109
  requirements:
108
110
  - - ~>
109
111
  - !ruby/object:Gem::Version
110
112
  version: '0.10'
111
- prerelease: false
112
- type: :development
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: faraday
115
- version_requirements: !ruby/object:Gem::Requirement
115
+ requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
117
  - - ~>
118
118
  - !ruby/object:Gem::Version
119
119
  version: '0.8'
120
- requirement: !ruby/object:Gem::Requirement
120
+ type: :development
121
+ prerelease: false
122
+ version_requirements: !ruby/object:Gem::Requirement
121
123
  requirements:
122
124
  - - ~>
123
125
  - !ruby/object:Gem::Version
124
126
  version: '0.8'
125
- prerelease: false
126
- type: :development
127
127
  - !ruby/object:Gem::Dependency
128
128
  name: hermann
129
- version_requirements: !ruby/object:Gem::Requirement
129
+ requirement: !ruby/object:Gem::Requirement
130
130
  requirements:
131
131
  - - ~>
132
132
  - !ruby/object:Gem::Version
133
133
  version: '0.25'
134
- requirement: !ruby/object:Gem::Requirement
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
135
137
  requirements:
136
138
  - - ~>
137
139
  - !ruby/object:Gem::Version
138
140
  version: '0.25'
139
- prerelease: false
140
- type: :development
141
141
  description: Adds tracing instrumentation for ruby applications
142
142
  email:
143
143
  - franklin@twitter.com
@@ -147,34 +147,34 @@ executables: []
147
147
  extensions: []
148
148
  extra_rdoc_files: []
149
149
  files:
150
- - lib/zipkin-tracer.rb
151
150
  - lib/zipkin-tracer/careless_scribe.rb
152
151
  - lib/zipkin-tracer/config.rb
153
- - lib/zipkin-tracer/version.rb
154
- - lib/zipkin-tracer/zipkin_kafka_tracer.rb
155
152
  - lib/zipkin-tracer/faraday/zipkin-tracer.rb
156
153
  - lib/zipkin-tracer/rack/zipkin-tracer.rb
154
+ - lib/zipkin-tracer/version.rb
155
+ - lib/zipkin-tracer/zipkin_kafka_tracer.rb
156
+ - lib/zipkin-tracer.rb
157
157
  homepage: https://github.com/openzipkin/zipkin-tracer
158
158
  licenses: []
159
159
  metadata: {}
160
- post_install_message:
160
+ post_install_message:
161
161
  rdoc_options: []
162
162
  require_paths:
163
163
  - lib
164
164
  required_ruby_version: !ruby/object:Gem::Requirement
165
165
  requirements:
166
- - - '>='
166
+ - - ! '>='
167
167
  - !ruby/object:Gem::Version
168
168
  version: '0'
169
169
  required_rubygems_version: !ruby/object:Gem::Requirement
170
170
  requirements:
171
- - - '>='
171
+ - - ! '>='
172
172
  - !ruby/object:Gem::Version
173
173
  version: 1.3.5
174
174
  requirements: []
175
- rubyforge_project:
176
- rubygems_version: 2.1.9
177
- signing_key:
175
+ rubyforge_project:
176
+ rubygems_version: 2.1.11
177
+ signing_key:
178
178
  specification_version: 4
179
179
  summary: Ruby tracing via Zipkin
180
180
  test_files: []