Ruby Agent (legacy) Release Notes
AppOptics agents are no longer receiving updates. The new SolarWinds Observability libraries are regularly updated with new features and improvements. If you are still relying on the AppOptics agents and your components are supported by the new libraries, consider migrating to SolarWinds Observability.
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
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
- 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
- Fix:
AppOpticsAPM::SDK.current_trace.id
to return the currentxtraceId
even whenAppOpticsAPM::Config[:log_traceId]
is set to:never
4.12.0 - June 15, 2020
- 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.1 - February 13, 2020
- 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
- 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.0 - Oct 4, 2019
- 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
- Feature: Add support for triggered traces
- Enhancement: Add configuration for ec2 metadata timeout
4.8.3 - Aug 28, 2019
- 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
- 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.0 - May 14, 2019
- 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
- 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
- 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.0 - Dec 19, 2018
- 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
- 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
- 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
- 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
- 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
- updated to extension 3.1.4 that fixes issues with duplicate hostnames and APPOPTICS_DEBUG_LEVEL
4.2.6 - Sep 24, 2018
- correction to init message to send Ruby.AppOptics.Version instead of Ruby.AppOpticsAPM.Version to the collector
4.2.4 - Sep 4, 2018
- 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
- 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
- ActiveJob w/sidekiq adapter now reports 'wrapped' class, instead of generic JobWrapper class
4.2.1 - May 31, 2018
- 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
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
- 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
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
- 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.1.0 - Apr 13, 2018
- 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
- Fix: Avoid double spans for ActiveRecord operations
- Fix: Correct tracing for ActiveRecord update operation
4.0.5 - Mar 1, 2018
- Add alpine installation
- Fix: Allow naming differences from older versions of restclient, excon, faraday
4.0.4 - Feb 26, 2018
- 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
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.