Documentation forSolarWinds Observability

Components supported by the Ruby Library

This topic applies to version 6 of the Ruby Library. If you are using an earlier version, see Components supported by the Ruby Library (legacy).

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 (where xx-yy is determined by the URL you use to access SolarWinds Observability, described in Data centers and endpoint URIs) using port 443. 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.

Only Linux is supported. Note that glibc version 2.26 or higher is required 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.

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.

  1. SystemStackError with rack-mini-profiler: Removing rack-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.

  2. Frozen string violation: To address frozen string errors in opentelemetry-ruby, downgrade to opentelemetry-common version 0.19.6 or below. For more information, see Error in CompositePropagator#extract can't modify frozen String: "HTTP_traceparent".

  3. 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}
  4. No 5XX error reported from Rails controller. For more information, see Use ActiveSupport instead of patches.