traces 0.15.2 → 0.16.1

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: 6cba8b363fbd6a0df7f971924f3b8d3f358bc5b91ea2eb57045716285081fc35
4
- data.tar.gz: 612777384a90dbc375f1a349e8291cabd7bb8ebf77830075d29703e54d5f4d60
3
+ metadata.gz: c5cade081ca22c58a581b9ee4ff5ede03999ff958acafad5da6a7ce9a9475229
4
+ data.tar.gz: 1d063d5cd8e2e3bbfbabec12a072ca8c111cec91b190c458e947165c81080520
5
5
  SHA512:
6
- metadata.gz: 162910bc810cdb69c55e6bb59354dd7b0859237a4cc47c5d1a4ce4ccb6cafee24913680d9f1d815540b4524941eb9fd8bcda7cd49bebcd3fbdac534708cb828e
7
- data.tar.gz: 4e5432869b0470ae85fbee9d6efbc57130b07944f5960eb7ee4832a848068caf56445b5846434075206111262f17b12ce92564417ff56d90c3162ee5338f0bbc
6
+ metadata.gz: f9f669b2f177f90f89dc36814db446478f905f4c431a0826c67d90463c34ceb92ff7ad2bef5d557957ff523850205816471b4b631a6d7ba5d52aaee38573ad23
7
+ data.tar.gz: a816047346db65717b756c405c3c00ac0808983ff10abaa24b72524924fcf9ce08cefe2021b4f164231f03f7fde7f606184b0b845f4b45ca0e14c68fd2118e51
checksums.yaml.gz.sig CHANGED
Binary file
@@ -0,0 +1,15 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Released under the MIT License.
4
+ # Copyright, 2023-2025, by Samuel Williams.
5
+
6
+ # Enable capturing traces.
7
+ def capture
8
+ ENV["TRACES_BACKEND"] = "traces/backend/capture"
9
+ require "traces"
10
+ end
11
+
12
+ # Generate a list of traces that have been captured.
13
+ def list
14
+ Traces::Backend::Capture.spans.sort_by!{|span| span.name}
15
+ end
@@ -0,0 +1,19 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Released under the MIT License.
4
+ # Copyright, 2025, by Samuel Williams.
5
+
6
+ def list
7
+ available = {}
8
+
9
+ Gem.loaded_specs.each do |name, spec|
10
+ spec.require_paths.each do |require_path|
11
+ root = File.expand_path(require_path, spec.full_gem_path)
12
+ Dir.glob("traces/provider/**/*.rb", base: root).each do |path|
13
+ (available[name] ||= []) << path
14
+ end
15
+ end
16
+ end
17
+
18
+ return available
19
+ end
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Released under the MIT License.
4
- # Copyright, 2023, by Samuel Williams.
4
+ # Copyright, 2023-2025, by Samuel Williams.
5
5
 
6
- require_relative '../context'
6
+ require_relative "../context"
7
7
 
8
- require 'fiber'
8
+ require "fiber"
9
9
 
10
10
  Fiber.attr_accessor :traces_backend_context
11
11
 
@@ -1,12 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Released under the MIT License.
4
- # Copyright, 2021-2023, by Samuel Williams.
4
+ # Copyright, 2021-2025, by Samuel Williams.
5
5
 
6
- require_relative '../context'
6
+ require_relative "../context"
7
7
 
8
- require 'console'
9
- require 'fiber'
8
+ require "console"
9
+ require "fiber"
10
10
 
11
11
  Fiber.attr_accessor :traces_backend_context
12
12
 
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Released under the MIT License.
4
- # Copyright, 2021-2023, by Samuel Williams.
4
+ # Copyright, 2021-2025, by Samuel Williams.
5
5
 
6
- require_relative '../context'
6
+ require_relative "../context"
7
7
 
8
- require 'fiber'
8
+ require "fiber"
9
9
 
10
10
  Fiber.attr_accessor :traces_backend_context
11
11
 
@@ -3,7 +3,7 @@
3
3
  # Released under the MIT License.
4
4
  # Copyright, 2021-2025, by Samuel Williams.
5
5
 
6
- require_relative 'config'
6
+ require_relative "config"
7
7
 
8
8
  module Traces
9
9
  # The backend implementation is responsible for recording and reporting traces.
data/lib/traces/config.rb CHANGED
@@ -33,7 +33,7 @@ module Traces
33
33
 
34
34
  # Require a specific traces backend implementation.
35
35
  def require_backend(env = ENV)
36
- if backend = env['TRACES_BACKEND']
36
+ if backend = env["TRACES_BACKEND"]
37
37
  begin
38
38
  if require(backend)
39
39
  # We ensure that the interface methods replace any existing methods by prepending the module:
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Released under the MIT License.
4
- # Copyright, 2021-2023, by Samuel Williams.
4
+ # Copyright, 2021-2025, by Samuel Williams.
5
5
 
6
- require 'securerandom'
6
+ require "securerandom"
7
7
 
8
8
  module Traces
9
9
  # A generic representation of the current tracing context.
@@ -12,17 +12,17 @@ module Traces
12
12
  # @parameter parent [String] The parent trace context.
13
13
  # @parameter state [Array(String)] Any attached trace state.
14
14
  def self.parse(parent, state = nil, **options)
15
- version, trace_id, parent_id, flags = parent.split('-')
15
+ version, trace_id, parent_id, flags = parent.split("-")
16
16
 
17
- if version == '00'
17
+ if version == "00"
18
18
  flags = Integer(flags, 16)
19
19
 
20
20
  if state.is_a?(String)
21
- state = state.split(',')
21
+ state = state.split(",")
22
22
  end
23
23
 
24
24
  if state
25
- state = state.map{|item| item.split('=')}.to_h
25
+ state = state.map{|item| item.split("=")}.to_h
26
26
  end
27
27
 
28
28
  self.new(trace_id, parent_id, flags, state, **options)
@@ -1,9 +1,9 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Released under the MIT License.
4
- # Copyright, 2021-2023, by Samuel Williams.
4
+ # Copyright, 2021-2025, by Samuel Williams.
5
5
 
6
- require_relative 'backend'
6
+ require_relative "backend"
7
7
 
8
8
  module Traces
9
9
  # @returns [Boolean] Whether there is an active backend.
@@ -1,8 +1,8 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Released under the MIT License.
4
- # Copyright, 2021-2023, by Samuel Williams.
4
+ # Copyright, 2021-2025, by Samuel Williams.
5
5
 
6
6
  module Traces
7
- VERSION = "0.15.2"
7
+ VERSION = "0.16.1"
8
8
  end
data/lib/traces.rb CHANGED
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  # Released under the MIT License.
4
- # Copyright, 2021-2022, by Samuel Williams.
4
+ # Copyright, 2021-2025, by Samuel Williams.
5
5
 
6
- require_relative 'traces/version'
7
- require_relative 'traces/provider'
6
+ require_relative "traces/version"
7
+ require_relative "traces/provider"
8
8
 
9
9
  # @namespace
10
10
  module Traces
data/license.md CHANGED
@@ -1,7 +1,8 @@
1
1
  # MIT License
2
2
 
3
- Copyright, 2021-2024, by Samuel Williams.
3
+ Copyright, 2021-2025, by Samuel Williams.
4
4
  Copyright, 2022, by Felix Yan.
5
+ Copyright, 2024, by Zach Taylor.
5
6
 
6
7
  Permission is hereby granted, free of charge, to any person obtaining a copy
7
8
  of this software and associated documentation files (the "Software"), to deal
data/readme.md CHANGED
@@ -23,6 +23,10 @@ Please see the [project documentation](https://socketry.github.io/traces/) for m
23
23
 
24
24
  Please see the [project releases](https://socketry.github.io/traces/releases/index) for all releases.
25
25
 
26
+ ### v0.16.0
27
+
28
+ - Introduce `traces:provider:list` command to list all available trace providers.
29
+
26
30
  ### v0.14.0
27
31
 
28
32
  - [Introduce `Traces::Config` to Expose `prepare` Hook](https://socketry.github.io/traces/releases/index#introduce-traces::config-to-expose-prepare-hook)
data/releases.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Releases
2
2
 
3
+ ## v0.16.0
4
+
5
+ - Introduce `traces:provider:list` command to list all available trace providers.
6
+
3
7
  ## v0.14.0
4
8
 
5
9
  ### Introduce `Traces::Config` to Expose `prepare` Hook
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,11 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: traces
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.2
4
+ version: 0.16.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
8
  - Felix Yan
9
+ - Zach Taylor
9
10
  bindir: bin
10
11
  cert_chain:
11
12
  - |
@@ -37,12 +38,14 @@ cert_chain:
37
38
  Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
38
39
  voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
39
40
  -----END CERTIFICATE-----
40
- date: 2025-02-01 00:00:00.000000000 Z
41
+ date: 1980-01-02 00:00:00.000000000 Z
41
42
  dependencies: []
42
43
  executables: []
43
44
  extensions: []
44
45
  extra_rdoc_files: []
45
46
  files:
47
+ - bake/traces/capture.rb
48
+ - bake/traces/provider.rb
46
49
  - lib/traces.rb
47
50
  - lib/traces/backend.rb
48
51
  - lib/traces/backend/capture.rb
@@ -68,14 +71,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
68
71
  requirements:
69
72
  - - ">="
70
73
  - !ruby/object:Gem::Version
71
- version: '3.1'
74
+ version: '3.2'
72
75
  required_rubygems_version: !ruby/object:Gem::Requirement
73
76
  requirements:
74
77
  - - ">="
75
78
  - !ruby/object:Gem::Version
76
79
  version: '0'
77
80
  requirements: []
78
- rubygems_version: 3.6.2
81
+ rubygems_version: 3.6.7
79
82
  specification_version: 4
80
83
  summary: Application instrumentation and tracing.
81
84
  test_files: []
metadata.gz.sig CHANGED
Binary file