- [BUGFIX] Fix an issue in which
Mime::NullType
would result in an exception
- [IMPROVEMENT] Fix Ruby 2.7 warnings
- [IMPROVEMENT] Update Grape normalizer for version 1.3.1
- [BUGFIX] Fix an issue where GraphQL normalizers could fail to load in non-Rails contexts
- [BUGFIX] Fix an issue where the GraphQL probe may not always be installed
- Support graphql-ruby version 1.10
- [IMPROVEMENT] Enable instrumentation for ActionMailer::MailDeliveryJob
- [BUGFIX] Improved handling for non-SPEC compliant Rack middleware
- [FEATURE] Add GraphQL probe
- [FEATURE] Optionally add Rack mount point to Sinatra endpoint names
- [FEATURE] Add
Skylight.mute
andSkylight.unmute
blocks to selectively disable and re-enable - [IMPROVEMENT] Shut down the native instrumenter when the remote daemon is unreachable instrumentation
- [IMPROVEMENT] Revise agent authorization strategy (fixes some issues related to activation for background jobs)
- [IMPROVEMENT] Fix Rails 6 deprecation warnings
- [BUGFIX] Skip the Sidekiq probe if Sidekiq is not present
- [BUGFIX] Correct an issue where the delayed_job probe may not be activated on startup
- [BUGFIX] Fix Skylight installation when bundled with edge rails Issue #132
- [IMPROVEMENT] Improve socket retry handling in skylightd
- [FEATURE] add normalizers for Graphiti >= 1.2
- [BUGFIX] re-enable aliases in skylight.yml
- [BUGFIX] Fix an issue with Delayed::Job worker name formatting
- [BUGFIX] Better detection of known web servers
- [FEATURE] Skylight for Background Jobs
- [FEATURE] instrument ActiveStorage notifications
- [FEATURE] Probe for Delayed::Job (standalone)
- [FEATURE] Add Skylight#started? method
- [IMPROVEMENT] Support anonymous ActiveModelSerializer classes
- [IMPROVEMENT] Improve error handling in normalizers
- [IMPROVEMENT] Handle Rails 6's middleware instrumentation
- [IMPROVEMENT] Better rendered format detection in Rails controllers
- [IMPROVEMENT] Recognize the Passenger startup script as 'web'
- [IMPROVEMENT] ActionMailer::DeliveryJob are now reported using the mailer name and method
- [IMPROVEMENT] Better content type handling for ActionController normalizer
- [IMPROVEMENT] Better handle some things in Ruby 2.6
- [IMPROVEMENT] Better logging in a couple places
- [IMPROVEMENT] Fixed a couple Ruby warnings (thanks, @y-yagi!)
- [IMPROVEMENT] Handle 403 config validation response
- [IMPROVEMENT] Config for
prune_large_traces
is now true by default - [BUGFIX] Require http formatters for Faraday (thanks, @serkin!)
- [BREAKING] Drop support for Ruby 2.2 since it is EOL
- [BREAKING] New method for assigning 'segment' to a trace endpoint name
- [BUGFIX] ActiveJob#perform_now should not reassign the endpoint name
- [BUGFIX] skylightd correctly closes cloned file descriptors on startup
- [BUGFIX] Convert numeric git shas to strings
- [BUGFIX] Fix derived endpoint names under Grape 1.2
- [IMPROVEMENT] Get AMS version from
Gem.loaded_specs
(thanks @mattias-lundell!)
- [IMPROVEMENT] Trace Mongo aggregate queries
- [BUGFIX] Correct configuration keys in skylight.yml
- [BUGFIX] SQL queries with schema-qualified table names are parsed correctly
- [BUGFIX]
SELECT ... FOR UPDATE
queries are parsed correctly - [BUGFIX] Revision to SQL string escaping rules
- [BUGFIX] Fix issue where Rails routing errors could result in a broken trace.
- [FEATURE] First class support for multiple application environments
- [IMPROVEMENT] Better instrumentation of ActiveJob enqueues
- [BREAKING] The ActiveJob enqueue_at normalizer is now a probe that is enabled by default. The normalizer no longer needs to be required.
- [BREAKING] Remove SKYLIGHT_USE_OLD_SQL_LEXER config option
- [IMPROVEMENT] Improve handling of broken middleware traces
- [IMPROVEMENT] Don't rely on ActiveSupport's String#first (Thanks @foxtacles!)
- [BUGFIX] Susbcribe to AS::Notifications events individually
- [IMPROVEMENT] add normalizer for 'format_response.grape' notifications
- [BUGFIX] Correctly deprecate the Grape probe
- [BUGFIX] Correctly deprecate the now unncessary Grape probe.
- [FEATURE] New SQL lexer to support a wider variety of SQL queries.
- [BREAKING] Drop support for Ruby versions prior to 2.2
- [BREAKING] Drop support for Rails versions prior to 4.2
- [BREAKING] Drop support for Tilt versions prior to 1.4.1
- [BREAKING] Drop support for Sinatra versions prior to 1.4
- [BREAKING] Drop support for Grape versions prior to 0.13.0
- [BREAKING] Drop support for Linux with glibc versions prior to 2.15
- [BREAKING] Remove couch_potato normalizer as it doesn't appear to have ever worked
- [BREAKING]
log_sql_parse_errors
config option is now on by default. - [IMPROVEMENT] Auto-disable Middleware probe if it appears to be causing issues
- [IMPROVEMENT] More detailed logging and improved error handling
- [IMPROVEMENT] Fix Ruby Warnings (Thanks @amatsuda!)
- [IMPROVEMENT] Improved handling of errors generated in the Rust agent.
- [IMRPOVEMENT] Add logging to Instrumentable for easier access
- [IMPROVEMENT] Improved logging during startup
- [FEATURE] New API for loading Probes. Example:
Skylight.probe(:excon')
- [FEATURE] New API for enabling non-default Normalizers. Example:
Skylight.enable_normalizer('active_job')
- [DEPRECATION] Support for Rails versions prior to 4.2
- [DEPRECATION] Support for Tilt versions prior to 1.4.1
- [DEPRECATION] Support for Sinatra versions prior to 1.4
- [DEPRECATION] Support for Grape versions prior to 0.13.0
- [IMPROVEMENT] Include endpoint name in error logging
- [BUGFIX] Make sure to correctly release broken traces
- [BUGFIX] Keep the
require
method private when overwriting
- [FEATURE] Time spent the Rails router is now identified separately in the trace
- [IMPROVEMENT] Switch logger to debug mode if tracing is enabled
- [IMPROVEMENT] Improved logging for a number of error cases
- [IMPROVEMENT] Middleware probe should now accept anything allowed by Rack::Lint
- [IMPROVEMENT] We were using arity checks to determine Rails version but due to other libraries' monkey patches this could sometimes fail. We just check version numbers now.
- [BUGFIX] Middleware probe no longer errors when Middleware returns a frozen array
- [BUGFIX]
skylight doctor
no longer erroneously reports inability to reach Skylight servers.
- [FEATURE] Coach instrumentation. Enabled automatically via ActiveSupport::Notifications.
- [FEATURE] Option to enable or disable agent by setting SKYLIGHT_ENABLED via ENV.
- [IMPROVEMENT] Better logging for certain error cases.
- [BUGFIX] Backport a SPEC compliance fix for older Rack::ETag to resolve case where the Middleware probe could cause empty traces.
- [BUGFIX] Fix a case where using the non-block form of
Skylight.instrument
withSkylight.done
could cause lost trace data.
- [BUGFIX] The minimum glibc requirement was errorneously bumped to 2.15. We have returned it to 2.5.
- [BUGFIX] In rare cases, Rails Middleware can be anonymous classes. We now handle those without raising an exception.
- [BUGFIX] For experimental deploy tracking support, resolve an error that occurred if the Git SHA and description were not set.
- [BUGFIX] Fix an issue that would prevent the daemon from starting up on FreeBSD.
- [FEATURE] Add probe for Rack Middlewares
- [FEATURE] ActiveRecord Instantiation instrumentation
- [FEATURE] Faraday instrumentation. Add 'faraday' to your probes list.
- [IMPROVEMENT] Increase limit for items tracked in a requests
- [IMPROVEMENT] Allow for more fine-grained control over position of Skylight::Middleware
- [IMPROVEMENT] Improved handling of the user-level configuration options
- [IMPROVEMENT] Avoid processing Skylight::Middleware unnecessarily
- [EXPERIMENTAL] FreeBSD support. (This should work automatically on FreeBSD systems, but real-world testing has been minimal.)
- [EXPERIMENTAL] ActionJob Enqueue instrumentation. (Only tracks the enqueuing of new jobs. Does not instrument jobs themselves. Off by default since it's not clear how useful it is. To enable:
require 'skylight/normalizers/active_job/enqueue_at'
.)
- [IMPROVEMENT] Better suggestions in
skylight doctor
.
- [FEATURE] Add normalizer for couch_potato. (Thanks @cobot)
- [IMPROVEMENT]
skylight doctor
now validates SSL configuration - [IMPROVEMENT] Add ENV option to force use of bundled SSL certificates
- [BUGFIX] Update bundled SSL certificates to avoid an authentication issue some users encountered due to a new skylight.io certificate.
- [BUGFIX] Ignored heartbeat endpoints with response types weren't actually ignored. They now will be!
- [FEATURE] Response Type tracking for all applications. (Previously known as Segments.)
- [FEATURE] Support musl-based OSes (including Alpine Linux)
- [FEATURE] Add Elasticsearch Probe
- [FEATURE] Add HTTPClient probe (#76)j
- [IMPROVEMENT] Update tested Ruby versions, drop 1.9.2
- [BUGFIX] Fix HTTP_PROXY handling of empty strings (#90)
- [BUGFIX] Don't crash on empty content_type strings
- [BUGFIX] Use more robust method to detect home dir (#75)
- [BUGFIX] Add option to suppress environment warning (#62)
- [BUGFIX] Gracefully handle non-writable log files
- [BUGFIX] Fix skylight doctor's handling of config files
- [BUGFIX] Support MetalControllers that don't use ActionController::Rendering
- [BETA FEATURE] Track separate segments for endpoints. Contact support@skylight.io to have this feature enabled for your account.
- [FEATURE] Initial 'skylight doctor' command
- [BREAKING] Removed old
skylight setup
without creation token - [BREAKING] Remove Ruby based SQL lexer
- [IMPROVEMENT] Internal refactors
- [BUGFIX] Correctly pass 'false' config values to Rust agent
- [BUGFIX] Turn off -Werror and -pedantic for builds. Issue #64
- [BUGFIX] Fix issue with Grape multi-method naming
- [BUGFIX] Add http to proxy_url for native fetching
- [BUGFIX] Fix setting
proxy_url
in config YML - [IMPROVEMENT] Log errors during authentication validation
- [BUGFIX] Sinatra instrumenation now works for latest master
- [BUGFIX] Sequel support for 4.35.0
- [BUGFIX] Handle latest ActiveModel::Serializers version
- [BUGFIX] More precise check for existence of Rails
- [BREAKING] Drop official support for Sinatra 1.2 (it likely never worked correctly)
- [IMPROVEMENT] On Heroku, logs are now written to STDOUT
- [IMPROVEMENT] Allow Skylight to raise on logged errors, useful for testing and debugging
- [IMPROVEMENT] Finish Rack::Responses in Middleware
- [IMRPOVEMENT] Better message when config/skylight.yml already exists
- [IMPROVEMENT] Update Rust Agent with SQL improvements, including handling for arrays and WITH
- [BUGFIX] Don't validate configuration on disabled environments.
- [BUGFIX] Fix git repository warning on startup. Issue #58
- [FEATURE] Preliminary work for deploy tracking (not yet functional)
- [BUGFIX] Don't crash if user config (~/.skylight) is empty
- [BUGFIX] Better handling of unsupported moped versions
- [IMPROVEMENT] Internal refactor of configuration handling
- [IMPROVEMENT] Improve automated tests
- [IMPROVEMENT] Fix tests in Rails 5 (No actual code changes required!)
- [FEATURE] ActiveModel::Serializers Instrumentation. Always on in latest HEAD, for previous version add 'active_model_serializers' to probes list.
- [BUGFIX] Handle multi-byte characters in SQL lexer
- [FEATURE] Added instrumentation for official Mongo Ruby Driver (utilized by Mongoid 5+). Add 'mongo' to probes list to enable.
- [BUGFIX] SQL lexer now handles indentifiers beginning with underscores.
- [BUGFIX] Excon instrumentation now works correctly.
- [BUGFIX] Graceful handling of native agent failures on old OS X versions.
- [IMPROVEMENT] Freeze some more strings for (likely very minor) performance improvements.
- [IMPROVEMENT] Better error messages when sockdir is an NFS mount.
- [IMPROVEMENT] On OS X, ensure that Xcode license has been approved before trying to build native agent.
- [BUGFIX] Update SQL lexer to handle more common queries
- [BUGFIX] Correctly report native gem installation failures
- [BUGFIX] Correctly update Rust agent to include SQL fixes that were supposed to land in 0.9.1.
- [BUGFIX] Update Rust SQL lexer to handle
NOT
and::
typecasting.
- [FEATURE] Expose Skylight::Helpers.instrument_class_method
- [BUGFIX] Allow for instrumentation of setters
- [BUGFIX] Fix an issue where loading some items in the Grape namespace without loading the whole library would cause an exception.
- [IMPROVEMENT] Switch to Rust SQL lexer by default
- [IMPROVEMENT] Add support for Redis pipelined and multi
- [IMPROVEMENT] Updated Rust internals
- [IMPROVEMENT] Agent should now work on current Rails master
- [IMPROVEMENT] Better disabling of development mode warning
- [BUGFIX] Fix agent on OS X El Capitan.
- [PERFORMANCE] Explicitly subscribe to normalized events
- [IMPROVEMENT] Use native unique description tracking
- [IMPROVEMENT] Native SQL: Support multistatement queries
- [FEATURE] Add Grape instumentation. See https://docs.skylight.io/grape
- [FEATURE] Process ERB in config/skylight.yml
- [FEATURE] Add Rust based SQL lexing. Currently beta. Enable with
config.sql_mode = 'rust'
. - [BUGFIX] Fixed a case where, With some logger configurations, duplicate messages could be written to STDOUT.
- [BUGFIX] Fix bug in FFI error handling
- [BUFIX] Condvar bug in Rust. Updated to latest nightly.
- [BUGFIX] Don't crash on ruby stack overflow
- [IMPROVEMENT] Silence a noisy log message
- [IMPROVEMENT] Update to latest openssl & curl
- [FEATURE] Add probe on ActionView for layout renders
- [BUGFIX] Don't use $DEBUG to enable verbose internal logging
- [IMPROVEMENT] Eliminates runtime dependency on the Rails constant across the entire codebase
- [FEATURE] Support for Sinatra applications. See https://docs.skylight.io/sinatra/
- [FEATURE] Support for the Sequel ORM (off by default for Rails apps)
- [FEATURE] Support for Tilt templates (off by default for Rails apps)
- [IMPROVEMENT] Support ignoring multiple heartbeat endpoints
- [BUGFIX] Fix compilation errors on old GCC
- [BUGFIX] Fix issues with working directory dissappearing
- [IMPROVEMENT] Automatically load configuration from ENV
- [FEATURE] Track object allocations per span
- [IMPROVEMENT] Fix C warnings
- [BUGFIX] Fix Moped integration when queries include times
- [BUGFIX] Fix exit status on MRI 1.9.2
- [BUGFIX] Strip SQL comments for better aggregation
- [BUGFIX] Fix downloading native agent on 32bit systems
- [BUGFIX] Support legacy config settings
- [FEATURE] Check FS permissions on instrumenter start
- Featherweight Agent: lowered CPU and memory overhead
- [IMPROVEMENT] Add support for ignoring an endpoint by name
- [BUGFIX] Skylight crashing on start won't crash entire app
- [BUGFIX] Fix app name fetching on Windows for
skylight setup
- [IMPROVEMENT] HEAD requests are no longer instrumented and will not count towards usage totals.
- [IMPROVEMENT] Added LICENSE and CLA
- [IMPROVEMENT] Improve how warnings are logged to reduce overall noise and interfere less with cron jobs
- [BUGFIX] Fixed a case where failed app creation raised an exception instead of printing error messages
- [FEATURE] Redis probe (Not enabled by default. See https://docs.skylight.io/agent/#railtie)
- [FEATURE] Support app creation with token instead of email/password
- [BUGFIX] App creation now works even when Webmock is enabled
- [BUGFIX] Fix instrumentation for methods ending in special chars
- [BUGFIX] Improved SQL parsing
- [IMPROVEMENT] Respect collector token expiration to reduce token requests
- Fix warning for Cache.instrument overwrite
- Fixed ActiveSupport::Cache monkeypatch
- Basic instrumentation for ActiveSupport::Cache
- Fix incompatibility with old version of rack-mini-profiler
- Better error messages when config/skylight.yml is invalid
- Better error messages for non-writeable lock/sockfile path
- Do not build C extension if dependencies (libraries/headers) are missing
- [RUST] Improve performance by not double copying memory when serializing
- Enable the Net::HTTP probe by default
- Load probes even when agent is disabled
- Check for Excon::Middlewares before installing the probe
- SQL error encoder should not operate in-place
- Fix Middleware
- More debug logging
- Log Rails version in MetricsReporter
- Handle missing Net::ReadTimeout in 1.9.3
- Include original exception information in sql_parse errors
- Debugging for failed application creation
- Make double sure that Trace started_at is an Integer
- Include more information in type check errors
- Use stdlib SecureRandom instead of ActiveSupport::SecureRandom - Fixes Rails 3.1
- Instrumenter#start! should fail if worker not spawned
- Configurable timeouts for Util::HTTP
- Improve proxy handling for Util::HTTP
- Improve HTTP error handling
- Refactor sql_parse errors
- Improved error handling and internal metrics
- Improved missing native agent message
- Improved install logging
- Added initial inline docs
- Respects HTTP_PROXY env var during installation
- Don't overwrite sockfile_path if set explicitly
- Don't raise on missing native agent path
- Avoid finalizing sockets in the child process
- Fix non-displaying warnings around native agent
- Remove HTTP path information from title for better grouping
- Update vendored highline to 1.6.21
- Send more information with exceptions for easier debugging
- Instrument and report internal agent metrics for easier debugging
- Fix bug with tracking request counts per endpoint
- Use a default event category if none passed to Skylight.instrument
- Fix bugs around disabling the agent
- Fix native extension compilation bugs
- Shorter token validation timeout
- Allow validation to be skipped
- Update Rust component
- Return true from Task#handle to avoid sutdown
- Fix numeric check that caused crash on some 32-bit systems
- Improve error message for missing Skylight ext
- Better config error messages
- Validate authentication token before starting
- Add proxy support
- Don't try to boot Skylight without native agent
- Make exception classes always available
- CLI should require railtie before loading application.rb
- Load the railtie even without native agent
- Autoload Skylight:Helpers even when native agent isn't available
- Fix SEGV
- Fix requires to allow CLI to function without native extension.
- Native Rust agent
- Send exceptions occurring during HTTP requests to the client.
- Warn users when skylight is potentially disabled incorrectly.
- Update SQL Lexer to 0.0.6
- Log the backtraces of unhandled exceptions
- Add support for disabling GC tracking
- Add support for disabling agent
- Disable annotations to reduce memory load.
inspect
even whitelisted payload props- Ignore Errno::EINTR for 'ps' call
- Revert "Update SqlLexer to 0.0.4"
- Whitelist process action annotation keys.
- Update SqlLexer to 0.0.4
- Fix SQL lexing for comments, arrays, double-colon casting, and multiple queries
- Handle template paths from gems
- Status and exception reports for agent debugging
- Added support for Mongoid/Moped
- Fix probe enabling
- Improved error reporting
- Fix bug with multiple subscribers to same notification
- Fix bin/skylight
- Added Probes, initially Net::HTTP and Excon
- Wide-ranging memory cleanup
- Better resiliance to binary and encoding errors
- Add support for disabling
- De-dupe rendering instrumentation better
- Fix send_file event to not spew a gazillion nodes
- Rails 3.0 compatibility
- Detailed SQL annotations
- Update agent for new authentication scheme
- Change ENV variable prefix from SK_ to SKYLIGHT_
- Add instrument_method helper
- Add the ability to configure logging from railtie
- Tracks the current host
- [BUG] Handle AS::N monkey patching when there are already subscribers
- [BUG] Handle ruby 1.9.2 encoding bug
- [BUG] Fix unix domain socket write function in standalone agent
- Performance improvements
- Tolerate invalid trace building
- Fix Skylight on Rails 4
- Provide a default CA cert when one is not already present
- Expose Skylight.start! and Skylight.trace as APIs
- Expose Skylight.instrument as an API for custom instrumentation.
- [BUG] Fix some errors caused by floating point rounding
- [BUG] Handle clock skew caused by system clock changes
- [BUG] Require net/https and openssl
- [BUG] Rails' logger does not respond to #log. Use level methods instead
- [BUG] Disable GC profiling on JRuby
- [BUG] GC Profiling was not getting enabled
- Initial release