stack-service-base 0.0.74 → 0.0.76

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: 679a0bd930fa1400a380ea5631805ccdbab5ff079652acf5a9a506b561d1878a
4
- data.tar.gz: 9b35e48681c7180c2771e36ed2913645404bd7ba0a82f752ad5a34e5151da7fc
3
+ metadata.gz: 5040caaeefe798a92d0f5758464a592094ab4110ed47eb1454cbc6105d054792
4
+ data.tar.gz: 8df39599e8a2ef12abca2d7ba2a1117fbcaebf673608f2f21ccbc9d91a68da0b
5
5
  SHA512:
6
- metadata.gz: 29414e3d8df2788f01595758c0429a14400347bf3d94a0b08910093027009414b9b9dd5a2e31fe70b015afbcc27ea627c7b8b3cdebf6f1847283471c39c6944d
7
- data.tar.gz: 05a90cc00ae3b2da0c86453d1083cf32d91f0f12fe5b607ee93d4b718f931c43e3610e5753d8e1b3bcb28c12c10328a4d5ab77af909985aeeeb15e3c4e5df159
6
+ metadata.gz: 461bc25463a6a72254b06911850420d7668e624d674810223478598579ad460d0b3d457a4fec9a49deed70b609edb3b3d4a4edb37ce74202fdf7c36d5d0c1af2
7
+ data.tar.gz: 5ce16e4b261baf9e920b09ce0765df22e5ef14873150e02d1c28ced389a10ec758612913d23e44c3c97ddfa5bb2d2a0b5e06c1102ea13b058237c3f302dccbe7
@@ -4,9 +4,18 @@ ENV['OTEL_LOG_LEVEL'] ||= 'debug'
4
4
  ENV['OTEL_TRACES_EXPORTER'] ||= 'console,otlp'
5
5
  ENV['OTEL_LOGS_EXPORTER'] ||= 'otlp,console'
6
6
 
7
+ class Otel
8
+ class << self
9
+ attr_accessor :enabled # To temporally disable Otel
10
+ end
11
+ end
12
+
7
13
  unless defined? OTEL_ENABLED
8
14
  OTEL_ENABLED = !ENV['OTEL_EXPORTER_OTLP_ENDPOINT'].to_s.empty?
9
15
  end
16
+
17
+ Otel.enabled = OTEL_ENABLED
18
+
10
19
  $stdout.puts "OTEL_ENABLED: #{OTEL_ENABLED}"
11
20
 
12
21
  # require 'async'
@@ -140,9 +149,41 @@ if defined? Sequel and OTEL_ENABLED
140
149
  end
141
150
  end
142
151
 
143
- def otl_span(name, attributes = {})
152
+
153
+ # Thread.otl_new do
154
+ # ...
155
+ # end
156
+
157
+ class << Thread
158
+ alias_method :_otel_original_new, :new
159
+
160
+ if OTEL_ENABLED
161
+ def otl_new(*args, **kwargs, &block)
162
+ ctx = OpenTelemetry::Context.current
163
+
164
+ _otel_original_new(*args, **kwargs) do |*bargs|
165
+ OpenTelemetry::Context.with_current(ctx) do
166
+ block.call(*bargs)
167
+ end
168
+ end
169
+ end
170
+ else
171
+ alias_method :otl_new, :new
172
+ end
173
+ end
174
+
175
+ def otl_span_thread(name, attributes = {}, &block)
176
+ ctx_ = OpenTelemetry::Context.current
177
+ Thread.new do
178
+ OpenTelemetry::Context.with_current(ctx_) do
179
+ otl_span(name, attributes, &block)
180
+ end
181
+ end
182
+ end
183
+
184
+ def otl_span(name, attributes = {}, &block)
144
185
  # span_ = OpenTelemetry::Trace.current_span
145
- return yield(nil) unless OTEL_ENABLED
186
+ return yield(nil) unless OTEL_ENABLED && Otel.enabled
146
187
 
147
188
  return yield(nil) unless $tracer_
148
189
  $tracer_&.in_span(name, attributes: flatten_hash(attributes.transform_keys(&:to_s).transform_values{_1 || 'n/a'}) ) do |span|
@@ -151,7 +192,7 @@ def otl_span(name, attributes = {})
151
192
  end
152
193
 
153
194
  def otl_current_span
154
- return unless OTEL_ENABLED
195
+ return unless OTEL_ENABLED && Otel.enabled
155
196
  yield OpenTelemetry::Trace.current_span
156
197
  end
157
198
 
@@ -161,13 +202,13 @@ end
161
202
  # end
162
203
 
163
204
  def otl_traceparent_id
164
- return nil unless OTEL_ENABLED
205
+ return nil unless OTEL_ENABLED && Otel.enabled
165
206
 
166
- span_context = OpenTelemetry::Trace.current_span.context
167
- trace_id = span_context.trace_id.unpack1('H*')
168
- span_id = span_context.span_id.unpack1('H*')
169
- trace_flags = format('%02x', span_context.trace_flags.instance_eval{ @flags }) # Two-digit hex for trace flags (e.g., sampled)
170
- "00-#{trace_id}-#{span_id}-#{trace_flags}"
207
+ span_context = OpenTelemetry::Trace.current_span.context
208
+ trace_id = span_context.trace_id.unpack1('H*')
209
+ span_id = span_context.span_id.unpack1('H*')
210
+ trace_flags = format('%02x', span_context.trace_flags.instance_eval{ @flags }) # Two-digit hex for trace flags (e.g., sampled)
211
+ "00-#{trace_id}-#{span_id}-#{trace_flags}"
171
212
  end
172
213
 
173
214
  def otl_def(name)
@@ -1,3 +1,3 @@
1
1
  module StackServiceBase
2
- VERSION = '0.0.74'
2
+ VERSION = '0.0.76'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stack-service-base
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.74
4
+ version: 0.0.76
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artyom B