honeycomb-beeline 2.11.1.pre.dev → 3.0.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: 52fb2200e25db002d4e9c2570c95a786fa2b8f43990363d2ff24c3d4eff15a51
4
- data.tar.gz: 40854a97dfc2ef9a71729c6ffc6af0a6732c877b2faacaf417a5c4b72ff87c51
3
+ metadata.gz: c117f411dfa05f94d94ae9d313afdc11e1f6c99395b64c4ba6cd5b064e0f5495
4
+ data.tar.gz: 1379c608d00c04e6ab065f68710c77ce298f081336dbf0291585523343ef0ef1
5
5
  SHA512:
6
- metadata.gz: cca4d89088d60d01d98a3e499e0ca53f226dea09b9e9575ccac8618545a50e5fdf9fff108ccd2a24bef551aa286add0ef2a69d57d238831535bf9e95950229b5
7
- data.tar.gz: d4f28f8de6b59d88eed5fc54a441051003c966a29ac542581dab5a937fac8d7008e9e855033e56cc87e160bc059e8cb765d4884b08ff0962b48db8575e52a977
6
+ metadata.gz: f018311206155ca7155cc737a04e8f72bfea03447647ae7688e834a99dc41a93d8045014e7cba6c1c337779feff9f07ad40301a82eccfe3c677e5868747701ac
7
+ data.tar.gz: c653b95ca53f6aef8abbdc056d32cd51bf663b0e4960ae8d1d111b60f5f55adf63bd6e9ffbdb79bd8ead78dc399509006851c0f23df2263f550bfbb229b32a7d
data/.circleci/config.yml CHANGED
@@ -89,27 +89,6 @@ jobs:
89
89
  ruby-version: << parameters.ruby-version >>
90
90
  gemfile: root
91
91
  command: bundle exec rake rubocop
92
- test-older-versions: # need to use deprecated circleci/ruby images for older ruby versions
93
- parameters:
94
- gemfile:
95
- type: string
96
- ruby-version:
97
- type: string
98
- docker:
99
- - image: circleci/ruby:<< parameters.ruby-version >>
100
- environment:
101
- BUNDLE_GEMFILE: gemfiles/<< parameters.gemfile >>.gemfile
102
- steps:
103
- - ruby:
104
- ruby-version: << parameters.ruby-version >>
105
- gemfile: << parameters.gemfile >>
106
- command: bundle exec rake test
107
- - store_test_results:
108
- path: test/reports
109
- - persist_to_workspace:
110
- root: ./
111
- paths:
112
- - coverage
113
92
  test:
114
93
  parameters:
115
94
  gemfile:
@@ -163,68 +142,13 @@ workflows:
163
142
  - main
164
143
  jobs:
165
144
  - lint
166
- - test-older-versions: &test-older-versions # need to use deprecated circleci/ruby images for older ruby versions
167
- name: test-<< matrix.gemfile >>-ruby_<< matrix.ruby-version >>
168
- requires:
169
- - lint
170
- matrix:
171
- parameters:
172
- ruby-version: ["2.2", "2.3", "2.4", "2.5", "2.6"]
173
- gemfile:
174
- - aws_2
175
- - aws_3
176
- - faraday_0
177
- - faraday_1
178
- - sequel4
179
- - sequel5
180
- - sinatra
181
- - rack_2
182
- - rack_3
183
- - rails_41
184
- - rails_42
185
- - rails_5
186
- - rails_51
187
- - rails_52
188
- - rails_6
189
- - rails_61
190
- - redis_3
191
- - redis_4
192
- exclude:
193
- - ruby-version: "2.2"
194
- gemfile: faraday_0
195
- - ruby-version: "2.2"
196
- gemfile: faraday_1
197
- - ruby-version: "2.2"
198
- gemfile: rails_52
199
- - ruby-version: "2.2"
200
- gemfile: rails_6
201
- - ruby-version: "2.2"
202
- gemfile: rails_61
203
- - ruby-version: "2.3"
204
- gemfile: rails_6
205
- - ruby-version: "2.3"
206
- gemfile: rails_61
207
- - ruby-version: "2.4"
208
- gemfile: rails_6
209
- - ruby-version: "2.4"
210
- gemfile: rails_61
211
- - ruby-version: "2.4"
212
- gemfile: rails_41
213
- - ruby-version: "2.5"
214
- gemfile: rails_41
215
- - ruby-version: "2.6"
216
- gemfile: rails_41
217
- - ruby-version: "2.2"
218
- gemfile: rack_3
219
- - ruby-version: "2.3"
220
- gemfile: rack_3
221
145
  - test: &test
222
146
  name: test-<< matrix.gemfile >>-ruby_<< matrix.ruby-version >>
223
147
  requires:
224
148
  - lint
225
149
  matrix:
226
150
  parameters:
227
- ruby-version: ["2.7", "3.0", "3.1"]
151
+ ruby-version: ["2.5","2.6", "2.7", "3.0", "3.1"]
228
152
  gemfile:
229
153
  - aws_2
230
154
  - aws_3
@@ -266,9 +190,6 @@ workflows:
266
190
  filters: &regular_filters
267
191
  tags:
268
192
  only: /.*/
269
- - test-older-versions: # need to use deprecated circleci/ruby images for older ruby versions
270
- <<: *test-older-versions
271
- filters: *regular_filters
272
193
  - test:
273
194
  <<: *test
274
195
  filters: *regular_filters
@@ -276,7 +197,6 @@ workflows:
276
197
  filters: *regular_filters
277
198
  requires:
278
199
  - test
279
- - test-older-versions
280
200
  - build_artifacts:
281
201
  filters: &tag_filters
282
202
  tags:
@@ -286,7 +206,6 @@ workflows:
286
206
  requires:
287
207
  - lint
288
208
  - test
289
- - test-older-versions
290
209
  - publish_rubygems: &publish
291
210
  filters: *tag_filters
292
211
  requires:
data/.rubocop.yml CHANGED
@@ -1,7 +1,7 @@
1
1
  require: rubocop-performance
2
2
 
3
3
  AllCops:
4
- TargetRubyVersion: 2.2
4
+ TargetRubyVersion: 2.5
5
5
  Exclude:
6
6
  - "examples/**/*"
7
7
  - "vendor/**/*"
data/Appraisals CHANGED
@@ -44,20 +44,6 @@ appraise "rack-3" do
44
44
  gem "warden"
45
45
  end
46
46
 
47
- appraise "rails-41" do
48
- gem "rack-test"
49
- gem "rails", "~> 4.1.0"
50
- gem "sprockets", "~> 3"
51
- gem "warden"
52
- end
53
-
54
- appraise "rails-42" do
55
- gem "rack-test"
56
- gem "rails", "~> 4.2.0"
57
- gem "sprockets", "~> 3"
58
- gem "warden"
59
- end
60
-
61
47
  appraise "rails-5" do
62
48
  gem "rack-test"
63
49
  gem "rails", "~> 5.0.0"
@@ -85,6 +71,12 @@ appraise "rails-6" do
85
71
  gem "warden"
86
72
  end
87
73
 
74
+ appraise "rails-61" do
75
+ gem "rack-test"
76
+ gem "rails", "~> 6.1.0"
77
+ gem "warden"
78
+ end
79
+
88
80
  appraise "redis-3" do
89
81
  gem "redis", "~> 3"
90
82
  end
data/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # beeline-ruby changelog
2
2
 
3
+ ## 3.0.0 2023-06-08
4
+
5
+ ### ⚠️ Breaking Changes ⚠️
6
+
7
+ Minimum Ruby version is 2.5 and minimum Rails version is 5.0.
8
+
9
+ ### Fixed
10
+
11
+ - fix: set min rubocop to avoid false positive lint error (#218) | @robbkidd
12
+
13
+ ### Maintenance
14
+
15
+ - chore: give dependabot PRs better title (#217) | @vreynolds
16
+ - ci: use context for publishing ruby gem (#219) | @JamieDanielson
17
+ - ci: update validate PR title workflow (#216) | @pkanal
18
+ - ci: validate PR title (#214) | @pkanal
19
+ - docs: update readme (#225) | @pkanal
20
+ - docs: add otel recommendation to readme (#222) | @pkanal
21
+ - maint: drop support for Ruby < 2.5 and Rails < 5.0 (#227) | @robbkidd
22
+ - maint: update author to honeycomb (#220) | @JamieDanielson
23
+ - maint: delete workflows for old board (#212) | @vreynolds
24
+ - maint: add release file (#211) | @vreynolds
25
+ - maint: add new project workflow (#210) | @vreynolds
26
+ - maint: handle recent Rack v3 changes in tests & example (#209) | @emilyashley
27
+ - maint: add ruby 3.1 to CI matrix (#206) | @vreynolds
28
+ - maint: fix nightly build (#205) | @vreynolds
29
+ - maint: drop testing for Faraday 0 under Ruby 2.2 (#204) | @robbkidd
30
+
3
31
  ## 2.11.0 2022-06-01
4
32
 
5
33
  ### Improvements
data/README.md CHANGED
@@ -4,6 +4,8 @@
4
4
  [![Build Status](https://circleci.com/gh/honeycombio/beeline-ruby.svg?style=svg)](https://circleci.com/gh/honeycombio/beeline-ruby)
5
5
  [![Gem Version](https://badge.fury.io/rb/honeycomb-beeline.svg)](https://badge.fury.io/rb/honeycomb-beeline)
6
6
 
7
+ ⚠️**Note**: Beelines are Honeycomb's legacy instrumentation libraries. We embrace OpenTelemetry as the effective way to instrument applications. For any new observability efforts, we recommend [instrumenting with OpenTelemetry](https://docs.honeycomb.io/getting-data-in/opentelemetry/ruby/).
8
+
7
9
  This package makes it easy to instrument your Ruby web app to send useful events to [Honeycomb](https://www.honeycomb.io), a service for debugging your software in production.
8
10
  - [Usage and Examples](https://docs.honeycomb.io/getting-data-in/beelines/ruby-beeline/)
9
11
 
@@ -12,7 +14,7 @@ trial](https://ui.honeycomb.io/signup) to obtain an API key before starting.
12
14
 
13
15
  ## Compatible with
14
16
 
15
- Requires Ruby version 2.3 or later
17
+ Requires Ruby version 2.5 or later
16
18
 
17
19
  Built in instrumentation for:
18
20
 
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec|
15
15
 
16
16
  spec.license = "Apache-2.0"
17
17
 
18
- spec.required_ruby_version = ">= 2.2.0"
18
+ spec.required_ruby_version = ">= 2.5.0"
19
19
 
20
20
  if spec.respond_to?(:metadata)
21
21
  spec.metadata["homepage_uri"] = spec.homepage
@@ -43,8 +43,8 @@ Gem::Specification.new do |spec|
43
43
  spec.add_development_dependency "bump"
44
44
  spec.add_development_dependency "bundler"
45
45
  spec.add_development_dependency "overcommit", "~> 0.46.0"
46
- spec.add_development_dependency "pry", "< 0.13.0"
47
- spec.add_development_dependency "pry-byebug", "~> 3.6.0"
46
+ spec.add_development_dependency "pry"
47
+ spec.add_development_dependency "pry-byebug"
48
48
  spec.add_development_dependency "rake"
49
49
  spec.add_development_dependency "rspec", "~> 3.0"
50
50
  spec.add_development_dependency "rspec_junit_formatter", ">= 0.5.1"
@@ -52,9 +52,5 @@ Gem::Specification.new do |spec|
52
52
  spec.add_development_dependency "rubocop-performance", "< 1.3.0"
53
53
  spec.add_development_dependency "simplecov"
54
54
  spec.add_development_dependency "simplecov-console"
55
- if RUBY_VERSION < "2.3.0"
56
- spec.add_development_dependency "webmock", "< 3.15.0"
57
- else
58
- spec.add_development_dependency "webmock"
59
- end
55
+ spec.add_development_dependency "webmock"
60
56
  end
@@ -2,8 +2,8 @@
2
2
 
3
3
  module Honeycomb
4
4
  module Beeline
5
- NAME = "honeycomb-beeline".freeze
6
- VERSION = "2.11.1-dev".freeze
7
- USER_AGENT_SUFFIX = "#{NAME}/#{VERSION}".freeze
5
+ NAME = "honeycomb-beeline"
6
+ VERSION = "3.0.0"
7
+ USER_AGENT_SUFFIX = "#{NAME}/#{VERSION}"
8
8
  end
9
9
  end
@@ -15,7 +15,7 @@ module Honeycomb
15
15
 
16
16
  upper_bound = MAX_INT32 / rate
17
17
  digest = Digest::SHA1.digest(value)[0, 4]
18
- value = digest.unpack("I!>").first
18
+ value = digest.unpack1("I!>")
19
19
  value <= upper_bound
20
20
  end
21
21
  end
@@ -108,7 +108,7 @@ module Honeycomb
108
108
  "aws.operation" => context.operation_name,
109
109
  }
110
110
 
111
- context.params && context.params.each do |key, value|
111
+ context.params&.each do |key, value|
112
112
  context[:honeycomb_aws_sdk_data]["aws.params.#{key}"] = value
113
113
  end
114
114
 
@@ -199,7 +199,7 @@ module Honeycomb
199
199
  pretty.encode!("UTF-8", "binary", fallback: ->(c) { hex(c) })
200
200
  pretty.gsub!(NEEDS_BACKSLASH, BACKSLASH)
201
201
  pretty.gsub!(NEEDS_HEX) { |c| hex(c) }
202
- pretty =~ NEEDS_QUOTES ? "\"#{pretty}\"" : pretty
202
+ NEEDS_QUOTES.match?(pretty) ? "\"#{pretty}\"" : pretty
203
203
  end
204
204
 
205
205
  # A regular expression matching characters that need to be hex-encoded.
@@ -52,10 +52,8 @@ module Honeycomb
52
52
  module MarshalTraceContext
53
53
  def to_trace_header
54
54
  context = [""]
55
- unless trace.fields.keys.nil?
56
- trace.fields.keys.each do |key|
57
- context.push("#{key}=#{trace.fields[key]}")
58
- end
55
+ trace.fields.keys&.each do |key|
56
+ context.push("#{key}=#{trace.fields[key]}")
59
57
  end
60
58
 
61
59
  data_to_propagate = [
@@ -68,10 +66,8 @@ module Honeycomb
68
66
  def self.to_trace_header(propagation_context)
69
67
  context = [""]
70
68
  fields = propagation_context.trace_fields
71
- unless fields.keys.nil?
72
- fields.keys.each do |key|
73
- context.push("#{key}=#{fields[key]}")
74
- end
69
+ fields.keys&.each do |key|
70
+ context.push("#{key}=#{fields[key]}")
75
71
  end
76
72
 
77
73
  data_to_propagate = [
@@ -42,11 +42,9 @@ module Honeycomb
42
42
  parent_span_id = value
43
43
  when "context"
44
44
  Base64.decode64(value).tap do |json|
45
- begin
46
- trace_fields = JSON.parse json
47
- rescue JSON::ParserError
48
- trace_fields = {}
49
- end
45
+ trace_fields = JSON.parse json
46
+ rescue JSON::ParserError
47
+ trace_fields = {}
50
48
  end
51
49
  end
52
50
  end
@@ -40,11 +40,9 @@ module Honeycomb
40
40
  parent_span_id = value
41
41
  when "context"
42
42
  Base64.decode64(value).tap do |json|
43
- begin
44
- trace_fields = JSON.parse json
45
- rescue JSON::ParserError
46
- trace_fields = {}
47
- end
43
+ trace_fields = JSON.parse json
44
+ rescue JSON::ParserError
45
+ trace_fields = {}
48
46
  end
49
47
  end
50
48
  end
@@ -5,8 +5,8 @@ module Honeycomb
5
5
  module W3CPropagation
6
6
  # Parse trace headers
7
7
  module UnmarshalTraceContext
8
- INVALID_TRACE_ID = "00000000000000000000000000000000".freeze
9
- INVALID_SPAN_ID = "0000000000000000".freeze
8
+ INVALID_TRACE_ID = "00000000000000000000000000000000"
9
+ INVALID_SPAN_ID = "0000000000000000"
10
10
 
11
11
  def parse_rack_env(env)
12
12
  parse env["HTTP_TRACEPARENT"]
@@ -16,7 +16,7 @@ module Honeycomb
16
16
  unless serialized_trace.nil?
17
17
  version, payload = serialized_trace.split("-", 2)
18
18
  # version should be 2 hex characters
19
- if version =~ /^[A-Fa-f0-9]{2}$/
19
+ if /^[A-Fa-f0-9]{2}$/.match?(version)
20
20
  trace_id, parent_span_id = parse_v1(payload)
21
21
 
22
22
  if !trace_id.nil? && !parent_span_id.nil?
@@ -149,13 +149,13 @@ module Honeycomb
149
149
  end
150
150
 
151
151
  if sample
152
- presend_hook && presend_hook.call(event.data)
152
+ presend_hook&.call(event.data)
153
153
  event.send_presampled
154
154
  end
155
155
  @sent = true
156
156
  context.span_sent(self)
157
157
 
158
- parent && parent.remove_child(self)
158
+ parent&.remove_child(self)
159
159
  end
160
160
 
161
161
  def add_additional_fields
@@ -40,10 +40,8 @@ module Honeycomb
40
40
 
41
41
  def load_integrations
42
42
  integrations_to_load.each do |integration|
43
- begin
44
- require "honeycomb/integrations/#{integration}"
45
- rescue LoadError
46
- end
43
+ require "honeycomb/integrations/#{integration}"
44
+ rescue LoadError
47
45
  end
48
46
  end
49
47
 
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: 2.11.1.pre.dev
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - The Honeycomb.io Team
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-01-26 00:00:00.000000000 Z
11
+ date: 2023-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: libhoney
@@ -84,30 +84,30 @@ dependencies:
84
84
  name: pry
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "<"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 0.13.0
89
+ version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - "<"
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
- version: 0.13.0
96
+ version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: pry-byebug
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - "~>"
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 3.6.0
103
+ version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - "~>"
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
- version: 3.6.0
110
+ version: '0'
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rake
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -317,14 +317,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
317
317
  requirements:
318
318
  - - ">="
319
319
  - !ruby/object:Gem::Version
320
- version: 2.2.0
320
+ version: 2.5.0
321
321
  required_rubygems_version: !ruby/object:Gem::Requirement
322
322
  requirements:
323
- - - ">"
323
+ - - ">="
324
324
  - !ruby/object:Gem::Version
325
- version: 1.3.1
325
+ version: '0'
326
326
  requirements: []
327
- rubygems_version: 3.3.26
327
+ rubygems_version: 3.4.10
328
328
  signing_key:
329
329
  specification_version: 4
330
330
  summary: Instrument your Ruby apps with Honeycomb