# 2.1.31 * Better detection of Resque queue names * Fix passing arguments through Active Record instrumentation. (Thanks to Nick Quaranto for providing the fix) * Stricter checks to prevent agent from starting in Rails console # 2.1.30 * Add Resque support. # 2.1.29 * Add `scm_subdirectory` option. Useful for when your app code does not live in your SCM root directory. # 2.1.28 * Changes to app server load data # 2.1.27 * Don't attempt to call `current_layer.type` on nil # 2.1.26 * Bug fix [4b188d6](https://github.com/scoutapp/scout_apm_ruby/commit/4b188d698852c86b86d8768ea5b37d706ce544fe) # 2.1.25 * Automatically instrument API and Metal controllers. # 2.1.24 * Capture additional layers of application backtrace frames. (From 3 -> 8) # 2.1.23 * Extend Mongoid instrumentation to 6.x # 2.1.22 * Add DevTrace support for newest 4.2.x and 5.x versions of Rails # 2.1.21 * Fix edge case, causing DevTrace to fail * Add debug tooling, allowing custom functions to be inserted into the agent at key points. # 2.1.20 * Add a `detailed_middleware` boolean configuration option to capture per-middleware data, as opposed to the default of aggregating all middleware together. This has a small amount of additional overhead, approximately 10-15ms per request. # 2.1.19 * Log all configuration settings at start when log level is debug * Tune DelayedJob class name detection # 2.1.18 * Max layaway file threshold limit # 2.1.17 * Additional logging around file system usage # 2.1.16 * Extract the name correctly for DelayedJob workers run via ActiveJob # 2.1.15 * Limit memory usage for very long running requests. # 2.1.14 * Add TrackedRequest#ignore_request! to entirely ignore and stop capturing a certain request. Use in your code by calling: ScoutApm::RequestManager.lookup.ignore_request! # 2.1.13 * Rework Delayed Job instrumentation to not interfere with other instruments. # 2.1.12 * Revert 2.1.11's Delayed Job change - caused issues in a handful of environments # 2.1.11 * Support alternate methods of launching Delayed Job # 2.1.10 * Fix issue getting a default Application Name when it wasn't explicitly set # 2.1.9 * Send raw histograms of response time, enabling more accurate 95th %iles * Raw histograms are used in Apdex calculations * Gzip payloads * Fix Mongoid (5.0) + Mongo (2.1) support * Initial Delayed Job support * Limit max metric size of a trace to 500. # 2.1.8 * Adds Git revision detection, which is reported on app load and associated with transaction traces # 2.1.7 * Fix allocations extension compilation on Ruby 1.8.7 # 2.1.6 * Support older versions of Grape (0.10 onward) * Vendor rusage library * Fix double-exit that caused error messages when running under Passenger # 2.1.5 * Be less strict loading Rails environments that don't have a matching scout_apm.yml section. Previously we raised, now we log and continue to load with the ENV settings * Fix a memory leak in error recovery code * Fix a minor race condition in data coordination between processes. * There was a tiny sliver of a window where a lock wasn't held, and it caused an exception to be raised. # 2.1.4 * Enhance regular expression that determines if a backtrace line is "inside" the application * Avoids labeling vendor/ as part of the monitored app # 2.1.3 * Less noisy output on errors with Context * Not logging errors w/nil keys or values * Bumping log level down from WARN => INFO on errors * Fix error with complicated AR queries * Caused high log noise * Sidekiq instrumentation changes to handle a variety of edge cases # 2.1.2 * Applies `Rails.application.config.filter_parameters` settings to reported transaction trace uris * Fix incompatibility with ResqueWeb and middleware instrumentation # 2.1.1 * Fix an issue with AR instrumentation and complex queries * Fix use of configuration option `data_file` * Update unit tests # 2.1.0 * Added ignore key to configuration to entirely ignore an endpoint. No traces or metrics will be collected. Useful for health-check endpoints. * Better logging for DevTrace # 2.0.0 * Reporting object allocation & mem delta metrics and mem delta for requests and jobs. * Collecting additional fields for transactions: * hostname * seconds_since_startup (larger memory increases and other other odd behavior more common when close to startup) * Remove unused & old references to Stackprof * Fixing exception on load if no config file is provided * DevTrace BETA # 1.6.8 * Don't wait on a sleeping thread during shutdown # 1.6.7 * Mongoid bugfixes # 1.6.6 * Bugfix related to DB detection # 1.6.5 * Add Mongoid 5.x support * Fix autodetection of mysql databases # 1.6.4 * Add Grape instrumentation * Handle DATABASE_URL configurations better * Change default (undeteced) database to Postgres (was Mysql) # 1.6.3 * Handle nil ignore_traces when ignoring trace patterns # 1.6.2 * Use a more flexible approach to storing "Layaway Files" (the temporary data files the agent uses). # 1.6.1 * Remove old & unused references to Stackprof. Prevent interaction with intentional usage of Stackprof # 1.6.0 * Dynamic algorithm for selecting when to collect traces. Now, we will collect a more complete cross-section of your application's performance, dynamically tuned as your application runs. * Record and report 95th percentiles for each action * A variety of bug fixes # 1.5.5 * Handle backslash escaped quotes inside mysql strings. # 1.5.4 * Fix issue where error counts were being misreported * Politely ignore cases when `request.remote_ip` raises exceptions. # 1.5.3 * Fix another minor bug related to iso8601 timestamps # 1.5.2 * Force timestamps to be iso8601 format # 1.5.1 * Add `ignore_traces` config option to ignore SlowTransactions from certain URIs. # 1.5.0 * Background Job instrumentation for Sidekiq and Sidekiq-backed ActiveJob * Collecting backtraces on n+1 calls # 1.4.6 * Defend against a nil # 1.4.5 * Instrument Elasticsearch * Instrument InfluxDB # 1.4.4 * Instrument Mongoid * Instrument Redis # 1.4.3 * Add a to_s call to have HTTPClient work with URI objects. Thanks to Nicolai for providing the change! # 1.4.2 * Add HTTPClient instrumentation # 1.4.1 * Fix JSON encoding of special characters # 1.4.0 * Release JSON reporting # 1.3.4 * Fix backtracking issue with on of the SQL sanitization regexes # 1.3.3 * Handling nil scope in LayerSlowTransactionConverter # 1.3.0 * Lazy metric naming for ActiveRecord calls # 1.2.13 * SQL Sanitation-Related performance improvements: * Lazy sanitation of SQL queries: only running when needed (a slow transaction is recorded) * An SQL sanitation performance improvement (strip! vs. gsub!) * Removing the TRAILING_SPACES regex - not used across all db engines and adds a bit more overhead # 1.2.12 * Add uri_reporting option to report bare path (as opposed to fullpath). Default is 'fullpath'; set to 'path' to avoid exposing URL parameters. # 1.2.11 * Summarizing middleware instrumentation into a single metric for lower overhead. * If monitoring isn't enabled: * In ScoutApm::Middleware, don't start the agent * Don't start background worker # 1.2.10 * Improve exit handler. It wasn't being run during shutdown in some cases. # 1.2.9 * Uses ActiveRecord::Base.configurations to access database adapter across all versions of Rails 3.0+. # 1.2.8 * Enhance shutdown code to be sure we save current-minute metrics and minimize the amount of work necessary. # 1.2.7 * Clarifying that Rails3 instrumentation also supports Rails4 # 1.2.6 * Fix a bug when determining the name of metrics for ActiveRecord queries # 1.2.5 * Instrument ActionController::Base instead of ::Metal. This allows us to track time spent in before and after filters, and requests that return early from before filters. * Avoid parsing backtraces for requests that don't end up as Slow Transactions # 1.2.4.1 * Reverting backtrace parser threshold back to 0.5 (same as < v1.2 agents) # 1.2.4 * Removing layaway file validation in main thread * Fixing :force so agent will start in tests * Rate-limiting slow transactions to 10 per-reporting period # 1.2.3 * Trimming metrics from slow requests if there are more than 10. # 1.2.2 * Collapse middleware recordings to minimize payload size * Limit slow transactions recorded in full detail each minute to prevent overloading payload. # 1.2.1 * Fix a small issue where the middleware that attempts to start the agent could mistakenly detect that the agent was running when in fact it wasn't. # 1.2.0 * Middleware tracing - Track time in the Rack middleware that Rails sets up * Queue Time tracking - Track how much time is spent in the load balancer * Solidify support for threaded app servers (such as Puma or Thin) * Major refactor of internals to allow more flexibility for future features * Several bug fixes # 1.0.0 * General Availability * More robust Application Server detection # 0.9.7 * Added Cloud Foundry detection * Added hostname config option * Reporting PaaS in app server load (Heroku or Cloud Foundry). * Fallback to a middleware to launch the agent if we can't detect the application server for any reason * Added agent version to checkin data # 0.9.6 * Fix more 1.8.7 syntax errors # 0.9.5 * Fix 1.8.7 syntax error # 0.9.4 * Detect database connection correctly on Rails 3.0.x * Detect and warn if the old ScoutRails plugin is installed, since it causes an conflict. # 0.9.3 * Parse SQL correctly when using PostGIS * Quiet overly aggressive logging during startup. You can still turn up logging by setting the SCOUT_LOG_LEVEL environment variable to 'DEBUG' * Various minor bug fixes and clarification of log messages # 0.9.2 * Internal changes and bug fixes. # 0.9.1.1 * Minor change in Stackprof processing code. Any exception that happens there should never propagate out to the application # 0.9.1 Big set of features getting merged in for this release. * StackProf support! Get visibility into your Ruby code. On Ruby 2.1+, just add `gem 'stackprof'` to your Gemfile. * Deploy tracking! Compare your application's response time, throughput and error rate between different releases. At the bottom of your Capistrano deploy.rb file, add `require 'scout_apm'` and we do the rest. * Log message overhaul. Removed a lot of the noise, clarified messages. # 0.9.0 * Come out of alpha, and release a beta version. # 0.1.16 * Initial support for Sinatra monitoring. # 0.1.15 * Add new `application_root` option to override the autodetected location of the application. # 0.1.14 * Add new `data_file` option to configuration, to control the location of the temporary data file. Still defaults to log/scout_apm.db. The file location must be readable and writeable by the owner of the Ruby process # 0.1.13 * Fix support for ActiveRecord and ActionController instruments on Rails 2.3 # 0.1.12 * Fix Puma integration. Now detects both branches of preload_app! setting. * Enhance Cpu instrumentation # 0.1.11 * Post on-load application details in a background thread to prevent potential pauses during app boot # 0.1.10 * Prevent instrumentation in non-web contexts. Prevents agent running in rails console, sidekiq, and similar contexts. * Send active Gems with App Load message # 0.1.9 * Added environment (production, development, etc) to App Load message * Bugfix in Reporter class # 0.1.8 * Ping APM on Application Load * Fix compatibility with Ruby 1.8 and 1.9 # 0.1.7 * Ability to ignore child calls in instrumentation. # 0.1.6 * Fix issues with Ruby 1.8.7 regexes # 0.1.5 * SQL sanitization now collapses IN (?,?,?) to a single (?) # 0.1.4 * Tweaks to Postgres query parsing * Fix for missing scout_apm.yml file causing rake commands to fail because of a missing log file. # 0.1.3.1 * Adds Puma support * Fix for returning true for unicorn? and rainbows? when they are included in the Gemfile but not actually serving the app. # 0.1.3 * Adds capacity calculation via "Instance/Capacity" metric. * Tweaks tracing to still count a transaction if it results in a 500 error and includes it in accumulated time. * Adds per-transaction error tracking (ex: Errors/Controller/widgets/index) # 0.1.2 * Adds Heroku support: * Detects Heroku via the 'DYNO' environment variable * Defaults logger to STDOUT * uses the dyno name vs. the hostname as the hostname * Environment vars with "SCOUT_" prefix override any settings specified in the config file. # 0.1.1 * Store the start time of slow requests. # 0.1.0 * Boom.