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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5450eee19abf3aeffa5ab2ad3fed729f42c14ced177471940ce27cde61a59584
4
- data.tar.gz: 3fe96d720e4037d1418f9a0775e715a6cb3ecc737613f87413e5f6e4516982cc
3
+ metadata.gz: 5511026a19ca068d501ca1cf33053d66cc3f22925adb51a232f981948aa22f01
4
+ data.tar.gz: aa6640e692ef366445b02151eeedd9235ba6d0dc5397a1d30eb419910b203626
5
5
  SHA512:
6
- metadata.gz: 01a6532aca09387fe4f5c696a93f587a16cff1ca650f4e862961570340bcbd57fe4a87a521a596312017514b64189d37eaf8386dd7722f041f8ae40de7d169bb
7
- data.tar.gz: 73fbf5663328ef7963a073a14bdeaa78f0ed74753091182b5476f54a502d8bc4bf91a1d78a7e7d8593b27b38b01771dc94fe9bbe946a9d2572095344016f230c
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
@@ -1,5 +1,5 @@
1
1
  module StackServiceBase
2
2
  class Base
3
- VERSION = '0.0.9'
3
+ VERSION = '0.0.11'
4
4
  end
5
5
  end
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.9
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-07 00:00:00.000000000 Z
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