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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d9c9cf8d005f26ecd2f3e391a7695211718480900810d57c1c1656cc1ed5f240
4
- data.tar.gz: a645970ff844448583057f69f41e758e7643ef3125895bf2936e5d8fa7837522
3
+ metadata.gz: 7ecbf9b6597a7e51ca8b037cfeee45ba7398f4f02d15f543d112e08d7e5e9af9
4
+ data.tar.gz: de07c482c1aceb902e31ec630e3f8c6151d5f1b823bb02814a6fcc714f248ec1
5
5
  SHA512:
6
- metadata.gz: 283d54bd078a653f7e6b309099f9d3597815eef830bf0a1fc92a423fd3e3a9ca7bca44aa49d9fd5f65797ffdfb324cca4ef88f37f645f4b09b30dd7cdc9152d9
7
- data.tar.gz: 2acf6c044ba3c1296ecda0562175453edeaee51ed5aa1ce679296d6335e69ddcc33f617b1636e077d6c62dea3958f4742f148efcf60a46c2fa064967e1053281
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 = adding_span_metadata_if_available(event, env) do
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.method.upcase.to_s
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 adding_span_metadata_if_available(event, env)
85
- return yield unless defined?(::Honeycomb.trace_id)
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
- ::Honeycomb.with_span_id(span_id) do |parent_span_id|
94
- event.add_field 'trace.parent_id', parent_span_id
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
@@ -1,7 +1,7 @@
1
1
  module Faraday
2
2
  module Honeycomb
3
3
  GEM_NAME = 'faraday-honeycomb'
4
- VERSION = '0.2.3'
4
+ VERSION = '0.3.0'
5
5
 
6
6
  MIN_FARADAY_VERSION = '0.8'
7
7
  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.2.3
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-06-11 00:00:00.000000000 Z
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: |2
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
- - MIT
111
+ - Apache-2.0
113
112
  metadata: {}
114
113
  post_install_message:
115
114
  rdoc_options: []