solarwinds_apm 6.0.0.preV5 → 6.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/oboe_metal/extconf.rb +5 -4
- data/ext/oboe_metal/lib/liboboe-1.0-aarch64.so.sha256 +1 -1
- data/ext/oboe_metal/lib/liboboe-1.0-alpine-aarch64.so.sha256 +1 -1
- data/ext/oboe_metal/lib/liboboe-1.0-alpine-x86_64.so.sha256 +1 -1
- data/ext/oboe_metal/lib/liboboe-1.0-x86_64.so.sha256 +1 -1
- data/ext/oboe_metal/src/VERSION +1 -1
- data/ext/oboe_metal/src/oboe.h +56 -13
- data/ext/oboe_metal/src/oboe_api.cpp +105 -6
- data/ext/oboe_metal/src/oboe_api.h +121 -2
- data/ext/oboe_metal/src/oboe_debug.h +4 -315
- data/ext/oboe_metal/src/oboe_swig_wrap.cc +2987 -549
- data/lib/oboe_metal.rb +23 -64
- data/lib/rails/generators/solarwinds_apm/templates/solarwinds_apm_initializer.rb +1 -1
- data/lib/solarwinds_apm/api/current_trace_info.rb +2 -3
- data/lib/solarwinds_apm/api/opentelemetry.rb +2 -2
- data/lib/solarwinds_apm/api/tracing.rb +1 -1
- data/lib/solarwinds_apm/api.rb +1 -1
- data/lib/solarwinds_apm/config.rb +56 -17
- data/lib/solarwinds_apm/constants.rb +5 -7
- data/lib/solarwinds_apm/noop/README.md +1 -1
- data/lib/solarwinds_apm/noop/api.rb +83 -0
- data/lib/solarwinds_apm/noop/context.rb +13 -2
- data/lib/solarwinds_apm/noop/metadata.rb +5 -2
- data/lib/solarwinds_apm/{thread_local.rb → noop/span.rb} +14 -20
- data/lib/solarwinds_apm/{base.rb → noop.rb} +22 -27
- data/lib/solarwinds_apm/oboe_init_options.rb +23 -82
- data/lib/solarwinds_apm/opentelemetry/solarwinds_exporter.rb +1 -1
- data/lib/solarwinds_apm/opentelemetry/solarwinds_processor.rb +2 -2
- data/lib/solarwinds_apm/opentelemetry/solarwinds_sampler.rb +4 -3
- data/lib/solarwinds_apm/opentelemetry.rb +1 -1
- data/lib/solarwinds_apm/otel_config.rb +14 -43
- data/lib/solarwinds_apm/patch/dummy_patch.rb +12 -0
- data/lib/solarwinds_apm/patch.rb +11 -0
- data/lib/solarwinds_apm/support/logger_formatter.rb +1 -1
- data/lib/solarwinds_apm/support/oboe_tracing_mode.rb +20 -22
- data/lib/solarwinds_apm/support/service_key_checker.rb +94 -0
- data/lib/solarwinds_apm/{support_report.rb → support/support_report.rb} +11 -8
- data/lib/solarwinds_apm/support/swomarginalia/comment.rb +2 -2
- data/lib/solarwinds_apm/support/swomarginalia/swomarginalia.rb +1 -1
- data/lib/solarwinds_apm/support/transaction_settings.rb +1 -5
- data/lib/solarwinds_apm/support.rb +1 -0
- data/lib/solarwinds_apm/version.rb +1 -1
- data/lib/solarwinds_apm.rb +70 -55
- metadata +12 -7
data/lib/solarwinds_apm.rb
CHANGED
@@ -5,74 +5,89 @@
|
|
5
5
|
# Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
|
6
6
|
|
7
7
|
begin
|
8
|
+
require 'solarwinds_apm/logger'
|
9
|
+
require 'solarwinds_apm/version'
|
10
|
+
require 'solarwinds_apm/noop'
|
11
|
+
require 'opentelemetry-api'
|
8
12
|
if ENV.fetch('SW_APM_ENABLED', 'true') == 'false'
|
9
|
-
SolarWindsAPM.logger.
|
13
|
+
SolarWindsAPM.logger.info '==================================================================='
|
14
|
+
SolarWindsAPM.logger.info 'SW_APM_ENABLED environment variable detected and was set to false. SolarWindsAPM disabled'
|
15
|
+
SolarWindsAPM.logger.info '==================================================================='
|
10
16
|
return
|
11
17
|
end
|
12
18
|
|
13
|
-
require 'solarwinds_apm/version'
|
14
|
-
require 'solarwinds_apm/thread_local'
|
15
|
-
require 'solarwinds_apm/support_report'
|
16
|
-
require 'solarwinds_apm/constants'
|
17
|
-
require 'solarwinds_apm/api'
|
18
|
-
require 'solarwinds_apm/base'
|
19
|
-
require 'solarwinds_apm/logger'
|
20
|
-
require 'solarwinds_apm/config'
|
21
|
-
|
22
|
-
SolarWindsAPM::Config.load_config_file
|
23
|
-
SolarWindsAPM.loaded = false
|
24
19
|
begin
|
25
|
-
if
|
26
|
-
|
27
|
-
|
28
|
-
|
20
|
+
if /linux/.match?(RUBY_PLATFORM)
|
21
|
+
require 'solarwinds_apm/config'
|
22
|
+
SolarWindsAPM::Config.load_config_file
|
23
|
+
|
24
|
+
require 'solarwinds_apm/oboe_init_options' # setup oboe reporter options
|
25
|
+
unless SolarWindsAPM::OboeInitOptions.instance.service_key_ok?
|
26
|
+
SolarWindsAPM.logger.warn '=============================================================='
|
27
|
+
SolarWindsAPM.logger.warn 'SW_APM_SERVICE_KEY Error. SolarWinds APM disabled'
|
28
|
+
SolarWindsAPM.logger.warn 'Please check previous log messages for more details.'
|
29
|
+
SolarWindsAPM.logger.warn '=============================================================='
|
30
|
+
return
|
31
|
+
end
|
32
|
+
|
33
|
+
require_relative './libsolarwinds_apm.so' # load c-lib oboe
|
34
|
+
require_relative './oboe_metal' # initialize reporter: SolarWindsAPM.loaded = true
|
35
|
+
|
36
|
+
require 'opentelemetry/sdk/version' # load otel sdk version
|
37
|
+
require 'opentelemetry/instrumentation/all/version' # load otel instrumentation
|
38
|
+
|
39
|
+
SolarWindsAPM.logger.info '==================================================================='
|
40
|
+
SolarWindsAPM.logger.info "Ruby #{RUBY_VERSION} on platform #{RUBY_PLATFORM}."
|
41
|
+
SolarWindsAPM.logger.info "Current solarwinds_apm version: #{SolarWindsAPM::Version::STRING}."
|
42
|
+
SolarWindsAPM.logger.info "OpenTelemetry version: #{OpenTelemetry::SDK::VERSION}."
|
43
|
+
SolarWindsAPM.logger.info "OpenTelemetry instrumentation version: #{OpenTelemetry::Instrumentation::All::VERSION}."
|
44
|
+
SolarWindsAPM.logger.info '==================================================================='
|
45
|
+
|
46
|
+
SolarWindsAPM::Reporter.start # start the reporter, any issue will be logged
|
47
|
+
|
48
|
+
if SolarWindsAPM.loaded
|
49
|
+
require 'solarwinds_apm/constants'
|
50
|
+
require 'solarwinds_apm/api'
|
51
|
+
require 'solarwinds_apm/support'
|
52
|
+
require 'solarwinds_apm/opentelemetry'
|
53
|
+
require 'solarwinds_apm/patch'
|
54
|
+
require 'solarwinds_apm/otel_config'
|
55
|
+
|
56
|
+
if ENV['SW_APM_AUTO_CONFIGURE'] != 'false'
|
57
|
+
SolarWindsAPM::OTelConfig.initialize
|
58
|
+
elsif ENV['SW_APM_AUTO_CONFIGURE'] == 'false'
|
59
|
+
SolarWindsAPM.logger.warn '=============================================================='
|
60
|
+
SolarWindsAPM.logger.warn 'SW_APM_AUTO_CONFIGURE set to false.'
|
61
|
+
SolarWindsAPM.logger.warn 'You need to initialize Ruby library in application with'
|
62
|
+
SolarWindsAPM.logger.warn 'SolarWindsAPM::OTelConfig.initialize_with_config do |config|'
|
63
|
+
SolarWindsAPM.logger.warn ' # ... your configuration code'
|
64
|
+
SolarWindsAPM.logger.warn 'end'
|
65
|
+
SolarWindsAPM.logger.warn 'See: https://github.com/solarwinds/apm-ruby/blob/main/CONFIGURATION.md#in-code-configuration'
|
66
|
+
SolarWindsAPM.logger.warn "\e[1mPlease discard this message if application have already taken this action.\e[0m"
|
67
|
+
SolarWindsAPM.logger.warn '=============================================================='
|
68
|
+
end
|
69
|
+
else
|
70
|
+
SolarWindsAPM.logger.warn '=============================================================='
|
71
|
+
SolarWindsAPM.logger.warn 'SolarWindsAPM not loaded. SolarWinds APM disabled'
|
72
|
+
SolarWindsAPM.logger.warn 'Please check previous log messages.'
|
73
|
+
SolarWindsAPM.logger.warn '=============================================================='
|
74
|
+
end
|
29
75
|
else
|
30
76
|
SolarWindsAPM.logger.warn '==================================================================='
|
31
|
-
SolarWindsAPM.logger.warn "SolarWindsAPM warning: Platform #{RUBY_PLATFORM} not yet supported
|
77
|
+
SolarWindsAPM.logger.warn "SolarWindsAPM warning: Platform #{RUBY_PLATFORM} not yet supported on current solarwinds_apm #{SolarWindsAPM::Version::STRING}"
|
32
78
|
SolarWindsAPM.logger.warn 'see: https://documentation.solarwinds.com/en/success_center/observability/default.htm#cshid=config-ruby-agent'
|
33
|
-
SolarWindsAPM.logger.warn '
|
79
|
+
SolarWindsAPM.logger.warn 'SolarWinds APM disabled.'
|
34
80
|
SolarWindsAPM.logger.warn 'Contact technicalsupport@solarwinds.com if this is unexpected.'
|
35
81
|
SolarWindsAPM.logger.warn '==================================================================='
|
36
82
|
end
|
37
83
|
rescue LoadError => e
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
SolarWindsAPM.logger.error '=============================================================='
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
# Auto-start the Reporter unless we are running Unicorn on Heroku
|
48
|
-
# In that case, we start the reporters after fork
|
49
|
-
unless SolarWindsAPM.forking_webserver?
|
50
|
-
SolarWindsAPM::Reporter.start if SolarWindsAPM.loaded
|
51
|
-
end
|
52
|
-
|
53
|
-
if SolarWindsAPM.loaded
|
54
|
-
require 'solarwinds_apm/support'
|
55
|
-
require 'solarwinds_apm/opentelemetry'
|
56
|
-
require 'solarwinds_apm/otel_config'
|
57
|
-
if ENV['SW_APM_AUTO_CONFIGURE'] == 'false'
|
58
|
-
SolarWindsAPM.logger.warn "SolarWindsAPM warning: Ruby library is not initilaized.
|
59
|
-
You may need to initialize Ruby library in application like the following:
|
60
|
-
SolarWindsAPM::OTelConfig.initialize_with_config do |config|
|
61
|
-
...
|
62
|
-
end"
|
63
|
-
else
|
64
|
-
SolarWindsAPM::OTelConfig.initialize
|
65
|
-
end
|
66
|
-
|
67
|
-
else
|
68
|
-
SolarWindsAPM.logger.warn '=============================================================='
|
69
|
-
SolarWindsAPM.logger.warn 'SolarWindsAPM not loaded. Tracing disabled.'
|
70
|
-
SolarWindsAPM.logger.warn 'There may be a problem with the service key or other settings.'
|
71
|
-
SolarWindsAPM.logger.warn 'Please check previous log messages.'
|
72
|
-
SolarWindsAPM.logger.warn '=============================================================='
|
73
|
-
require 'solarwinds_apm/noop/context'
|
74
|
-
require 'solarwinds_apm/noop/metadata'
|
84
|
+
SolarWindsAPM.logger.error '=============================================================='
|
85
|
+
SolarWindsAPM.logger.error 'Error occurs while loading solarwinds_apm. SolarWinds APM disabled.'
|
86
|
+
SolarWindsAPM.logger.error "Error: #{e.message}"
|
87
|
+
SolarWindsAPM.logger.error 'See: https://documentation.solarwinds.com/en/success_center/observability/default.htm#cshid=config-ruby-agent'
|
88
|
+
SolarWindsAPM.logger.error '=============================================================='
|
75
89
|
end
|
90
|
+
|
76
91
|
rescue StandardError => e
|
77
92
|
$stderr.puts "[solarwinds_apm/error] Problem loading: #{e.inspect}"
|
78
93
|
$stderr.puts e.backtrace
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solarwinds_apm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 6.0.0
|
4
|
+
version: 6.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Maia Engeli
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date:
|
14
|
+
date: 2024-04-11 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: opentelemetry-sdk
|
@@ -102,14 +102,16 @@ files:
|
|
102
102
|
- lib/solarwinds_apm/api/opentelemetry.rb
|
103
103
|
- lib/solarwinds_apm/api/tracing.rb
|
104
104
|
- lib/solarwinds_apm/api/transaction_name.rb
|
105
|
-
- lib/solarwinds_apm/base.rb
|
106
105
|
- lib/solarwinds_apm/cert/star.appoptics.com.issuer.crt
|
107
106
|
- lib/solarwinds_apm/config.rb
|
108
107
|
- lib/solarwinds_apm/constants.rb
|
109
108
|
- lib/solarwinds_apm/logger.rb
|
109
|
+
- lib/solarwinds_apm/noop.rb
|
110
110
|
- lib/solarwinds_apm/noop/README.md
|
111
|
+
- lib/solarwinds_apm/noop/api.rb
|
111
112
|
- lib/solarwinds_apm/noop/context.rb
|
112
113
|
- lib/solarwinds_apm/noop/metadata.rb
|
114
|
+
- lib/solarwinds_apm/noop/span.rb
|
113
115
|
- lib/solarwinds_apm/oboe_init_options.rb
|
114
116
|
- lib/solarwinds_apm/opentelemetry.rb
|
115
117
|
- lib/solarwinds_apm/opentelemetry/solarwinds_exporter.rb
|
@@ -118,11 +120,15 @@ files:
|
|
118
120
|
- lib/solarwinds_apm/opentelemetry/solarwinds_response_propagator.rb
|
119
121
|
- lib/solarwinds_apm/opentelemetry/solarwinds_sampler.rb
|
120
122
|
- lib/solarwinds_apm/otel_config.rb
|
123
|
+
- lib/solarwinds_apm/patch.rb
|
124
|
+
- lib/solarwinds_apm/patch/dummy_patch.rb
|
121
125
|
- lib/solarwinds_apm/support.rb
|
122
126
|
- lib/solarwinds_apm/support/logger_formatter.rb
|
123
127
|
- lib/solarwinds_apm/support/logging_log_event.rb
|
124
128
|
- lib/solarwinds_apm/support/lumberjack_formatter.rb
|
125
129
|
- lib/solarwinds_apm/support/oboe_tracing_mode.rb
|
130
|
+
- lib/solarwinds_apm/support/service_key_checker.rb
|
131
|
+
- lib/solarwinds_apm/support/support_report.rb
|
126
132
|
- lib/solarwinds_apm/support/swomarginalia/LICENSE
|
127
133
|
- lib/solarwinds_apm/support/swomarginalia/README.md
|
128
134
|
- lib/solarwinds_apm/support/swomarginalia/comment.rb
|
@@ -134,8 +140,6 @@ files:
|
|
134
140
|
- lib/solarwinds_apm/support/txn_name_manager.rb
|
135
141
|
- lib/solarwinds_apm/support/utils.rb
|
136
142
|
- lib/solarwinds_apm/support/x_trace_options.rb
|
137
|
-
- lib/solarwinds_apm/support_report.rb
|
138
|
-
- lib/solarwinds_apm/thread_local.rb
|
139
143
|
- lib/solarwinds_apm/version.rb
|
140
144
|
homepage: https://documentation.solarwinds.com/en/success_center/observability/content/intro/landing-page.html
|
141
145
|
licenses:
|
@@ -145,6 +149,7 @@ metadata:
|
|
145
149
|
documentation_uri: https://documentation.solarwinds.com/en/success_center/observability/default.htm#cshid=config-ruby-agent
|
146
150
|
homepage_uri: https://documentation.solarwinds.com/en/success_center/observability/content/intro/landing-page.html
|
147
151
|
source_code_uri: https://github.com/solarwinds/apm-ruby
|
152
|
+
github_repo: https://github.com/solarwinds/apm-ruby.git
|
148
153
|
post_install_message:
|
149
154
|
rdoc_options: []
|
150
155
|
require_paths:
|
@@ -156,9 +161,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
156
161
|
version: 2.7.0
|
157
162
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
158
163
|
requirements:
|
159
|
-
- - "
|
164
|
+
- - ">="
|
160
165
|
- !ruby/object:Gem::Version
|
161
|
-
version:
|
166
|
+
version: '0'
|
162
167
|
requirements: []
|
163
168
|
rubygems_version: 3.3.26
|
164
169
|
signing_key:
|