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 +4 -4
- data/lib/stack-service-base/open_telemetry.rb +50 -9
- data/lib/stack-service-base/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5040caaeefe798a92d0f5758464a592094ab4110ed47eb1454cbc6105d054792
|
|
4
|
+
data.tar.gz: 8df39599e8a2ef12abca2d7ba2a1117fbcaebf673608f2f21ccbc9d91a68da0b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
|
|
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
|
-
|
|
205
|
+
return nil unless OTEL_ENABLED && Otel.enabled
|
|
165
206
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
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)
|