faraday-honeycomb 0.2.3 → 0.3.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.
- 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: []
|