#output-format #flame-graph #tracing #trace #events #converter #binary-format

bin+lib hawktracer-converter

Converts HawkTracer output format to human-readable/well-known trace event viewers format

4 releases (2 breaking)

0.2.0 Jan 26, 2020
0.1.1 Dec 31, 2019
0.1.0 Dec 31, 2019
0.0.1 Jan 27, 2019

#1815 in Parser implementations

MIT license

210KB
1.5K SLoC

Rust 1K SLoC // 0.0% comments JavaScript 140 SLoC

Linux build status Windows build status Crates.io

HawkTracer Converter

HawkTracer Converter is a command line tool for converting HawkTracer binary stream to well-known tracing format. Converter supports following output formats:

We strive to support as many formats as possible, so please create an issue to let us know that you need another output format to be supported.

Screenshots of output formats

Trace Event Format FlameGraph
A screenshot of a Trace Event Format output A screenshot of a flamegraph output

Installation

Download binary files

For each release team publishes ready-to-run executables for Linux and Windows operating systems. If you don't have rust environment, and you don't want to build the converter on your own, we recommend to download binaries from the release page.
You should download a file with the following name: hawktracer-converter-{VERSION}-{OPERATING_SYSTEM}-{ARCHITECTURE} (optionally with .exe extension for Windows platforms), e.g. hawktracer-converter-0.1.0-linux-x86_64.

Cargo Install

If you have Rust developer tools, the easiest way to install the converter is to run cargo install command:

cargo install hawktracer-converter

This command will install hawktracer-converter application to user's installation bin root's bin folder (by default it's $HOME/.cargo/bin). Make sure that directory is in your $PATH to be able to run the application without specifying a full path.

Usage

$ hawktracer-converter --help
  USAGE:
    hawktracer-converter [FLAGS] [OPTIONS] --format <format> --output-file <output-file> --source <source>

  FLAGS:
    -h, --help       Prints help information
        --stdout     Print data to standard output
    -V, --version    Prints version information
        --verbose    Print debug information

  OPTIONS:
        --format <format>              Conversion format [possible values: debug, chrome-tracing, flamegraph]
        --map-files <map-files>        List of mapping files
        --output-file <output-file>    Output file [default: hawktracer-trace-%Y-%m-%d-%H_%M_%S.httrace]
        --source <source>              Data source description (either filename, or server address)

Examples

  • Read HawkTracer data stream from the network and generate FlameGraph in the default location:
$ hawktracer-converter --format flamegraph --source 10.16.32.249:5443
  • Read HawkTracer data file and print raw events to standard output:
$ hawktracer-converter --format debug --stdout

Building

HawkTracer Converter is implemented in Rust, and it's recommended to use cargo tool to compile the project:

$ git clone https://github.com/loganek/hawktracer-converter
$ cd hawktracer-converter
$ cargo build --release
$ ./target/release/hawktracer-converter --version
  hawktracer-converter 0.1.0

License Summary

This project is made available under the MIT license. (See LICENSE file)

Dependencies

~7–15MB
~187K SLoC