# Changelog # 2.11.8 - Mark minutely probe thread as fork-safe by @pixeltrix. PR #704 # 2.11.7 - Fix ActionCable integration in test environment using `stub_connection`. PR #705 # 2.11.6 - Prepend Sidekiq middleware to wrap all Sidekiq middleware. Catches more errors and provide more complete performance measurements. PR #698 # 2.11.5 - Add more detailed logging to finish_event calls when the event is unknown, so we know what event is being tried to finish. Commit c888a04d1b9ac947652b29c111c650fb5a5cf71c # 2.11.4 - Support Ruby 3.0 for Object method instrumentation with keyword arguments (https://docs.appsignal.com/ruby/instrumentation/method-instrumentation.html) PR #693 # 2.11.3 - Support Shoryuken batch workers. PR #687 # 2.11.2 - Support Ruby 3.0. PR #681 - Support breadcrumbs. PR #666 - Log Ruby errors on extension download. PR #679 - Fix Ruby 1.9 build. PR #680 # 2.11.1 - Support AS notifications instrumenters that use `start` and `finish`. - Updated agent with better logging and an IO stats fix. - ActionMailer magic dashboard # 2.11.0 - Track queue time regardless of namespace. Support custom namespaces. PR #602 - Improve deprecation message from frontend error middleware. PR #620 - Report Ruby environment metadata. PR #621, #627, #619, #618 - Refactor: Move minutely probes to their own files and modules. PR #623 - Allow custom action names in Que integration. Needed for Active Job integration. PR #628 - Add Active Job support. Support Active Job without separate AppSignal integration of the background job library. Add support for previously unsupported Active Job adapters. Adapters that were previously already supported (Sidekiq, DelayedJob and Resque) still work in this new setup. PR #629 - Add automatic Resque integration. Remove manual Resque and Resque Active Job integrations. PR #630 - Fix issue with unknown events from being reported as often for long running agents. Commit ba9afb538f44c68b8035a8cf40a39d89bc77b021 - Add support for Active Job priority. PR #632 - Track Active Job job metrics for magic dashboard. PR #633 - Report Sidekiq `jid` (job id) as transaction id, reported as "request_id" on AppSignal.com. PR #640 - Always report Active Job ID, an internal ID used by Active Job. PR #639 - Support Delayed::Job jobs without specific method name, using `Delayed::Job.enqueue`. PR #642 - Print warnings using Kernel.warn. PR #648 - Update AuthCheck class to use DeprecationMessage helper. PR #649 - Print extension load error when AppSignal is loaded. PR #651 # 2.10.12 - Fix `working_directory_path` config option loaded from environment variables. PR #653 # 2.10.11 - Fix extension install report status output in `appsignal diagnose`. PR #636 - Support setting a specific configuration file to load with the `Appsignal::Config` initializer. PR #638 # 2.10.10 - Bump agent to v-4548c88. PR #634 - Fix issue with host metrics values being reported as "Infinity". # 2.10.9 - Use http proxy if configured when downloading agent. PR #606 - Clear event details cache every 48 hours. Commit eb5e899db69fcd7cfa221567bfd6ac04f2654c9c - Add support for Resque ActiveJob queue time reporting. PR #616 ## 2.10.8 - Fix failed checksum error log. PR #609 - Fix DelayedJob action name detection for objects that listen to the `[]` method and return a non-String value. #611 - CI test build improvements. PR #607, #608, #614 ## 2.10.7 - Revert fix for compatibility with the `http_logger` gem. PR #604. For more information, see issue #603 about our reasoning and discussion. ## 2.10.6 - Check if queued payloads are for correct app and not expired ## 2.10.5 - Improve Ruby 1.9 compatibility. PR #591 - Add grape.skip_appsignal_error request env. PR #588 More information: https://docs.appsignal.com/ruby/integrations/grape.html - Fix compatibility with the `http_logger` gem. Fix `SystemStackError`. PR #597 ## 2.10.4 - Fix `Appsignal::Transaction#set_http_or_background_action` helper (used by `Appsignal.monitor_transaction`), to allow overwriting the action name of a `Transaction` with `Appsignal.set_action`. PR #594 - Move build to Semaphore. PR #587, #590 and #592 ## 2.10.3 - Only warn about reused transactions once. Repeated occurrences are logged as debug messages. PR #585 ## 2.10.2 - Fix wait_for test suite helper. PR #581 - Fix exception handling of config file issues. PR #582 - The improvement introduced in #517 didn't fetch the class name correctly causing an error on most scenarios. ## 2.10.1 - Update to more recent bundled SSL CA certificates. PR #577 - Remove TLS version lock from transmitter used by diagnose command, preventing it from sending the report. Was locked to TLS v1, now uses the Ruby default. PR #580 ## 2.10.0 - Rescue errors while parsing `appsignal.yml` file. It will prints a warning instead. PR #517 - Refactoring: Reduce class variable usage. PR #520 - Bump log level about starting new transactions while a transaction is already active from debug to a warning. PR #525 - Refactoring: Add internal AppSignal test helpers and other test suite refactorings. PR #536, #537, #538, #539 - Fix internal Rakefile loading on Ruby 1.9.3. PR #541 - Add a `--no-color` option to the `appsignal install` command. PR #550 - Add output coloring to `appsignal diagnose` warnings. PR #551 - Add validation for empty Push API key. Empty Push API key values will no longer start AppSignal. PR #569 - Deprecate the JSExceptionCatcher middleware in favor of our new front-end JavaScript integration (https://docs.appsignal.com/front-end/). PR #572 ## 2.9.18 - Bump agent to v-c348132 - Improve transmitter logging on timeout - Improve queued payloads transmitter. Should prevent payloads being sent multiple times. - Add transaction debug mode - Wrap Option in Mutex in TransactionInProgess ## 2.9.17 - Handle missing file and load errors from `application.rb` in `appsignal install` for Rails apps. PR #568 - Support minutely probes for Puma in clustered mode. PR #570 See the installation instructions for the Puma plugin: https://docs.appsignal.com/ruby/integrations/puma.html ## 2.9.16 - Check set_error arguments for Exceptions. PR #565 - Bump agent to v-1d8917f - commit 737d6b1b8fc9cd2c0564050bb04246d9267dceb7 - Only attempt to send queued payloads if we have a successful transmission. ## 2.9.15 - Bump agent to v-690f4b8 - commit cf4f3787395c8524079f3bed3b2c2367296482a9 - Validate transmission_interval option. ## 2.9.14 - Support mirrors when downloading the agent & extension. PR #558 - Support Que's upcoming 1.0.0 release. PR #557 ## 2.9.13 - Bump agent to v-e1c9363 - Detect revision from Heroku dynos automatically when Dyno Metadata is turned on. ## 2.9.12 - Bump agent to v-a3e0f83 - commit 3d94dd42645922214fc2f5bc09cfa7c597323198 - Better detect zombie/defunct processes on containers and consider the processes dead. This should improve the appsignal-agent start behavior. - Fix Sequel install hook version detection mismatch. PR #553 - Improve support for older Sidekiq versions. PR #555 ## 2.9.11 - Bump agent to v-a718022 - Fix container CPU runtime metrics. See https://github.com/appsignal/probes-rs/pull/38 for more information. - Improve host metrics calculations accuracy for counter metrics. See https://github.com/appsignal/probes-rs/pull/40 for more information. - Support Kernel 4.18+ format of /proc/diskstats file parsing. See https://github.com/appsignal/probes-rs/pull/39 for more information. ## 2.9.10 - Fix Puma minutely probe start where `daemonize` is set to `true`. PR #548 ## 2.9.9 - Fix error in the ActiveSupport::Notifications integration when a transaction gets completed during event instrumentation. PR #532 - Fix Redis constant load error. PR #543 - Add more logging for errors in debug mode. PR #544 - Deprecate notify_of_deploy command. PR #545 - Always call the block given to `Appsignal.monitor_transaction` and log errors from the helper even when AppSignal is not active. PR #547 ## 2.9.8 - Fix Ruby 1.9 compatibility in extension installation. PR #531 ## 2.9.7 - Fix minutely probes not being loaded from Rails initializers. PR #528 ## 2.9.6 - Print link to diagnose docs on unsuccessful demo command. PR #512 - Add support for minutely probe `.dependencies_present?` check. PR #523 - Do not activate Sidekiq minutely probe on unsupported Redis gem versions. PR #523. ## 2.9.5 - Improve logging in minutely probes. PR #508 - Delay the first minutely probe for a bit, since it might take some time for dependencies to initialize. PR #511 ## 2.9.4 - Log error backtraces in minutely probes as debug messages. PR #495 - Don't add cluster behavior in Puma single mode. PR #504 - Only register ActionView event formatter in Rails. PR #503 - Convert Sidekiq latency from seconds to ms. PR #505 ## 2.9.3 - Remove GCProbe. PR #501 ## 2.9.2 - Fix Puma.stats calls. PR #496 - Only send Puma metrics if available. PR #497 - Track memory metrics of the current process. PR #499 ## 2.9.1 - Fix memory leak in custom metrics key names. Commit 9064e2ccfd19ee05c333d0ecda4deafdd743629e ## 2.9.0 - Fix installations using git source. PR #455 - Track installation results in installation report. PR #450 - Fix Rails 6 deprecation warnings. PR #460, PR #478, PR #483 - Improve error handling in minutely probes mechanism. PR #467 - Only allow one minutely probe thread to run at a time. PR #469 - Change minutely probes register method to use a key for every probe. PR #473 - Send Sidekiq metrics by default. PR #471 - Send MongoDB metrics by default. PR #472 - Fix Ruby 2.6 deprecation warnings. PR #479 - Support blocks for `Appsignal.send_error` to add more metadata to the AppSignal transaction. PR #481 - Move instrumentation & metrics helpers to modules. PR #487 - Add Puma minutely probe. PR #488 - Log invalid EventFormatter registrations as errors. PR #491 - Support container CPU host metrics. Commit f2fca1ec5a850cd84fbc8cefe63af8f039ebb155 - Support StatsD server in agent. Commit f2fca1ec5a850cd84fbc8cefe63af8f039ebb155 - Fix samples being reported for multiple namespaces. Commit f2fca1ec5a850cd84fbc8cefe63af8f039ebb155 - Report memory and swap usage in percent using the memory_usage and swap_usage metrics. Commit f2fca1ec5a850cd84fbc8cefe63af8f039ebb155 ## 2.8.4 - Log memory usage of agent if high. Commit 46cf3770e13eff9f5fccbf8a4525a8dbfd8eeaad - Fix `Appsignal::Transaction.pause!`. PR #482 ## 2.8.3 - Fix multi user permission issue for agent directories and files. Commit ab1b35f850777d5999b41627d75be0b3904bc0a1 ## 2.8.2 - Remove Bundler requirement from diagnose command. PR #451 - Fix Delayed::Job action name reporting for structs. PR #463 ## 2.8.1 - Fix installation on Ruby 2.6 for libc and musl library builds. PR #453 ## 2.8.0 - Group extension and agent tests in diagnose output. PR #437 - Add diagnose --[no-]send-report option. PR #438 - Print deprecation warnings to STDOUT as well. PR #439 - Diagnose command starts the AppSignal logger. PR #440 - Send appsignal.log file contents with diagnose report. PR #442 - Track source of config option for diagnose report. PR #444 - Link back to AppSignal diagnose report page. Claim you reports. PR #445 - Print only last 10 lines of files in diagnose report output. PR #442 & #447 - Support container memory host metrics better. PR #448 - Build dynamic musl extension library. Supports JRuby for musl builds. PR #448 - Change `files_world_accessible` permissions to not make files executable. PR #448 - Make agent debug logging for disk IO metrics more robust. PR #448 ## 2.7.3 Beta - Add user and group context to diagnose report. PR #436 - Add user and group context to agent logs. PR #436 - Fixes for running with multiple users ## 2.7.2 - Change the order of instructions in the install script for Rails. PR #433 - Fix linking issues on multi-stage build setups. PR #434 ## 2.7.1 - Improve error log on unsupported architecture and build combination on install. PR #426 - Improve performance when garbage collection profiling is disabled. PR #429 ## 2.7.0 - Detect Kubernetes containers as containers for `running_in_container` config option. Commit 60822aac24ccc394df073091c64f05096455942d. - Fix in memory logger initialization. PR #416 - Organize classes in their own files. PR #417 - Move tag value limit handling to extension. PR #418 - Add working_directory_path config option. PR #421 - Use doubles values in custom metrics functions. PR #422 - Bump agent to e41c3c0. Commit 8056af037f82eda156c5946911012e5c742b5664 ## 2.6.1 - Remove request_headers warning and use sane default. PR #410 - Fix metrics format for internal agent metrics. PR #411 ## 2.6.0 - Enable frozen strings by default. PR #384 - Add `revision` config option. PR #388 - Avoid generating unique action names for Padrino. PR #393 - Add `request_headers` filter configuration. PR #395 - Support tags for custom metrics. PR #398 - Add filter_session_data config option. PR #402 & #409 - Move default hostname behavior to extension. PR #404 - Add `request_headers` config to installation step. PR #406 - Rename ParamsSanitizer to HashSanitizer. PR #408 - Fix empty action name issue. Commit b292c2c93c8935ab54fc4d16598fa534c9cc9c90 ## 2.5.3 - Fix Sidekiq action names containing arguments. PR #401 ## 2.5.2 - Support Sidekiq delay extension for ActiveRecord instances. If using this feature in your app, an update is strongly recommended! PR #387 - Improve custom event formatter registration. An event formatter can now be registered in a Rails initializer after AppSignal has been loaded/started. PR #397 ## 2.5.1 - Improve internal sample storage in agent. Commit 2c8eae26685c7a1517cf2e57b44edd1557a502f2 - No longer set _APPSIGNAL_AGENT_VERSION environment variable. PR #385 ## 2.5.0 - Fix Capistrano config overrides. PR #375 - Add JRuby beta support. PR #376 - Fix locking issue on diagnose mode run. Commit e6c6de811f8115a73050fc865e89dd4945ddec57 - Increase stored length of error messages. Commit e6c6de811f8115a73050fc865e89dd4945ddec57 ## 2.4.3 - Store more details for Redis events. PR #374 ## 2.4.2 - Store agent architecture rather than platform. PR #367 - Improve documentation for `Appsignal.monitor_transaction` better. Commit e53987ba36a79fc8883f2e59322946297ddee773 - Change log level from info to debug for value comparing failures. Commit ecef28b28edaff46b95f53a916c93021dc763160 - Collect free memory host metric. Commit ecef28b28edaff46b95f53a916c93021dc763160 - Fix crashes when Set wasn't required before AppSignal, such as in the CLI. PR #373 ## 2.4.1 - Add Que integration. PR #361 - Support Sidekiq delayed extension job action names better. Now action names are reported as their class and class method name (`MyClass.method`), rather than `Sidekiq::Extensions::DelayedClass#perform` for all jobs through that extension. PR #362 - Support Sidekiq Enterprise encrypted values. PR #365 - Use musl build for older libc systems. PR #366 ## 2.4.0 - Add separate GNU linux build. PR #351 and Commit d1763f4dcb685608468a73f3192226f60f66b217 - Add separate FreeBSD build Commit d1763f4dcb685608468a73f3192226f60f66b217 - Fix crashes when using a transaction from multiple processes in an unsupported way. Commit d1763f4dcb685608468a73f3192226f60f66b217 - Auto restart agent when none is running Commit d1763f4dcb685608468a73f3192226f60f66b217 - Add `appsignal_user` Capistrano config option. PR #355 - Track Exception-level exceptions. PR #356 - Add tags and namespace arguments to `Appsignal.listen_for_error`. PR #357 - Revert Sidekiq delayed extension job action names fix. Commit 9b84a098604de5ef5e52645ba7fcb09d84f66eaa ## 2.3.7 - Support Sidekiq delayed extension job action names better. Now action names are reported as their class and class method name (`MyClass.method`), rather than `Sidekiq::Extensions::DelayedClass#perform` for all jobs through that extension. PR #348 ## 2.3.6 - Allow configuration of permissions of working directory. PR #336 - Fix locking bug that delayed extension shutdown. Commit 51d90bb1207affc2c88f7cff5035a2c36acf9784 - Log extension start with app revision if present Commit 51d90bb1207affc2c88f7cff5035a2c36acf9784 ## 2.3.5 Yanked ## 2.3.4 - Fix naming for ActiveJob integration with DelayedJob. PR #345 ## 2.3.3 - Accept mixed case env variable values for the `true` value. PR #333 - Don't record sensitive HTTP_X_AUTH_TOKEN header. PR #334 - Support dry run option for Capistrano 3.5.0 and higher. PR #339 - Agent and extension update. Improve agent connection handling. Commit e75d2f9b520d46f6cd0266b484b2c26c3bdc8882 ## 2.3.2 - Improve Rake argument handling. Allow for more detailed view of which arguments a tasks receives. PR #328 ## 2.3.1 - Fix ActiveSupport::Notifications hook not supporting non-string names for events. PR #324 ## 2.3.0 - Fix Shoryuken instrumentation when body is a string. PR #266 - Enable ActiveSupport instrumentation at all times. PR #274 - Add parameter filtering for background jobs. Automatically uses the AppSignal parameter filtering. PR #280 - Improve log messages for transactions. PR #293 - Remove thread_safe dependency. PR #294 - Add `Transaction#params` attribute for custom parameters. PR #295 - Fix queue time on DelayedJob integration. PR #297 - Add ActionCable support. PR #309 - Finish ActiveSupport notifications events when they would encounter a `raise` or a `throw`. PR #310 - Add `ignore_namespaces` option. PR #312 - Truncate lengthy parameter values to 2000 characters. Commit 65de1382f5f453b624781cde6e0544c89fdf89ef and d3ca2a545fb22949f3369692dd57d49b4936c739. - Disable gracefully on Microsoft Windows. PR #313 - Add tags and namespace arguments to `Appsignal.set_error`. PR #317 ## 2.2.1 - Fix support for Rails 5.1. PR #286 - Fix instrumentation that would report a duration of `0ms` for all DataMapper queries. PR #290 - Finish events when `Appsignal.instrument` encounters a `raise` or a `throw`. PR #292 ## 2.2.0 - Support Ruby 2.4 better. PR #234 - Initial setup for documenting the Ruby gem's code. PR #243 - Move `running_in_container` auto detection to extension for easy reuse. PR #249 - Allow overriding of action and namespace for a transaction. PR #254 - Prefix all agent configuration environment variables with an underscore to separate the two usages. PR #258 - Force agent to run in diagnostic mode even when the user config is set to `active: false`. PR #260 - Stub JS error catching endpoint when not active. PR #263 - Use better event names for Padrino integration. PR #265 - No longer gzip payloads send by the Ruby gem transmitter. PR #269 - Send diagnostics data report to AppSignal on request. PR #270 - When JS exception endpoint payload is empty return 400 code. PR #271 - Remove hardcoded DNS servers from agent and add config option. PR #278 ## 2.1.2 - Fix error with Grape request methods defined with symbols. PR #259 ## 2.1.1 - Fix DNS issue related to the musl build. Commit 732c877de8faceabe8a977bf80a82a6a89065c4d and 84e521d20d4438f7b1dda82d5e9f1f533ae27c4b - Update benchmark and add load test. PR #248 - Fix configuring instrument Redis and Sequel from env. PR #257 ## 2.1.0 - Add support for musl based libc (Alpine Linux). PR #229 - Implement `Appsignal.is_ignored_error?` and `Appsignal.is_ignored_action?` logic in the AppSignal extension. PR #224 - Deprecate `Appsignal.is_ignored_error?`. PR #224 - Deprecate `Appsignal.is_ignored_action?`. PR #224 - Enforce a coding styleguide with RuboCop. PR #226 - Remove unused `Appsignal.agent` attribute. PR #244 - Deprecate unused `Appsignal::AuthCheck` logger argument. PR #245 ## 2.0.6 - Fix `Appsignal::Transaction#record_event` method call. PR #240 ## 2.0.5 - Improved logging for agent connection issues. Commit cdf9d3286d704e22473eb901c839cab4fab45a6f - Handle nil request/environments in transactions. PR #231 ## 2.0.4 - Use consistent log format for both file and STDOUT logs. PR #203 - Fix log path in `appsignal diagnose` for Rails applications. PR #218, #222 - Change default log path to `./log` rather than project root for all non-Rails applications. PR #222 - Load the `APPSIGNAL_APP_ENV` environment configuration option consistently for all integrations. PR #204 - Support the `--environment` option on the `appsignal diagnose` command. PR #214 - Use the real system `/tmp` directory, not a symlink. PR #219 - Run the AppSignal agent in diagnose mode in the `appsignal diagnose` command. PR #221 - Test for directory and file ownership and permissions in the `appsignal diagnose` command. PR #216 - Test if current user is `root` in the `appsignal diagnose` command. PR #215 - Output last couple of lines from `appsignal.log` on agent connection failures. - Agent will no longer fail to start if no writable log path is found. Commit 8920865f6158229a46ed4bd1cc98d99a849884c0, change in agent. - Internal refactoring of the test suite and the `appsignal install` command. PR #200, #205 ## 2.0.3 - Fix JavaScript exception catcher throwing an error on finishing a transaction. PR #210 ## 2.0.2 - Fix Sequel instrumentation overriding existing logic from extensions. PR #209 ## 2.0.1 - Fix configuration load order regression for the `APPSIGNAL_PUSH_API_KEY` environment variable's activation behavior. PR #208 ## 2.0.0 - Add `Appsignal.instrument_sql` convenience methods. PR #136 - Use `Appsignal.instrument` internally instead of ActiveSupport instrumentation. PR #142 - Override ActiveSupport instrument instead of subscribing. PR #150 - Remove required dependency on ActiveSupport. Recommended you use `Appsignal.instrument` if you don't need `ActiveSupport`. PR #150 #142 - Use have_library to link the AppSignal extension `libappsignal`. PR #148 - Rename `appsignal_extension.h` to `appsignal.h`. Commit 9ed7c8d83f622d5a79c5c21d352b3360fd7e8113 - Refactor rescuing of Exception. PR #173 - Use GC::Profiler to track garbage collection time. PR #134 - Detect if AppSignal is running in a container or Heroku. PR #177 #178 - Change configuration load order to load environment settings after `appsignal.yml`. PR #178 - Speed up payload generation by letting the extension handle it. PR #175 - Improve `appsignal diagnose` formatting and output more data. PR #187 - Remove outdated `appsignal:diagnose` rake tasks. Use `appsignal diagnose` instead. PR #193 - Fix JavaScript exception without names resulting in errors themselves. PR #188 - Support namespaces in Grape routes. PR #189 - Change STDOUT output to always mention "AppSignal", not "Appsignal". PR #192 - `appsignal notify_of_deploy` refactor. `--name` will override any other `name` config. `--environment` is only required if it's not set in the environment. PR #194 - Allow logging to STDOUT. Available for the Ruby gem and C extension. The `appsignal-agent` process will continue log to file. PR #190 - Remove deprecated methods. PR #191 - Send "ruby" implementation name with version number for better identifying different language implementations. PR #198 - Send demonstration samples to AppSignal using the `appsignal install` command instead of asking the user to start their app. PR #196 - Add `appsignal demo` command to test the AppSignal demonstration samples instrumentation manually and not just during the installation. PR #199 ## 1.3.6 - Support blocks arguments on method instrumentation. PR #163 - Support `APPSIGNAL_APP_ENV` for Sinatra. PR #164 - Remove Sinatra install step from "appsignal install". PR #165 - Install Capistrano integration in `Capfile` instead of `deploy.rb`. #166 - More robust handing of non-writable log files. PR #160 #158 - Cleaner internal exception handling. PR #169 #170 #171 #172 #173 - Support for mixed case keywords in sql lexing. appsignal/sql_lexer#8 - Support for inserting multiple rows in sql lexing. appsignal/sql_lexer#9 - Add session_overview to JS transaction data. Commit af2d365bc124c01d7e9363e8d825404027835765 ## 1.3.5 - Fix SSL certificate config in appsignal-agent. PR #151 - Remove mounted_at Sinatra middleware option. Now detected by default. PR #146 - Sinatra applications with middleware loading before AppSignal's middleware would crash a request. Fixed in PR #156 ## 1.3.4 - Fix argument order for `record_event` in the AppSignal extension ## 1.3.3 - Output AppSignal environment on `appsignal diagnose` - Prevent transaction crashes on Sinatra routes with optional parameters - Listen to `stage` option to Capistrano 2 for automatic environment detection - Add `appsignal_env` option to Capistrano 2 to set a custom environment ## 1.3.2 - Add method to discard a transaction - Run spec suite with warnings, fixes for warnings ## 1.3.1 - Bugfix for problem when requiring config from installer ## 1.3.0 - Host metrics is now enabled by default - Beta of minutely probes including GC metrics - Refactor of param sanitization - Param filtering for non-Rails frameworks - Support for modular Sinatra applications - Add Sinatra middleware to `Sinatra::Base` by default - Allow a new transaction to be forced by sinatra instrumentation - Allow hostname to be set with environment variable - Helpers for easy method instrumentation - `Appsignal.instrument` helper to easily instrument blocks of code - `record_event` method to instrument events without a start hook - `send_params` is now configurable via the environment - Add DataMapper integration - Add webmachine integration - Allow overriding Padrino environment with APPSIGNAL_APP_ENV - Add mkmf.log to diagnose command - Allow for local install with bundler `bundle exec rake install` - Listen to `stage` option to Capistrano 3 for automatic environment detection - Add `appsignal_env` option to Capistrano 3 to set a custom environment ## 1.2.5 - Bugfix in CPU utilization calculation for host metrics ## 1.2.4 - Support for adding a namespace when mounting Sinatra apps in Rails - Support for negative numbers and ILIKE in the sql lexer ## 1.2.3 - Catch nil config for installer and diag - Minor performance improvements - Support for arrays, literal value types and function arguments in sql lexer ## 1.2.2 - Handle out of range numbers in queue lenght and metrics api ## 1.2.1 - Use Dir.pwd in CLI install wizard - Support bignums when setting queue length - Support for Sequel 4.35 - Add env option to skip errors in Sinatra - Fix for queue time calculation in Sidekiq (by lucasmazza) ## 1.2.0 - Restart background thread when FD's are closed - Beta version of collecting host metrics (disabled by default) - Hooks for Shuryoken - Don't add errors from env if raise_errors is off for Sinatra ## 1.1.9 - Fix for race condition when creating working dir exactly at the same time - Make diag Rake task resilient to missing config ## 1.1.8 - Require json to fix problem with using from Capistrano ## 1.1.7 - Make logging resilient for closing FD's (daemons gem does this) - Add support for using Resque through ActiveJob - Rescue more expections in json generation ## 1.1.6 - Generic Rack instrumentation middleware - Event formatter for Faraday - Rescue and log errors in transaction complete and fetching params ## 1.1.5 - Support for null in sql sanitization - Add require to deploy.rb if present on installation - Warn when overwriting already existing transaction - Support for x86-linux - Some improvements in debug logging - Check of log file path is writable - Use bundled CA certs when installing agent ## 1.1.4 - Better debug logging for agent issues - Fix for exception with nil messages - Fix for using structs as job params in Delayed Job ## 1.1.3 - Fix for issue where Appsignal.send_exception clears the current transaction if it is present - Rails 3.0 compatibility fix ## 1.1.2 - Bug fix in notify of deploy cli - Better support for nil, true and false in sanitization ## 1.1.1 - Collect global metrics for GC durations (in beta, disabled by default) - Collect params from Delayed Job in a reliable way - Collect perams for Delayed Job and Sidekiq when using ActiveJob - Official Grape support - Easier installation using `bundle exec appsignal install` ## 1.1.0 Yanked ## 1.0.7 - Another multibyte bugfix in sql sanizitation ## 1.0.6 - Bugfix in sql sanitization when using multibyte utf-8 characters ## 1.0.5 - Improved sql sanitization - Improved mongoid/mongodb sanitization - Minor performance improvements - Better handling for non-utf8 convertable strings - Make gem installable (but not functional) on JRuby ## 1.0.4 - Make working dir configurable using `APPSIGNAL_WORKING_DIR_PATH` or `:working_dir_path` ## 1.0.3 - Fix bug in completing JS transactions - Make Resque integration robust for bigger payloads - Message in logs if agent logging cannot initialize - Call `to_s` on DJ id to see the id when using MongoDB ## 1.0.2 - Bug fix in format of process memory measurements - Event formatter for `instantiation.active_record` - Rake integration file for backwards compatibility - Don't instrument mongo-ruby-driver when transaction is not present - Accept method calls on extension if it's not loaded - Fix for duplicate notifications subscriptions when forking ## 1.0.1 - Fix for bug in gem initialization when using `safe_yaml` gem ## 1.0.0 - New version of event formatting and collection - Use native library and agent - Use API V2 - Support for Mongoid 5 - Integration into other gems with a hooks system - Lots of minor bug fixes and improvements ## 0.11.15 - Improve Sinatra support ## 0.11.14 - Support ActiveJob wrapped jobs - Improve proxy support - Improve rake support ## 0.11.13 - Add Padrino support - Add Rake task monitoring - Add http proxy support - Configure Net::HTTP to only use TLS - Don't send queue if there is no content - Don't retry transmission when response code is 400 (no content) - Don't start Resque IPC server when AppSignal is not active - Display warning message when attempting to send a non-exception to `send_exception` - Fix capistrano 2 detection - Fix issue with Sinatra integration attempting to attach an exception to a transaction that doesn't exist. ## 0.11.12 - Sanitizer will no longer inspect unknown objects, since implementations of inspect sometimes trigger unexpected behavior. ## 0.11.11 - Reliably get errors in production for Sinatra ## 0.11.10 - Fix for binding bug in exceptions in Resque - Handle invalidly encoded characters in payload ## 0.11.9 - Fix for infinite attempts to transmit if there is no valid api key ## 0.11.8 - Add frontend error catcher - Add background job metadata (queue, priority etc.) to transaction overview - Add APPSIGNAL_APP_ENV variable to Rails config, so you can override the environment - Handle http queue times in microseconds too ## 0.11.7 - Add option to override Job name in Delayed Job ## 0.11.6 - Use `APPSIGNAL_APP_NAME` and `APPSIGNAL_ACTIVE` env vars in config - Better Sinatra support: Use route as action and set session data for Sinatra ## 0.11.5 - Add Sequel gem support (https://github.com/jeremyevans/sequel) ## 0.11.4 - Make `without_instrumentation` thread safe ## 0.11.3 - Support Ruby 1.9 and up instead of 1.9.3 and up ## 0.11.2 - If APP_REVISION environment variable is set, send it with the log entry. ## 0.11.1 - Allow a custom request_class and params_method on Rack instrumentation - Loop through env methods instead of env - Add HTTP_CLIENT_IP to env methods ## 0.11.0 - Improved inter process communication - Retry sending data when the push api is not reachable - Our own event handling to allow for more flexibility and reliability when using a threaded environment - Resque officially supported! ## 0.10.6 - Add config option to skip session data ## 0.10.5 - Don't shutdown in `at_exit` - Debug log about missing name in config ## 0.10.4 - Add REQUEST_URI and PATH_INFO to env params allowlist ## 0.10.3 - Shut down all operations when agent is not active - Separately rescue OpenSSL::SSL::SSLError ## 0.10.2 - Bugfix in event payload sanitization ## 0.10.1 - Bugfix in event payload sanitization ## 0.10.0 - Remove ActiveSupport dependency - Use vendored notifications if ActiveSupport is not present - Update bundled CA certificates - Fix issue where backtrace can be nil - Use Appsignal.monitor_transaction to instrument and log errors for custom actions - Add option to ignore a specific action ## 0.9.6 - Convert to primitives before sending through pipe ## 0.9.5 Yanked ## 0.9.4 - Log Rails and Sinatra version - Resubscribe to notifications after fork ## 0.9.3 - Log if appsignal is not active for an environment ## 0.9.2 - Log Ruby version and platform on startup - Log reason of shutting down agent ## 0.9.1 - Some debug logging tweaks ## 0.9.0 - Add option to override Capistrano revision - Expanded deploy message in Capistrano - Refactor of usage of Thread.local - Net::HTTP instrumentation - Capistrano 3 support ## 0.8.15 - Exception logging in agent thread ## 0.8.14 - Few tweaks in logging - Clarify Appsignal::Transaction.complete! code ## 0.8.13 - Random sleep time before first transmission of queue ## 0.8.12 - Workaround for frozen string in Notification events - Require ActiveSupport::Notifications to be sure it's available ## 0.8.11 - Skip enqueue, send_exception and add_exception if not active ## 0.8.10 - Bugfix: Don't pause agent when it's not active ## 0.8.9 Yanked ## 0.8.8 - Explicitely require securerandom ## 0.8.7 - Dup process action event to avoid threading issue - Rescue failing inspects in param sanitizer - Add option to pause instrumentation ## 0.8.6 - Resque support (beta) - Support tags in Appsignal.send_exception - Alias tag_request to tag_job, for background jobs - Skip sanitization of env if env is nil - Small bugfix in forking logic - Don't send params if send_params is off in config - Remove --repository option in CLI - Name option in appsignal notify_of_deploy CLI - Don't call to_hash on ENV - Get error message in CLI when config is not active ## 0.8.5 - Don't require revision in CLI notify_of_deploy ## 0.8.4 - Skip session sanitize if not a http request - Use appsignal_config in Capistrano as initial config ## 0.8.3 - Restart thread when we've been forked - Only notify of deploy when active in capistrano - Make sure env is a string in config ## 0.8.2 - Bugfix in Delayed Job integration - appsignal prefix when logging to stdout - Log to stdout on Shelly Cloud ## 0.8.1 - Fix in monitoring of queue times ## 0.8.0 - Support for background processors (Delayed Job and Sidekiq) ## 0.7.1 - Better support for forking webservers ## 0.7.0 - Mayor refactor and cleanup - New easier onboarding process - Support for Rack apps, including experimental Sinatra integration - Monitor HTTP queue times - Always log to stdout on Heroku ## 0.6.7 - Send HTTP_X_FORWARDED_FOR env var ## 0.6.6 - Add Appsignal.add_exception ## 0.6.5 - Fix bug where fast requests are tracked with wrong action ## 0.6.4 - More comprehensive debug logging ## 0.6.3 - Use a mutex around access to the aggregator - Bugfix for accessing connection config in Rails 3.0 - Add Appsignal.tag_request - Only warn if there are duplicate push keys ## 0.6.2 - Bugfix in backtrace cleaner usage for Rails 4 ## 0.6.1 - Bugfix in Capistrano integration ## 0.6.0 - Support for Rails 4 - Data that's posted to AppSignal is now gzipped - Add Appsignal.send_exception and Appsignal.listen_for_exception - We now us the Rails backtrace cleaner ## 0.5.5 - Fix minor bug ## 0.5.4 - Debug option in config to get detailed logging ## 0.5.3 - Fix minor bug ## 0.5.2 - General improvements to the Rails generator - Log to STDOUT if writing to log/appsignal.log is not possible (Heroku) - Handle the last transactions before the rails process shuts down - Require 'erb' to enable dynamic config