honeycomb-beeline 0.0.2 → 0.1.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: 1eeb7195b7fbc45950fb634ff38fdff9e56ce472daf01828cbfbdff6049aa3c6
4
- data.tar.gz: 62db79a7b6c497faf9f22919d629677d9b0922c3a64a767113457d28eb24c3ef
3
+ metadata.gz: 933f23233b9babc6adafa6eddc7292925f6fecbd68cba8de60a77591bb14667a
4
+ data.tar.gz: 7a82833864990c92193ca8066a91a48143ef78440b01c723d238ad6f95397d9f
5
5
  SHA512:
6
- metadata.gz: 3ab99490b37459db2dc8fbfb82ab6fe72226f38d518929ddeed5763021b735c576fc233f0f3101e3b54b52d58eb5be027d6e771cff1c0dd77df10490505490a8
7
- data.tar.gz: ac900d77604d4e954084f0b29ae499c5bf620404a85d1c4bcd6945bebcebce1772ad2d32d007dd76382ed70b9b513b239a405cc20f68e7f50b591729c9ec11df
6
+ metadata.gz: 5eac3fe8bb20f0094c0e649bde8661e01fbcb950701f610373916aca9abeed3c8b0660dbf4ee6b2172f8376452d48a1f6532986c573cdb3ad00597c157471203
7
+ data.tar.gz: 9228ef70a625b7f0691e497335ffed7b9a0bb4f4537b283a3e059d35a57210c19fff9207eaa8dc29c73b67631b93b21abddc8a72a32b17afcf7ace2f9db7c933
@@ -1,6 +1,6 @@
1
1
  module Honeycomb
2
2
  module Beeline
3
3
  GEM_NAME = 'honeycomb-beeline'
4
- VERSION = '0.0.2'
4
+ VERSION = '0.1.0'
5
5
  end
6
6
  end
@@ -1,4 +1,5 @@
1
1
  require 'honeycomb/beeline/version'
2
+ require 'socket'
2
3
 
3
4
  module Honeycomb
4
5
  USER_AGENT_SUFFIX = "#{Beeline::GEM_NAME}/#{Beeline::VERSION}"
@@ -6,12 +7,13 @@ module Honeycomb
6
7
  class << self
7
8
  attr_reader :client
8
9
 
9
- def init(writekey:, dataset:, logger: nil, without: [], **options)
10
- options = options.merge(writekey: writekey, dataset: dataset)
10
+ def init(writekey: nil, dataset: nil, service_name: dataset, logger: nil, without: [], **options)
11
11
  @logger = logger
12
12
  @without = without
13
- options = {user_agent_addition: USER_AGENT_SUFFIX}.merge(options)
14
- @client = Libhoney::Client.new(options)
13
+ @service_name = service_name
14
+
15
+ options = options.merge(writekey: writekey, dataset: dataset)
16
+ @client = new_client(options)
15
17
 
16
18
  after_init_hooks.each do |label, block|
17
19
  @logger.debug "Running hook '#{label}' after Honeycomb.init" if @logger
@@ -19,6 +21,22 @@ module Honeycomb
19
21
  end
20
22
  end
21
23
 
24
+ def new_client(options)
25
+ @client = options.delete :client
26
+
27
+ options = {user_agent_addition: USER_AGENT_SUFFIX}.merge(options)
28
+ @client ||= begin
29
+ unless options[:writekey] && options[:dataset]
30
+ raise ArgumentError, "must specify writekey and dataset"
31
+ end
32
+ Libhoney::Client.new(options)
33
+ end
34
+ @client.add_field 'meta.beeline_version', Beeline::VERSION
35
+ @client.add_field 'meta.local_hostname', Socket.gethostname rescue nil
36
+ @client.add_field 'service_name', @service_name
37
+ @client
38
+ end
39
+
22
40
  def after_init(label, &block)
23
41
  raise ArgumentError unless block_given?
24
42
 
@@ -24,30 +24,32 @@ module Honeycomb
24
24
  Thread.current[:honeycomb_span_id] = parent_span_id
25
25
  end
26
26
 
27
+ # TODO rethink this API
27
28
  def span(service_name:, name:, span_id: SecureRandom.uuid)
28
29
  event = client.event
29
30
 
30
- event.add_field :traceId, trace_id if trace_id
31
- event.add_field :serviceName, service_name
32
- event.add_field :name, name
33
- event.add_field :id, span_id
31
+ event.add_field 'trace.trace_id', trace_id if trace_id
32
+ event.add_field 'service_name', service_name
33
+ event.add_field 'name', name
34
+ event.add_field 'trace.span_id', span_id
34
35
 
35
36
  start = Time.now
36
37
  with_span_id(span_id) do |parent_span_id|
37
- event.add_field :parentId, parent_span_id if parent_span_id
38
+ event.add_field 'trace.parent_id', parent_span_id if parent_span_id
38
39
  yield
39
40
  end
40
41
  rescue Exception => e
41
42
  if event
42
- event.add_field :exception_class, e.class.name
43
- event.add_field :exception_message, e.message
43
+ # TODO what should the prefix be?
44
+ event.add_field 'app.error', e.class.name
45
+ event.add_field 'app.error_detail', e.message
44
46
  end
45
47
  raise
46
48
  ensure
47
49
  if start && event
48
50
  finish = Time.now
49
51
  duration = finish - start
50
- event.add_field :durationMs, duration * 1000
52
+ event.add_field 'duration_ms', duration * 1000
51
53
  event.send
52
54
  end
53
55
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: honeycomb-beeline
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.1.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-05-08 00:00:00.000000000 Z
11
+ date: 2018-05-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: libhoney
@@ -30,51 +30,65 @@ dependencies:
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: 0.2.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: 0.2.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rack-honeycomb
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: 0.2.1
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: 0.2.1
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: faraday-honeycomb
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: 0.2.1
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: 0.2.1
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: sequel-honeycomb
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
73
  - - ">="
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: 0.2.1
76
76
  type: :runtime
77
77
  prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: 0.2.1
83
+ - !ruby/object:Gem::Dependency
84
+ name: activerecord
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
94
  - - ">="
@@ -94,6 +108,62 @@ dependencies:
94
108
  - - ">="
95
109
  - !ruby/object:Gem::Version
96
110
  version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: faraday
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: pg
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: rack
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: rack-test
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
97
167
  - !ruby/object:Gem::Dependency
98
168
  name: rake
99
169
  requirement: !ruby/object:Gem::Requirement
@@ -122,6 +192,34 @@ dependencies:
122
192
  - - ">="
123
193
  - !ruby/object:Gem::Version
124
194
  version: '0'
195
+ - !ruby/object:Gem::Dependency
196
+ name: sinatra
197
+ requirement: !ruby/object:Gem::Requirement
198
+ requirements:
199
+ - - ">="
200
+ - !ruby/object:Gem::Version
201
+ version: '0'
202
+ type: :development
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ - !ruby/object:Gem::Dependency
210
+ name: sequel
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - ">="
214
+ - !ruby/object:Gem::Version
215
+ version: '0'
216
+ type: :development
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - ">="
221
+ - !ruby/object:Gem::Version
222
+ version: '0'
125
223
  - !ruby/object:Gem::Dependency
126
224
  name: yard
127
225
  requirement: !ruby/object:Gem::Requirement
@@ -173,7 +271,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
173
271
  version: '0'
174
272
  requirements: []
175
273
  rubyforge_project:
176
- rubygems_version: 2.7.6
274
+ rubygems_version: 2.7.7
177
275
  signing_key:
178
276
  specification_version: 4
179
277
  summary: Instrument your Ruby apps with Honeycomb