zipkin-tracer 0.5.1 → 0.6

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