Components supported by the Ruby Library
This topic applies to version 6+ of the Ruby Library. SolarWinds no longer maintains versions prior to version 6. See SolarWinds Observability | Upgrade the Ruby Library to find out how to upgrade.
Verify the following to ensure the library can collect and transmit data:
-
The platform where your APM library will be installed is supported.
-
Your firewall configuration permits TCP/HTTPS/TLS outbound connections to
otel.collector.xx-yy.cloud.solarwinds.com
(orapm.collector.xx-yy.cloud.solarwinds.com
when using legacy mode) port443
, wherexx-yy
is determined by the URL you use to access SolarWinds Observability SaaS, described in Data centers and endpoint URIs. See Firewall or access control requirements.If your firewall or access control requirements do not allow such connections, configure the library to send data through a proxy.
We support MRI Ruby versions that are in maintenance status, which excludes EOL and preview versions. See Ruby Maintenance Branches for details.
Starting with version 7.0.0, the Library is pure-Ruby and thus can be installed on most systems. Versions 6.1.2 and earlier only support Linux and require glibc version 2.26 or later on GNU C Library-based systems such as Amazon Linux 2, CentOS, Debian, and Ubuntu.
The Ruby Library uses opentelemetry-instrumentation-all to automatically instrument a broad set of components detected for the application. See the Ruby OTel Instrumentation Readme for information about the supported instrumentations.
Stacktrace collection
The library automatically collects stacktraces for errors, subject to upstream instrumentation conformance to the semantic convention.
Known issues for Ruby 2.7
Ruby 2.7 is EOL. While SolarWinds Observability Ruby Library 6.0.0 can still be installed on an application running in Ruby 2.7, the following missing features can be addressed only by upgrading to a current Ruby runtime.
-
SystemStackError with
rack-mini-profiler
: Removingrack-mini-profiler
is the current solution for SystemStackError issues in Ruby 2.7 when OpenTelemetry is used. For more information, see PG Instrumentation SystemStackError on Rails 5.2.5 Ruby 2.6.3. -
Frozen string violation: To address frozen string errors in
opentelemetry-ruby
, downgrade toopentelemetry-common
version 0.19.6 or below. For more information, see Error in CompositePropagator#extract can't modify frozen String: "HTTP_traceparent". -
Custom SQL sanitization: For users who need to sanitize SQL queries, manual in-code configuration is recommended, specifying sanitization options for each database instrumentation. For more information, see In-code Configuration.
# in terminal export SW_APM_AUTO_CONFIGURE=false require 'solarwinds_apm' SolarWindsAPM::OTelConfig.initialize_with_config do |config| config["OpenTelemetry::Instrumentation::Dalli"] = {db_statement: :obfuscate} config["OpenTelemetry::Instrumentation::Mysql2"] = {db_statement: :obfuscate} config["OpenTelemetry::Instrumentation::PG"] = {db_statement: :obfuscate} end
-
No 5XX error reported from Rails controller. For more information, see Use ActiveSupport instead of patches.