honeycomb-beeline 0.0.2 → 0.1.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: 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