= Changelog
This file keeps track of changes in the different request-log-analyzer releases. When creating a pull request,
please add an entry to the "Not yet released" section in this document.
== Not yet released
* Nothing yet!
== Request-log-analyzer 1.13 release cycle
=== Version 1.13.4
* Catch SyntaxErrors when eval'ing lines.
* Scrub parameter with file upload line in Rails requests, so it will parse successfully. (Michael Stark)
=== Version 1.13.3
* Allow more flexible Apache user strings
* Rspec 3
* Reintroduce class attribute inheritance to keep writing your own custom analyser based on an existing one simple.
* Rubucop cleanup
=== Version 1.13.2
=== Version 1.13.1
* Adapt Delayed Job 4 Log format changes (Michael Stark)
* Catch all errors when using eval (temporary workaround to prevent crashing)
* Fix Rubinus in Travis config.
* Enable the sender name and email address to be specified on the command line (Joshua Pettett)
=== Version 1.13.0
* Dropped Ruby 1.8 support
* Dropped ActiveRecord 2 support
* Removed OrdereredHash
* Removed force_encoding check.
== Request-log-analyzer 1.12 release cycle
=== Version 1.12.11
* Millisecond measuring units when measurements are under 1 second
* Added specific class to html report
* Allow floats for durations when using the %T directive in Apache format
* Rubinius Fixes
=== Version 1.12.10
* Apache vhost combined now supported
* Removed old blog from readme
* S3 format parser more permissive, as it rejected real log files
* Redid Travis build environment & requirements
* Added MIT license to gemspec
=== Version 1.12.9
* Switched to new NGINX apache default (combined)
* Enable database testing on Travis
* Use bundler gem tasks for gemification
=== Version 1.12.8
* Rails 3 routing errors are now reported on.
=== Version 1.12.7
* Delayed Job 3 format now supported
=== Version 1.12.6
* Added NGINX support
* Analyse & Report Rails3 partials
* Added directories parsing support
=== Version 1.12.5
* Filename is now displayed in the header of the output
* Added orderedhash class for Rubinius support
* Fixed a number of Travis issues
=== Version 1.12.4
* Fixed version number being off.
* Rake tasks are now Rails 2 & 3 compatible.
* Ftools is replaced with fileutils.
=== Version 1.12.3
* Cleaned up internal API for nices Ruby integration.
* Fixed small typo.
* Replaced relative path reference to database_console_init with standard reference
=== Version 1.12.2
* Removed Encoding.default_external as it was unnecessary and caused problems with Ruby 1.9.3-head.
=== Version 1.12.1
* Database inserter now working for ActiveRecord 3: NOTE! The minimal ActiveRecord version required is 3!
* Travis CI build support (http://travis-ci.org/#!/wvanbergen/request-log-analyzer)
* Standard error and out are now cleaned up (#107)
=== Version 1.12.0
* Loading the database console now works again.
== Request-log-analyzer 1.11 release cycle
=== Version 1.11.0
*Important:* The @--gets-memory-protection@ command line switch is gone. Ruby 1.9 offers this functionality without a performance penalty. If you want to keep using this option in Ruby 1.8, please do not upgrade to this version or copy paste the mixin.
Also, removed some half-finished features that were not in a usable state and are not going to be further developed, like using a database as a request source and the "FancyHTML" output format.
* The HAProxy file format now supports more old versions.
* The Rails 3 format now reads "parameters" lines.
* Better parsing of hostnames and IP addresses, fixing some edge cases in all file formats that use these.
* Change @autoload@ magic to use regular @require@ to make the source code more understandable.
* File format specs are refactored to be more readable.
PostgreSQL format bug: we found that for some log files, about 50% of all queries will not get parsed. We are working on a fix for the file format; in the mean time you can still use it to get a feel of the performance.
== Request-log-analyzer 1.10 release cycle
=== Version 1.10.1
* Small bugfix when using custom file formats in Ruby 1.9.2.
* Small fix for Rails 3 processing line edge case.
* Set up CI testing framework. Request-log-analyzer is now tested on Ruby 1.8.7, 1.9.2 and Ruby enterprise edition.
=== Version 1.10.0
* Add support for the W3C log format. @--format w3c@
* Add support for HAProxy logs. @--format haproxy@
* Add support for providing the unit used for the Apache %D directive. Default: @%D@, or @%{micro}D@, in which case the values will be interpreted as microseconds. @%{milli}D@ will interpret them as milliseconds instead. (@%T@ interprets the value as seconds.)
* Fixed parsing of Rails 3 Completed lines when another duration is specified (ex: Sphinx)
== Request-log-analyzer 1.9 release cycle
=== Version 1.9.10
* PostgreSQL format fixes
* Fix in loading custom output formats from the command line.
=== Version 1.9.9
* Added parsing of object instantiation counts to Oink file format.
=== Version 1.9.8
* Fixed issue in Delayed::Job log parser when using multiple workers.
* Added some stuff to the YAML result export.
=== Version 1.9.7
* Fixed a bug in parsing rails3's started line for Ruby 1.9.2 Time#to_s
* Added benchmarks of different rubies
=== Version 1.9.6
* Small improvements to the Rails 3 file format.
=== Version 1.9.5
* Fixed a issue with the --select command line option not being parsed correctly.
=== Version 1.9.4
* Small fixes in both the Rails 2 and Rails 3 file formats.
=== Version 1.9.3
* Fixed a small date handling issue in Rails 3 file format.
=== Version 1.9.2
* Fixed an issue with the Rails 2 file format when ActiveRecord is disabled.
=== Version 1.9.1
* Fixed format auto-detection issue that caused a Rails log file to show up as an Oink file.
=== Version 1.9.0
* Added 90-percentile interval to numerical reports.
* Some fixes for the Rails 3 file format
== Request-log-analyzer 1.8 release cycle
=== Version 1.8.1
* Ruby 1.9.2 and Rails 3 compatibility fixes
* Rails 3 log format improvements
* Added log splitting on PID to Rails rake task @rake rla:split@ (Issue 56).
* Several smaller bugfixes
=== Version 1.8.0
* Added Oink support for Rails.
* Added @--mailsubject@ option (Issue 51).
* Fixed require exception on empty rails folder
== Request-log-analyzer 1.7 release cycle
=== Version 1.7.0
* @--silent@ option implemented. No output is given when this option is used. Ideal for cron job usage (Issue 46).
* @--gets-memory-protection@ Includes a mixin to prevent Ruby gets from using huge amounts of memory when extremely long lines are encountered in a log (Issue 47). Please note that this option will suffer a 10% performance hit.
== Request-log-analyzer 1.6 release cycle
=== Version 1.6.4
* Fixed a bug that disallowed line definition names that are also methods names of the Object class.
=== Version 1.6.3
* Initial support for Rails 3 logs. Add @--format rails3@ to your command line if auto-detection fails.
Note: The log format has changed since the release of the Rails 3 beta. Only the HEAD version of Rails 3 is supported by request-log-analyzer.
* Fixed a bug in the [[Amazon S3 access log]] parser.
* Improved the graphs when using the @FancyHTML@ output.
* Added a nicer API to define capture values in a file format.
=== Version 1.6.2
* Rails 1.9 compatibility fixes related to string encodings.
=== Version 1.6.1
* Fixed a bug in the request database schema creation.
* Minor bugfixes.
=== Version 1.6.0
* [[PostgreSQL query log]] support. (Add @--format postgresql@ to your command if auto-detection fails.)
We only had a limited sample of PostgreSQL log to implement the file format.Please support us and send in a fragment of your PostgreSQL query log file!
* Fixed Rails action cache hit detection for newer Rails versions.
== Request-log-analyzer 1.5 release cycle
=== Version 1.5.4
* Added support for [[DelayedJob log]] files. (Add @--format delayed_job@ to your command if auto-detection fails.)
* Fixed Rails 3 ActiveRecord deprecation notice.
=== Version 1.5.3
* Fixed a small bug in the Rails development file format report.
* Fixed the @:multiple => true@ option for frequency trackers
* Added a beginning for a new output format: FancyHTML, which includes charts using the Google charts API. Add @--output FancyHTML@ to your command line to activate it.
* Improved Sinatra/Rack format auto-detection.
* Extracted regular expressions for common log fragments, like IP addresses and timestamps, to a shared module.
=== Version 1.5.2
* Support parsing IPv6 IP address as well. Thanks to "dissemble":http://github.com/dissemble for contributing the patch.
* JRuby related fixes
=== Version 1.5.1
* Fixed a crasher bug in the HTML output of traffic reports.
=== Version 1.5.0
* Added file format autodetection: in most cases, providing the @--format@ parameter is no longer needed to select the correct file format. However, it is still possible to explicitly set the format if autodetection fails.
* Added a [[MySQL slow query log]] parser (@--format mysql@).
Thanks "Bart Zonneveld":http://github.com/bartzon for contributing this functionality.
* Mail host now configurable. Use @--mailhost @ to specify this
* Added specs to test mailing functionality using a mock SMTP server (mailtrap)
== Request-log-analyzer 1.4 release cycle
=== Version 1.4.2
* Added correct content-type to emails sent via the @--mail@ option.
=== Version 1.4.1
* Fixed @--mail@ command line option which was broken since version 1.4.0.
* Added Scout & Munin plugin integration tests
=== Version 1.4.0
* Initial version of request-log-analyzer API.
* Added standard deviation to duration and traffic reports.
* Added @--report-amount @ to define the number of entries in the table in the report. Use @all@ to specify that all entries should be included. The default value is 20
* Added @--report-sort @ options to specify how the resulting duration and traffic tables should be sorted. You can specify multiple sort fields using a comma separated list, which results in multiple tables. Supported sortings are @sum@, @mean@, @stddev@ and @hits@. The default value is @sum,mean@.
* Restructured the [[Rails request log]] parser to be more flexible about what lines to parse, using the @--rails-format @ command line switch.
** @--rails-format minimal@ will only parse _processing_ and _completed_ lines.
** @--rails-format production@ will parse exceptions and cache hits besides the minimal lines.
** @--rails-format development@ will also parse SQL queries and template renderings
** @--rails-format all@ will parse every known line type.
** @--rails-format minimal,failure@ will parse the minimal lines and exceptions. Use a comma-separated list like this. to define your own line set.
* Significantly improved the test coverage of the Rails log format.
== Request-log-analyzer 1.3 release cycle
=== Version 1.3.7
* Fixed a crasher bug when parsing compressed files.
* Speed optimizations by enabling teaser checks for lines.
=== Version 1.3.6
* Speed optimizations to improve parsing performance of frequently called methods, i.e. @Tracker#should_update@, @Request#convert_value@, @Request#convert_timestamp@, @Request#convert_traffic@ and @Request#convert_duration@.
* Tweaked all file formats for increased performance
* Cleaned up and simplified some old code.
=== Version 1.3.5
* Added statistics about data traffic for the file formats that contain this information (Apache, Amazon S3, Rack)
* Added support for Rack CommonLogger logs (@--format rack@).
* Added "agent" and "referer" Apache log format constants.
* Improved request duration parsing (%D directive) from [[Apache access log]] files.
* Fixed a bug in the database inserter that caused tables to be created with wrong fields.
=== Version 1.3.4
* Added [[Amazon S3 access log]] parser. Add @--format amazon_s3@ to you command line to use it. S3 access logs are disabled by default. See "the S3 documentation on server logging":http://docs.amazonwebservices.com/AmazonS3/latest/index.html?ServerLogs.html for more information to enable it.
=== Version 1.3.3
_Retracted release_
=== Version 1.3.2
* Tweaking to increase performance significantly.
* Added a @--no-progress@ command line switch to disable the progress bar parsing for an additional speed improvement.
=== Version 1.3.1
* E-mail option to automatically send you reports: add --mail my@address.com
to your command line.
* Allow other database connections than SQLite3 by passing a connection string to the @--database@ command line option. Examples:
** SQLite3 file database: @--database filename.db@ (as before)
** Connection URI: --database postgresql://rla:rla@localhost/requests
** ODBC-style: @--database adapter=mysql;username=root;host=localhost;database=requests@
** Memory database: @--database adapter=sqlite3;database=:memory:@
* Keep the previous database by default, pass the @--reset-database@ option to clear the database before parsing.
* Added an IRB console to inspect a request database just like Rails's @script/console@. Run with
@request-log-analyzer console -d @
* Fixed some require paths that were causing problems.
=== Version 1.3.0
_Retracted release_
== Request-log-analyzer 1.2 release cycle
=== Version 1.2.9
* Improved [[Apache access log]] format. Can now handle any kind of "Apache access log file format":http://httpd.apache.org/docs/1.3/mod/mod_log_config.html by providing the @--apache-format @ command line argument.
* Allow @FileFormats@ to be constructed dynamically (used for the Apache format implementation).
* Refactored parameter passing during parsing to allow for more flexibility.
=== Version 1.2.8
_Retracted release_
=== Version 1.2.7
* Added [[Apache access log]] parser. To use, add @--format apache@ to your command line invocation
* Make the release script send the gem to RubyForge as well.
=== Version 1.2.6
* New, more robust gem release script using the ruby-git gem.
* Updated outdated information in the gemspec file
=== Version 1.2.5
* Improved Merb log format parser
=== Version 1.2.4
* More robust handling of database connections in database inserter.
=== Version 1.2.3
* Refactored database functions
* Cleaned up specs and tried some heckle
* Interrupts are handled more gracefully
* Moved munin tracker to a "separate Github project":http://github.com/barttenbrinke/munin-plugins-rails/
=== Version 1.2.2
_Retracted release_
=== Version 1.2.1
* Compressed logfile support
* Parsable YAML results as output (use @--dump @ command line option )
* "Full Rdoc documentation":http://wvanbergen.github.com/request-log-analyzer
* Introduced [[Changelog]]
* Updated rails rake tasks
=== Version 1.2.0
* Ruby 1.9 support
* Rcov coverage (use @rake spec:rcov@ to generate the coverage report)