All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
0.3.0 - 2018-05-25
-
A
--debug
flag which enables error backtraces. -
PuppetDB operations are now parsed explicitly instead of being part of the "other" span group.
-
HTTP requests are parsed explicitly and tagged with method, url and peer.certname (if available).
-
Support for Ruby 2.0.
-
The script now exits with code 1 if an error is raised.
-
The script now allows for a PROFILE message containing
]
characters. -
Zipkin output no longer contains a redundant
span.kind
tag. -
The profile parser exits 1 and prints a clear error message if run under a Ruby version older than 2.0.
-
The
get
method of the Trace class is now private. -
The FunctionSpan, ResourceSpan, and OtherSpan classes have been replaced by the generic Span class and all parsing logic has been moved to the TraceParser class.
-
The CsvOutput, FlameGraphOutput, HumanOutput, and ZipkinOutput classes have been nested under a new Formatter class as Formatter::Csv, Formatter:FlameGraph, Formatter::Human and Formatter::Zipkin. The
display
method has also been re-named towrite
.
0.2.0 - 2018-03-18
-
Colorization of output can be toggled via the
--color
and--no-color
flags. -
The LogParser class now has a
parse_file
method. -
Each Trace is assigned a random UUID.
-
CSV output format.
-
JSON output for v2 of the Zipkin API.
-
The Namespace class has been re-named to Trace and the Slice classes have been renamed to Span. This matches the implementation up with OpenTracing terminology.
-
The
profile-parser.rb
script has been re-named topuppet-profile-parser.rb
for clarity. -
The PuppetProfiler module has been re-named to PuppetProfileParser for consistency with the script name.
-
The script prints usage to stderr and exits 1 if no log files are passed.
0.1.0 - 2018-03-02
-
RSpec tests.
-
Apache 2 license.
-
Support for reading gzipped log files.
-
Support for FlameGraph output.
-
Profiled events are now separated by request and Java thread id. Incomplete profiles are dropped.
-
Inclusive and exclusive times are computed for each profile span. Output uses exclisive time so that hot spots aren't hidden by spans double counting the time taken by their children.
-
Dependency on the
colored
andterminal-table
gems. -
The
catalog-analyzer.rb
script has been removed. It may return in the future, but for now the project will focus on parsing profile data.
0.0.1 - 2014-05-19
Initial version by Adrien Thebo