traces 0.15.2 → 0.16.2

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: a7dfd28d3152a61cde637263d62515e45dad6b3f67ed45feddb886677f9bdc0c
4
+ data.tar.gz: fae636690f466a2e83f81989c5791ba9bc4aeeb6809f2463e00cb200c99b241e
5
5
  SHA512:
6
- metadata.gz: 162910bc810cdb69c55e6bb59354dd7b0859237a4cc47c5d1a4ce4ccb6cafee24913680d9f1d815540b4524941eb9fd8bcda7cd49bebcd3fbdac534708cb828e
7
- data.tar.gz: 4e5432869b0470ae85fbee9d6efbc57130b07944f5960eb7ee4832a848068caf56445b5846434075206111262f17b12ce92564417ff56d90c3162ee5338f0bbc
6
+ metadata.gz: 5ea1e04a1d153839e8102ab204eec74c8e1ad92adab944fda1a2e2bb5e017fac7352daaf9fa95f05d79ad340dc6e36a148569636e8347998de862cf3e05a6671
7
+ data.tar.gz: 8c1fb7172e0280961705f64c950cd442b3d070400d78b5ae7e5b2e69537ecc877f7c5d34e3e03a6cf471755bf4f99d9243bcf2ee37ac4d46dc90d8203857208a
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,20 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Released under the MIT License.
4
+ # Copyright, 2025, by Samuel Williams.
5
+
6
+ # List available providers for traces from all loaded gems.
7
+ def list
8
+ available = {}
9
+
10
+ Gem.loaded_specs.each do |name, spec|
11
+ spec.require_paths.each do |require_path|
12
+ root = File.expand_path(require_path, spec.full_gem_path)
13
+ Dir.glob("traces/provider/**/*.rb", base: root).each do |path|
14
+ (available[name] ||= []) << path
15
+ end
16
+ end
17
+ end
18
+
19
+ return available
20
+ 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.2"
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.2
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
@@ -1,4 +1,5 @@
1
- wMe/E-C
2
- ����*U"��Lz�����0���B��i��A]w�
3
- ������4�S3'���9�!s�=e02�{a ����ߒy_D���i4(DE�'��-A��Q=��Պk�ruz�^��(�W�
4
- �*���*Ki&*�k���SRP���Ega}d^$%�%�k�0�g^b���&�Y��� r s8����8���`�{N�쟵�~�%�ǐ5�;-�����,Cѷ
1
+ ���"1(hy5Y��<���*niSK' ˾��3oܾ�Ô�S��۞kE�%�f�x �Wш�6
2
+ I��&hs9�1�mH�&��0Mo�p@L��E® .���Ϣ�gt����b1�._x
3
+ �#nB�#�y������9�ڂ��]��YN)~�!o.TB��sw$�a2" ����d�2Q�p�؃{E�h3�-��$F�Q+T 3͗;�$�J�� �m�j���~�T=�C%ж����"Ja���䬻�\V��dy(��J,˭�7Ę�g�7�ꪴm{��ܤ��fΰ/� Dȥ���7@xo���:5B����W{{-V��(d
4
+ ���f
5
+ �1_K��}�-�)�?�t�Mh����QD�