traces-backend-open_telemetry 0.2.0 → 0.3.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: 0a6e7b852d0e639afb7711bb341ff286b03c6551f93c7bad739d925e970bdf0b
4
- data.tar.gz: 66e01999506279ab1934878f9728c54d71f0fa1bb2b79b9ae14043c6eaac85f7
3
+ metadata.gz: e827995b4fdb7c14068483b4a7796eb958378f4ad093c59f7d86be165d8b91f2
4
+ data.tar.gz: 1fa19c544b849a9a761ae757ec9198767432517106187d801d6f0e0f836522a1
5
5
  SHA512:
6
- metadata.gz: d6ff7a3fd2e174c1ed038dae1c1bbb7cc76cfd9e1c61d46b3a3ec9f4d6c3b43266b6249e95fecd27b71c46799ddaa84e880f0f862f74f0d0a0a794f5310cedc3
7
- data.tar.gz: ea506e7dc7d917947c0fbfdeb9e287a5b8abaa6d1b8b69668dbbb21234604214aed7ad6772311fdde90e9e9a25fa68612c879002b0f86a51893fb1c59c549da0
6
+ metadata.gz: 3d08dd5e72d329c9f114e7f10bad100144ca856f52d2e966cc52161a6cbf59c3c4bfa4ed4b5653e33c6c036f96ca6b4b71fa534ef944d5b68176a08623a0444c
7
+ data.tar.gz: d7115c5989a4ecb957a285382744b61e565cf9951668998cc0edd4596bd35507cde8f913b5fd34c95a2f2788d9891182d3f7e8e02462a3f68e0eeff33eff7091
checksums.yaml.gz.sig CHANGED
Binary file
@@ -21,17 +21,19 @@ module Traces
21
21
  end
22
22
 
23
23
  def trace_context=(context)
24
- span_context = ::OpenTelemetry::Trace::SpanContext.new(
25
- trace_id: context.trace_id,
26
- span_id: context.parent_id,
27
- trace_flags: ::OpenTelemetry::Trace::TraceFlags.from_byte(context.flags),
28
- tracestate: context.state,
29
- remote: context.remote?
30
- )
31
-
32
- span = ::OpenTelemetry::Trace.non_recording_span(span_context)
33
- context = ::OpenTelemetry::Trace.context_with_span(span)
34
- ::OpenTelemetry::Context.attach(context)
24
+ if context
25
+ span_context = ::OpenTelemetry::Trace::SpanContext.new(
26
+ trace_id: context.trace_id,
27
+ span_id: context.parent_id,
28
+ trace_flags: ::OpenTelemetry::Trace::TraceFlags.from_byte(context.flags),
29
+ tracestate: context.state,
30
+ remote: context.remote?
31
+ )
32
+
33
+ span = ::OpenTelemetry::Trace.non_recording_span(span_context)
34
+ context = ::OpenTelemetry::Trace.context_with_span(span)
35
+ ::OpenTelemetry::Context.attach(context)
36
+ end
35
37
  end
36
38
 
37
39
  def trace_context(span = ::OpenTelemetry::Trace.current_span)
@@ -51,6 +53,40 @@ module Traces
51
53
  )
52
54
  end
53
55
  end
56
+
57
+ def current_context
58
+ ::OpenTelemetry::Context.current
59
+ end
60
+
61
+ def with_context(context)
62
+ if block_given?
63
+ ::OpenTelemetry::Context.with_current(context) do
64
+ yield
65
+ end
66
+ else
67
+ ::OpenTelemetry::Context.attach(context)
68
+ end
69
+ end
70
+
71
+ def inject(headers = nil, context = nil)
72
+ context ||= ::OpenTelemetry::Context.current
73
+ headers ||= Hash.new
74
+
75
+ count = headers.count
76
+
77
+ ::OpenTelemetry.propagation.inject(headers, context: context)
78
+
79
+ if count == headers.count
80
+ # No injection was performed, so return nil:
81
+ headers = nil
82
+ end
83
+
84
+ return headers
85
+ end
86
+
87
+ def extract(headers)
88
+ ::OpenTelemetry.propagation.extract(headers)
89
+ end
54
90
  end
55
91
  end
56
92
 
@@ -6,7 +6,7 @@
6
6
  module Traces
7
7
  module Backend
8
8
  module OpenTelemetry
9
- VERSION = "0.2.0"
9
+ VERSION = "0.3.0"
10
10
  end
11
11
  end
12
12
  end
data/readme.md CHANGED
@@ -12,9 +12,25 @@ $ bundle add traces-backend-open_telemetry
12
12
 
13
13
  ## Usage
14
14
 
15
- ``` shell
16
- $ TRACES_BACKEND=traces/backend/open_telemetry ./my_script.rb
17
- ```
15
+ Please see the [project documentation](https://github.com/socketry/traces-backend-open_telemetry) for more details.
16
+
17
+ - [Getting Started](https://github.com/socketry/traces-backend-open_telemetryguides/getting-started/index) - This guide explains how to get started with `traces-backend-open_telemetry` to send application traces to OpenTelemetry.
18
+
19
+ ## Releases
20
+
21
+ Please see the [project releases](https://github.com/socketry/traces-backend-open_telemetryreleases/index) for all releases.
22
+
23
+ ### v0.3.0
24
+
25
+ - [New Context Propagation Interface](https://github.com/socketry/traces-backend-open_telemetryreleases/index#new-context-propagation-interface)
26
+
27
+ ### v0.2.0
28
+
29
+ - Prefer to use `Tracer#in_span`.
30
+
31
+ ### v0.1.0
32
+
33
+ - Complete implementation of traces backend for OpenTelemetry.
18
34
 
19
35
  ## Contributing
20
36
 
data/releases.md ADDED
@@ -0,0 +1,20 @@
1
+ # Releases
2
+
3
+ ## v0.3.0
4
+
5
+ ### New Context Propagation Interface
6
+
7
+ This release adds comprehensive support for OpenTelemetry's context propagation system, enabling efficient inter-process and intra-process tracing with full W3C compliance.
8
+
9
+ - `Traces.current_context` - Capture the current trace context for local propagation between execution contexts (threads, fibers).
10
+ - `Traces.with_context(context)` - Execute code within a specific trace context, with automatic restoration when used with blocks.
11
+ - `Traces.inject(headers = nil, context = nil)` - Inject W3C Trace Context and Baggage headers into a headers hash for distributed propagation.
12
+ - `Traces.extract(headers)` - Extract trace context from W3C Trace Context headers.
13
+
14
+ ## v0.2.0
15
+
16
+ - Prefer to use `Tracer#in_span`.
17
+
18
+ ## v0.1.0
19
+
20
+ - Complete implementation of traces backend for OpenTelemetry.
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,11 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: traces-backend-open_telemetry
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain:
11
10
  - |
@@ -37,7 +36,7 @@ cert_chain:
37
36
  Q2K9NVun/S785AP05vKkXZEFYxqG6EW012U4oLcFl5MySFajYXRYbuUpH6AY+HP8
38
37
  voD0MPg1DssDLKwXyt1eKD/+Fq0bFWhwVM/1XiAXL7lyYUyOq24KHgQ2Csg=
39
38
  -----END CERTIFICATE-----
40
- date: 2025-01-11 00:00:00.000000000 Z
39
+ date: 1980-01-02 00:00:00.000000000 Z
41
40
  dependencies:
42
41
  - !ruby/object:Gem::Dependency
43
42
  name: opentelemetry-api
@@ -67,8 +66,6 @@ dependencies:
67
66
  - - "~>"
68
67
  - !ruby/object:Gem::Version
69
68
  version: '0.10'
70
- description:
71
- email:
72
69
  executables: []
73
70
  extensions: []
74
71
  extra_rdoc_files: []
@@ -78,12 +75,12 @@ files:
78
75
  - lib/traces/backend/open_telemetry/version.rb
79
76
  - license.md
80
77
  - readme.md
78
+ - releases.md
81
79
  homepage: https://github.com/socketry/traces-backend-open_telemetry
82
80
  licenses:
83
81
  - MIT
84
82
  metadata:
85
83
  source_code_uri: https://github.com/socketry/traces-backend-open_telemetry.git
86
- post_install_message:
87
84
  rdoc_options: []
88
85
  require_paths:
89
86
  - lib
@@ -91,15 +88,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
91
88
  requirements:
92
89
  - - ">="
93
90
  - !ruby/object:Gem::Version
94
- version: '3.1'
91
+ version: '3.2'
95
92
  required_rubygems_version: !ruby/object:Gem::Requirement
96
93
  requirements:
97
94
  - - ">="
98
95
  - !ruby/object:Gem::Version
99
96
  version: '0'
100
97
  requirements: []
101
- rubygems_version: 3.5.22
102
- signing_key:
98
+ rubygems_version: 3.6.9
103
99
  specification_version: 4
104
100
  summary: A traces backend for Open Telemetry.
105
101
  test_files: []
metadata.gz.sig CHANGED
@@ -1,2 +1 @@
1
- ��YyM�����t=�ܹJ) ���rS��������Lb2z�����-��� ��;kjJ�| \T�D�zM=�j��]��tX5m�x�Q��߼��O[kɾ��~���ɕ�����syH��(�m��B.\O׊��8!�'�&4
2
- ��J�!�/��V�͆�(g'ħ��"S{�F��5������m��o[C��x� #qN�x��H� ��9y\��:��ZG��k���T���Y�1vzm7&&|f.D�V#�֐01h�����SC�Q������|���]z�J\�[�i�qM^�v 5/��eβ�9׮��r���ˈy��xp�q2�|�8���Q+��l!6+�g��N�x8B1R����Wdâ��f�LSr��UJq��
1
+ BT6�@�ۦ$ҩll*��<��!�MZR