foam-ruby 0.1.0.alpha9 → 0.1.0.alpha11
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/foam/ruby/configuration.rb +8 -2
- data/lib/foam/ruby/otel_setup.rb +10 -0
- data/lib/foam/ruby/version.rb +1 -1
- data/lib/foam/ruby.rb +11 -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: d11bbb00722285e3f5067846a74672e3db19c6f01a747dbb42cd5f6d39301249
|
|
4
|
+
data.tar.gz: 215a14be456423046f861db934ef9a4ff81858a43092a20c8723d96d2ab33208
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 8dccca7b49de454e8ef27e53b0fa3666b1edc3e0de7724758b8adcbd7394ff197ddca5afedb3108e758d1699b11e9f92d256db158361eec2371fc03e4bc0a87a
|
|
7
|
+
data.tar.gz: a0ba57ba2fe9e56fdcfc46a32af1076bfe33c36840effaa5e6b51c13ccef63a077eefea4ec407ae99a15803bd75503b6d3bd10b97cc4beffb031d9ee8d27f41b
|
|
@@ -9,7 +9,7 @@ module Foam
|
|
|
9
9
|
|
|
10
10
|
def initialize
|
|
11
11
|
@token = ENV["FOAM_API_TOKEN"]
|
|
12
|
-
@service_name = ENV
|
|
12
|
+
@service_name = ENV["OTEL_SERVICE_NAME"]
|
|
13
13
|
@endpoint = ENV.fetch("FOAM_OTEL_ENDPOINT", FOAM_OTEL_ENDPOINT)
|
|
14
14
|
end
|
|
15
15
|
|
|
@@ -26,7 +26,13 @@ module Foam
|
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def valid?
|
|
29
|
-
|
|
29
|
+
present?(token) && present?(service_name)
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
private
|
|
33
|
+
|
|
34
|
+
def present?(val)
|
|
35
|
+
!val.nil? && !val.empty?
|
|
30
36
|
end
|
|
31
37
|
end
|
|
32
38
|
end
|
data/lib/foam/ruby/otel_setup.rb
CHANGED
|
@@ -27,6 +27,7 @@ module Foam
|
|
|
27
27
|
existing = OpenTelemetry.tracer_provider
|
|
28
28
|
if existing.is_a?(OpenTelemetry::SDK::Trace::TracerProvider)
|
|
29
29
|
existing.add_span_processor(@foam_span_processor)
|
|
30
|
+
install_instrumentations!
|
|
30
31
|
else
|
|
31
32
|
OpenTelemetry::SDK.configure do |c|
|
|
32
33
|
c.service_name = config.service_name
|
|
@@ -38,6 +39,15 @@ module Foam
|
|
|
38
39
|
@attached_provider = OpenTelemetry.tracer_provider
|
|
39
40
|
end
|
|
40
41
|
|
|
42
|
+
def install_instrumentations!
|
|
43
|
+
registry = OpenTelemetry::Instrumentation.registry
|
|
44
|
+
return unless registry
|
|
45
|
+
|
|
46
|
+
registry.each do |instrumentation|
|
|
47
|
+
instrumentation.install unless instrumentation.installed?
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
41
51
|
def ensure_processor_attached!
|
|
42
52
|
return unless @foam_span_processor
|
|
43
53
|
|
data/lib/foam/ruby/version.rb
CHANGED
data/lib/foam/ruby.rb
CHANGED
|
@@ -19,7 +19,8 @@ module Foam
|
|
|
19
19
|
config.service_name = service_name if service_name
|
|
20
20
|
|
|
21
21
|
unless config.valid?
|
|
22
|
-
warn "[foam-ruby] Missing
|
|
22
|
+
warn "[foam-ruby] Missing required config — set OTEL_FOAM_COLLECTOR_BEARER_TOKEN and OTEL_SERVICE_NAME, " \
|
|
23
|
+
"or pass token: and service_name: to Foam::Ruby.init"
|
|
23
24
|
return
|
|
24
25
|
end
|
|
25
26
|
|
|
@@ -29,6 +30,7 @@ module Foam
|
|
|
29
30
|
|
|
30
31
|
OtelSetup.configure!(config)
|
|
31
32
|
insert_middleware!
|
|
33
|
+
schedule_logger_attach!
|
|
32
34
|
bridge_sentry!
|
|
33
35
|
@initialized = true
|
|
34
36
|
rescue Exception => e # rubocop:disable Lint/RescueException
|
|
@@ -91,6 +93,14 @@ module Foam
|
|
|
91
93
|
false
|
|
92
94
|
end
|
|
93
95
|
|
|
96
|
+
def schedule_logger_attach!
|
|
97
|
+
return unless defined?(::Rails) && ::Rails.respond_to?(:application) && ::Rails.application
|
|
98
|
+
|
|
99
|
+
::Rails.application.config.after_initialize { attach_otel_logger! }
|
|
100
|
+
rescue Exception # rubocop:disable Lint/RescueException
|
|
101
|
+
nil
|
|
102
|
+
end
|
|
103
|
+
|
|
94
104
|
def insert_middleware!
|
|
95
105
|
return unless defined?(::Rails) && ::Rails.respond_to?(:application) && ::Rails.application
|
|
96
106
|
|