honeycomb-beeline 2.11.1.pre.dev → 3.0.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: 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