faraday-honeycomb 0.2.3 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/faraday/honeycomb/middleware.rb +36 -13
- data/lib/faraday/honeycomb/version.rb +1 -1
- metadata +4 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ecbf9b6597a7e51ca8b037cfeee45ba7398f4f02d15f543d112e08d7e5e9af9
|
4
|
+
data.tar.gz: de07c482c1aceb902e31ec630e3f8c6151d5f1b823bb02814a6fcc714f248ec1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: afb49bdba467c9c31b2178851211f8bdf85f9adf6124b3af748bf09e98fa78c38a4c4e34efc96a8a5603c098868268dd0f411dd15df4d18ab2fa0a5cae3fbb9e
|
7
|
+
data.tar.gz: 67fb61b91eccfa01191ffbc74a463c1c3bd6d65e822e939d38562907c231783319bfa4b85cf70e1f5a0e8a4f80e93f6fad28d3e3db7501274e1f6f4ac25b78e7
|
@@ -38,7 +38,7 @@ module Faraday
|
|
38
38
|
add_request_fields(event, env)
|
39
39
|
|
40
40
|
start = Time.now
|
41
|
-
response =
|
41
|
+
response = with_tracing_if_available(event, env) do
|
42
42
|
@app.call(env)
|
43
43
|
end
|
44
44
|
|
@@ -66,8 +66,7 @@ module Faraday
|
|
66
66
|
end
|
67
67
|
|
68
68
|
def add_request_fields(event, env)
|
69
|
-
loud_method = env
|
70
|
-
|
69
|
+
loud_method = loud_method(env)
|
71
70
|
event.add(
|
72
71
|
'name' => "#{loud_method} #{env.url.host}#{env.url.path}",
|
73
72
|
'request.method' => loud_method,
|
@@ -81,20 +80,44 @@ module Faraday
|
|
81
80
|
event.add_field 'response.status_code', response.status
|
82
81
|
end
|
83
82
|
|
84
|
-
def
|
85
|
-
|
86
|
-
|
87
|
-
trace_id = ::Honeycomb.trace_id
|
88
|
-
|
89
|
-
event.add_field 'trace.trace_id', trace_id if trace_id
|
90
|
-
span_id = SecureRandom.uuid
|
91
|
-
event.add_field 'trace.span_id', span_id
|
83
|
+
def loud_method(env)
|
84
|
+
env.method.upcase.to_s
|
85
|
+
end
|
92
86
|
|
93
|
-
|
94
|
-
|
87
|
+
def with_tracing_if_available(event, env)
|
88
|
+
# return if we are not using the ruby beeline
|
89
|
+
return yield unless defined?(::Honeycomb)
|
90
|
+
|
91
|
+
# beeline version <= 0.5.0
|
92
|
+
if ::Honeycomb.respond_to? :trace_id
|
93
|
+
trace_id = ::Honeycomb.trace_id
|
94
|
+
event.add_field 'trace.trace_id', trace_id if trace_id
|
95
|
+
span_id = SecureRandom.uuid
|
96
|
+
event.add_field 'trace.span_id', span_id
|
97
|
+
|
98
|
+
::Honeycomb.with_span_id(span_id) do |parent_span_id|
|
99
|
+
event.add_field 'trace.parent_id', parent_span_id
|
100
|
+
yield
|
101
|
+
end
|
102
|
+
# beeline version > 0.5.0
|
103
|
+
elsif ::Honeycomb.respond_to? :span_for_existing_event
|
104
|
+
::Honeycomb.span_for_existing_event event, name: nil, type: 'http_client' do |span_id, trace_id|
|
105
|
+
add_trace_context_header(env, trace_id, span_id)
|
106
|
+
yield
|
107
|
+
end
|
108
|
+
# fallback if we don't detect any known beeline tracing methods
|
109
|
+
else
|
95
110
|
yield
|
96
111
|
end
|
97
112
|
end
|
113
|
+
|
114
|
+
def add_trace_context_header(env, trace_id, span_id)
|
115
|
+
# beeline version > 0.5.0
|
116
|
+
if ::Honeycomb.respond_to? :encode_trace_context
|
117
|
+
encoded_context = ::Honeycomb.encode_trace_context(trace_id, span_id, **::Honeycomb.active_trace_context)
|
118
|
+
env.request_headers['X-Honeycomb-Trace'] = encoded_context
|
119
|
+
end
|
120
|
+
end
|
98
121
|
end
|
99
122
|
end
|
100
123
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: faraday-honeycomb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Stokes
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-11-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: libhoney
|
@@ -94,8 +94,7 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
-
description:
|
98
|
-
TO DO *is* a description
|
97
|
+
description: " TO DO *is* a description\n"
|
99
98
|
email:
|
100
99
|
- support@honeycomb.io
|
101
100
|
executables: []
|
@@ -109,7 +108,7 @@ files:
|
|
109
108
|
- lib/faraday/honeycomb/version.rb
|
110
109
|
homepage: https://github.com/honeycombio/faraday-honeycomb
|
111
110
|
licenses:
|
112
|
-
-
|
111
|
+
- Apache-2.0
|
113
112
|
metadata: {}
|
114
113
|
post_install_message:
|
115
114
|
rdoc_options: []
|