stack-service-base 0.0.9 → 0.0.11
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/logging.rb +1 -0
- data/lib/stack-service-base/open_telemetry.rb +22 -8
- data/lib/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5511026a19ca068d501ca1cf33053d66cc3f22925adb51a232f981948aa22f01
|
4
|
+
data.tar.gz: aa6640e692ef366445b02151eeedd9235ba6d0dc5397a1d30eb419910b203626
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07eedfbefd18e243a62af1482d960638f4f2b8fe607af7de588f3a67e6b491b4244727163faeb34f8bda69585d8012d4e33e8f1e4116cd4f26b14454faf14002
|
7
|
+
data.tar.gz: 43c0f4db64e33650a66ab08cd5b24b5763df191a4941914d541c1c7a55c713b2d287f28b4d53dca1cc221e8f6f2654c9de6c6fa8fbff13c07666972505d8dcb2
|
@@ -5,6 +5,7 @@ QUIET = ENV.fetch('CONSOLE_LEVEL', 'false') == 'true'
|
|
5
5
|
PERFORMANCE = ENV.fetch('PERFORMANCE', 'false') == 'true'
|
6
6
|
|
7
7
|
ENV['CONSOLE_LEVEL'] ||= 'all' unless QUIET || PERFORMANCE
|
8
|
+
# ENV['CONSOLE_OUTPUT'] ||= 'XTerm' # JSON,Text,XTerm,Default
|
8
9
|
|
9
10
|
CONSOLE_LOGGER = Class.new {
|
10
11
|
def <<(...) = Console.logger.info(...)
|
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'async'
|
2
|
+
|
1
3
|
ENV['OTEL_LOG_LEVEL'] ||= 'debug'
|
2
4
|
ENV['OTEL_TRACES_EXPORTER'] ||= 'console,otlp'
|
3
5
|
|
@@ -22,7 +24,6 @@ if OTEL_ENABLED
|
|
22
24
|
end
|
23
25
|
|
24
26
|
if defined? Async and OTEL_ENABLED
|
25
|
-
require 'async'
|
26
27
|
module AsyncTaskOTELPatch
|
27
28
|
def initialize(parent = Task.current?, finished: nil, **options, &block)
|
28
29
|
ctx_ = OpenTelemetry::Context.current
|
@@ -58,8 +59,17 @@ def otel_initialize
|
|
58
59
|
return unless OTEL_ENABLED
|
59
60
|
|
60
61
|
OpenTelemetry::SDK.configure do |c|
|
62
|
+
OpenTelemetry::Instrumentation::Rack
|
63
|
+
c.use_all({
|
64
|
+
'OpenTelemetry::Instrumentation::Sinatra' => { install_rack: true },
|
65
|
+
'OpenTelemetry::Instrumentation::Rack' => {
|
66
|
+
use_rack_events: false, # TODO: doesnt work with Websoker requests
|
67
|
+
# /home/user/.rbenv/versions/3.3.1/lib/ruby/gems/3.3.0/gems/opentelemetry-instrumentation-rack-0.26.0/lib/opentelemetry/instrumentation/rack/instrumentation.rb#43
|
68
|
+
url_quantization: ->(path, env) { "HTTP #{env['REQUEST_METHOD']} #{path}" },
|
69
|
+
untraced_requests: ->(env) { env['HTTP_UPGRADE'] == 'websocket' }
|
70
|
+
}
|
71
|
+
})
|
61
72
|
# c.service_name = SERVICE_NAME
|
62
|
-
c.use_all # enables all instrumentation!
|
63
73
|
end
|
64
74
|
|
65
75
|
at_exit do
|
@@ -125,6 +135,16 @@ def otl_current_span
|
|
125
135
|
yield OpenTelemetry::Trace.current_span
|
126
136
|
end
|
127
137
|
|
138
|
+
def otl_traceparent_id
|
139
|
+
return nil unless OTEL_ENABLED
|
140
|
+
|
141
|
+
span_context = OpenTelemetry::Trace.current_span.context
|
142
|
+
trace_id = span_context.trace_id.unpack1('H*')
|
143
|
+
span_id = span_context.span_id.unpack1('H*')
|
144
|
+
trace_flags = format('%02x', span_context.trace_flags.instance_eval{ @flags }) # Two-digit hex for trace flags (e.g., sampled)
|
145
|
+
"00-#{trace_id}-#{span_id}-#{trace_flags}"
|
146
|
+
end
|
147
|
+
|
128
148
|
def otl_def(name)
|
129
149
|
original_method = self.respond_to?(:instance_method) ? instance_method(name) : method(name)
|
130
150
|
self.respond_to?(:remove_method) ? remove_method(name) : Object.send(:remove_method, name)
|
@@ -138,12 +158,6 @@ def otl_def(name)
|
|
138
158
|
end
|
139
159
|
end
|
140
160
|
|
141
|
-
if defined? OpenTelemetry::Instrumentation::Rack::Middlewares
|
142
|
-
OpenTelemetry::Instrumentation::Rack::Middlewares::TracerMiddleware.config[:url_quantization] = ->(path, env) {
|
143
|
-
"HTTP #{env['REQUEST_METHOD']} #{path}"
|
144
|
-
}
|
145
|
-
end
|
146
|
-
|
147
161
|
if OTEL_ENABLED
|
148
162
|
class OpenTelemetry::SDK::Trace::Span
|
149
163
|
alias add_attributes_old add_attributes
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stack-service-base
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- ''
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-05-
|
11
|
+
date: 2025-05-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: async
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: prometheus-client
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|