Documentation forAppOptics

Ruby Agent (legacy) Release Notes

AppOptics agents are no longer receiving updates. The new SolarWinds Observability Libraries can send APM data to AppOptics and are regularly updated with new features and improvements. If your components are supported by the new libraries, consider transitioning to the SolarWinds Observability Libraries for your APM needs. Alternatively, you can also consider using SolarWinds Observability as your primary APM monitoring solution.

SolarWinds Observability Libraries are not compatible with AppOptics agents. Do not use a mix of SolarWinds Observability Libraries and AppOptics agents to instrument applications that are part of a distributed trace.

4.13.0 - August 31, 2021

Return to top

New Features

  • Code profiling

Enhancements

  • Improved checksum checking for all external resources included in the gem and downloaded during installation

4.12.2 - March 2, 2021

Return to top

  • Feature: Add http_proxy configuration for oboe grpc
  • Fix: Update PartialRenderer and CollectionRenderer instrumentation to work with Rails 6.1.x
  • Fix: Use prepend to instrument http, to fix alias chain conflict with airbrake
  • Fix: Update S3 URI, use URI.open with newer Ruby versions
  • Fix: Update init report KVs
  • License: Switch license to "Apache License 2.0"

4.12.1 - September 24, 2020

Return to top

  • Fix: AppOpticsAPM::SDK.current_trace.id to return the current xtraceId even when AppOpticsAPM::Config[:log_traceId] is set to :never

4.12.0 - June 15, 2020

Return to top

  • Feature: Add transaction name for rack-cache hits that don't involve a controller to reduce the number of paths reported as a different transactions. This is configurable.
  • Fix: Resolve instrumentation conflict with wicked_pdf gem by ensuring that appoptics_apm is instrumented first

4.11.2 - May 25, 2020

Return to top

  • Fix: better transaction naming for sidekiq

4.11.1 - February 13, 2020

Return to top

  • Fix: rebuild extension so that the gem installs with Ruby 2.7.0
  • Fix: improve auto-instrumentation for graphql so that it works for all graphql versions > 1.7.4
  • Fix: if graphql instrumentation is disabled do not auto-instrument

4.11.0 - January 14, 2020

Return to top

  • Feature: Instrumentation for GraphQL added
  • Fix: Grape instrumentation needed update for change in rack 2.1.0
  • Intern: Add testing with Ruby 2.7.0

4.10.1 - Nov 12, 2019

Return to top

  • Fix: CustomMetrics don't raise exception anymore in noop mode.

4.10.0 - Oct 4, 2019

Return to top

  • Feature: new SDK trace_method method (replaces legacy API profile_method), see docs
  • Feature: Support Azure App Service, see docs
  • Feature: Support PostGis adapter, thanks @aderyabin
  • Enhancement: Support for installation on Debian 10
  • Enhancement: Convert legacy profile_entry/profile_exit spans into entry/exit spans
  • Enhancement: Clean up Sinatra and Padrino span reporting
  • Enhancement: Adapt to changes in faraday gem version 0.16.1

4.9.0 - Sep 11, 2019

Return to top

  • Feature: Add support for triggered traces
  • Enhancement: Add configuration for ec2 metadata timeout

4.8.4 - Sep 10, 2019

Return to top

  • Enhancement: Add Rails6 instrumentation

4.8.3 - Aug 28, 2019

Return to top

  • Fix: Running the agent with Rails 6 does not raise an exception anymore (Rails 6 is not instrumented yet)

4.8.2 - May 23, 2019

Return to top

  • Fix: Make sure to preserve log message, when traceId isn't logged.
  • Fix: The c-library now respects passed in options when processes are forked.

4.8.1 - May 16, 2019

Return to top

  • Fix: Bug fixed in C library used by appoptics_apm

4.8.0 - May 14, 2019

Return to top

  • Feature: Accept new (longer) solarwinds API token in addition to the old one
  • Enhancement: Improve the way we read environment and configuration variables

4.7.0 - Apr 22, 2019

Return to top

  • Feature: Trace ID injection into log message (configurable: always, sampled, traced, never)
  • Feature: Extend SDK with methods to use for customized Trace ID log injection (see: CurrentTrace)
  • Feature: New SDK methods log_info and log_exception that allow adding events to the current span
  • Fix: Adapt to different versions of Alpine that require different ssl libraries
  • Fix: Grpc client does not override transaction name anymore

4.6.0 - Mar 27, 2019

Return to top

  • Feature: Transaction Filtering (see https://docs.appoptics.com/kb/apm_tracing/ruby/configure/)
  • Change: AppOpticsAPM::Config[:tracing_mode], options changed to :enabled and :disabled (deprecate :always and :never)
  • Fix: Adapt to changed behavior in newer versions of the curb gem (>= 0.9.8) and stay backward compatible (thanks @aderyabin for your PR)

4.5.2 - Feb 15, 2019

Return to top

  • Fix: Make sure AppOpticsAPM::API calls don't fail in noop mode

4.5.1 - Feb 5, 2019

Return to top

  • Fix: accept service_key from config file
  • Intern: Add testing with Ruby 2.6.0

4.5.0 - Dec 19, 2018

Return to top

  • Feature: Tracing for grpc-server (unary, client_streaming, server_streaming, and bidi_streaming)
  • Fix: RemoteHost is now reported in ActiveRecord spans
  • Improvement: Better pre-check of the service key

4.4.1 - Dec 11, 2018

Return to top

  • fix: sanitize sql now works correctly when there is a \' in the query
  • fix: make sure backtraces are only collected once per span

4.4.0 - Nov 14, 2018

Return to top

  • Feature: Custom metrics, two methods: increment_metric and summary_metric (see docs)
  • Feature: Disable logging by setting it to -1 in the config file or the environment variable
  • Improve: Change grpc_client span name to 'grpc-client' to be consistent with other language instrumentations

4.3.1 - Nov 5, 2018

Return to top

  • Fix: Faraday edges are now correctly connected when the adapter is instrumented
  • Update the key/values recorded for outbound calls

4.3.0 - Oct 29, 2018

Return to top

  • Feature: tracing for grpc-client (unary, client_streaming, server_streaming, and bidi_streaming)
  • Improvement: updated to extension 3.2.0 with service_name validation (removes invalid characters, spaces become hyphens)

4.2.7 - Sep 24, 2018

Return to top

  • updated to extension 3.1.4 that fixes issues with duplicate hostnames and APPOPTICS_DEBUG_LEVEL

4.2.6 - Sep 24, 2018

Return to top

  • correction to init message to send Ruby.AppOptics.Version instead of Ruby.AppOpticsAPM.Version to the collector

4.2.5 - Sep 11, 2018

Return to top

  • fix bug with backtraces when using Ruby < 2.2

4.2.4 - Sep 4, 2018

Return to top

  • allow variables set through the environment to be set through a config file (see https://docs.appoptics.com/kb/apm_tracing/ruby/configure/)
  • update to the README
  • updates to test and gem versions we test the instrumentation with
  • some refactoring for newer gem versions
  • audit + update error reporting in spans
  • remove support for the cassandra gem (eol)

4.2.3 - Jul 9, 2018

Return to top

  • The AppOpticsAPM::SDK.start_trace method now also reports metrics
  • New SDK methods: appoptics_ready? and tracing?
  • Improvement to log messages, they all start with [appoptics_apm/...] now
  • Update to README and rdoc comments
  • Refactor SDK versus API

4.2.2 - Jun 11, 2018

Return to top

  • ActiveJob w/sidekiq adapter now reports 'wrapped' class, instead of generic JobWrapper class

4.2.1 - May 31, 2018

Return to top

  • Fix: don't include password in redis :auth span
  • Fix: don't try to print rack info if there is no rack
  • Fix: Use extension 3.0.1 with fix when on EC2

4.2.0 - May 24, 2018

Return to top

Custom Transaction Name

  • adds SDK method: AppOpticsAPM::API.set_transaction_name('some_name'), which allows setting the transaction name from within controllers and other code that is part of a trace started by rack.
  • adds configuration option: AppOpticsAPM::Config['transaction_name']['prepend_domain'], if set the domain will be prepended to default and custom transaction names.

4.1.2 - May 9, 2018

Return to top

  • Fix: Don't try to connect to database when determining database type
  • Fix: In ActionControllerApi use action for action part of transaction name

4.0.9 - May 4, 2018

Return to top

patch 4.0.x gem with bug fixes:

  • Fix: Allow installing gem, when behind a proxy
  • Fix: Rescue exception, when regex can't be applied to path to filter out static resources

4.1.1 - May 3, 2018

Return to top

  • Feature: Add option to load configurations from a configuration file
  • Fix: Allow installing gem, when behind a proxy
  • Fix: Rescue exception, when regex can't be applied to path to filter out static resources

4.0.8 - Apr 13, 2018

Return to top

  • Fix memory leak caused by 3rd party library

4.1.0 - Apr 13, 2018

Return to top

  • Fix memory leak caused by 3rd party library
  • End support for Ruby 1.9.3
  • End support for memcached-client gem

4.0.7 - Mar 28, 2018

Return to top

  • Fix: Avoid double spans for ActiveRecord operations
  • Fix: Correct tracing for ActiveRecord update operation

4.0.6 - Mar 26, 2018

Return to top

  • add Heroku installation

4.0.5 - Mar 1, 2018

Return to top

  • Add alpine installation
  • Fix: Allow naming differences from older versions of restclient, excon, faraday

4.0.4 - Feb 26, 2018

Return to top

  • tested with Ruby 2.5.0
  • new extension 2.0.7 avoids segfault related to concurrency
  • Fix: Set defaults for invalid sampling rates and avoid throwing an exception

4.0.3 - Feb 9, 2018

Return to top

Fixes:

  • noop for rack middleware
  • SDK methods don't through exceptions in noop

Background Work:

  • better test coverage for noop mode
  • updated rdoc comments in appoptics_apm/api. Documentation
  • for the methods in this folder can be generated with rdoc.

4.0.2 - Jan 30, 2018

Return to top

Gem:

  • This will be published as OS agnostics gem, that goes into noop on unsupported operating systems

Fixes:

  • make sure custom headers are preserved in RestClient