Naarad is a highly configurable system analysis tool that parses and plots timeseries data for better visual correlation. Naarad was built to help in performance analysis and investigations.
Python Awk JavaScript HTML Other
Latest commit 261e2c0 Jan 12, 2016 @RiteshMaheshwari RiteshMaheshwari Merge pull request #353 from JingshuXia/master
Fix(bring back) parsing for Custom Java Sampler in xml/jtl files.
Permalink
Failed to load latest commit information.
bin reverting gawk change Aug 28, 2015
examples
lib/luminol Updated luminol lib with flake8 fixes. Apr 22, 2015
src Fix(bring back) parsing for Custom Java Sampler in xml/jtl files. Jan 12, 2016
templates
test
.gitignore Using Git recommended Python gitignore and added few for Mac and Temp… Feb 20, 2015
LICENSE Adding NOTICE Oct 31, 2013
MANIFEST.in
NOTICE
README.md Adding markup to have code blocks in README. Nov 9, 2014
VERSION Increase the Version for uploading a new pypi. Dec 21, 2015
optional_requirements.txt
requirements.txt Updating requirements to be lower for numpy and pytz to not have to f… Apr 23, 2015
setup.cfg Updating flake8 fixes for top level files. Apr 22, 2015
setup.py Updating flake8 fixes for top level files. Apr 22, 2015

README.md

Naarad

What is Naarad?

Naarad is a framework for performance analysis & rating of sharded & stateful services.

Why Naarad?

Use-cases:

  • Scalability / Headroom Rating
  • Continuous Integration ( Performance )
  • Performance Investigation

Naarad is a highly configurable system analysis tool that parses and plots timeseries data for better visual correlation. It can be used for performance analysis of your service/application. You collect data for the metrics you want to monitor and:

  • Naarad parses JVM Garbage Collection (GC), System/Network (SAR), MySQL (Innotop), Jmeter (JTL/XML) logs, VMStat, ZoneInfo, and MemInfo
  • Naarad reads other metrics you have pre-processed and written in CSV format
  • Naarad plots the metrics you specify

The power of Naarad is in its configurablity. You can use it to glance at various metrics and then choose the important metrics to plot to visually correlate the metrics together. An example use-case is when your application's throughput dropped, you want to know if it was because of some GC activity or a spike in CPU usage or disk I/O. Naarad can help you investigate such issue better.

Features

  • Configurable input format, so you can specify which metrics to inspect. GC, SAR and Innotop logs supported currently, with support for more metrics coming in near future.
  • Logs for the supported metrics are parsed by Naarad.
  • Also supports generic metric logs in csv format.
  • Pick 'n Choose which metrics to plot together for visual correlation.
  • Html report with all the plots for a visual inspection of your application's performance profile.
  • Grading support.
  • Diff support. Ability to diff two naarad reports. Reports generated with naarad version < 1.0.5 are not supported for diff functionality.

How is it Different?

Many tools and frameworks like Zenoss, rrdtool, etc have solved the use-case of metric collection, parsing and plotting. Naarad has an overlap in functionality with these tools, but the main advantage of naarad is in its flexibility, which lets it be a powerful tool for performance investigations. Naarad users are performance experts who need to look for 'needle in a haystack'. Naarad was built to support this use-case.

Installation

  1. Check out Naarad code:
git clone https://github.com/linkedin/naarad.git
  1. Make sure you have Python (2.6 or 2.7), pip and awk.
  2. Install the necessary Python libraries using PIP.
cd naarad; pip install -r requirements.txt
  1. For problems in installation, check out our troubleshooting wiki

More Details

Please check out our wiki page for more details on Naarad's usage, supported metrics etc.