stack-service-base 0.0.10 → 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 +20 -3
- 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,9 +59,15 @@ def otel_initialize
|
|
58
59
|
return unless OTEL_ENABLED
|
59
60
|
|
60
61
|
OpenTelemetry::SDK.configure do |c|
|
62
|
+
OpenTelemetry::Instrumentation::Rack
|
61
63
|
c.use_all({
|
62
|
-
'OpenTelemetry::Instrumentation::Sinatra' => { install_rack:
|
63
|
-
'OpenTelemetry::Instrumentation::Rack' => {
|
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
|
+
}
|
64
71
|
})
|
65
72
|
# c.service_name = SERVICE_NAME
|
66
73
|
end
|
@@ -128,6 +135,16 @@ def otl_current_span
|
|
128
135
|
yield OpenTelemetry::Trace.current_span
|
129
136
|
end
|
130
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
|
+
|
131
148
|
def otl_def(name)
|
132
149
|
original_method = self.respond_to?(:instance_method) ? instance_method(name) : method(name)
|
133
150
|
self.respond_to?(:remove_method) ? remove_method(name) : Object.send(:remove_method, name)
|
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
|