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 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: []