Naarad : Performance Analysis Tool

3,377 views

Published on

Naarad is an open-source performance analysis tool (https://github.com/linkedin/naarad) written in python and developed by the Performance team.

Naarad analyzes various metrics (gc, sar, Jmeter etc), evaluates SLAs and generates a user friendly report to aid in performance analysis and investigations.

In this talk, we will give an overview of Naarad, its usage, examples use-cases, its architecture and our future plans.

Published in: Software, Technology, Business

Naarad : Performance Analysis Tool

  1. 1. Naarad A Performance Analysis Tool Ritesh Maheshwari, Sharad Gandhi Performance Team @ LinkedIn github.com/linkedin/naarad
  2. 2. Agenda 1. Motivation 2. What is Naarad? 3. Architecture 4. Usage 5. Demo 6. Extending Naarad 7. Next Play 1
  3. 3. 2
  4. 4. Environment Setup Monitoring Test Kickoff Metrics Collection Parse Grade Report Analysis Performance Analysis 3
  5. 5. Environment Setup Monitoring Test Kickoff Metrics Collection Parse Grade Report Analysis 4 NAARAD
  6. 6. What is Naarad? • Naarad is a performance analysis tool – Analyze various metrics – Evaluate rules / SLAs – Visualize Data (plot timeseries, CDF) – Compare (diff) – CLI / Python API • Open Sourced – http://github.com/linkedin/naarad 5
  7. 7. Fetch & Parse Run Command Run Command Diff Report NAARAD 6 Analysis Visualization config GC Logs System Metrics inGraphs … Workload Logs Report Pass or Fail
  8. 8. Fetch & Parse Run Command Run Command Diff Report NAARAD 7 Analysis Visualization config Report 2 Report 1 Pass or Fail
  9. 9. Extensible Architecture metric charting reporting • Delimited files • GC logs • sar • /proc metrics • RUM logs • Jmeter logs • netstat • cluster • png (matplotlib) • svg (pygal) • js (dygraphs) NAARAD • Jinja2 templates 8
  10. 10. Supports Proprietary Extensions metric charting reporting NAARAD inGraphs HighCharts Custom templates Proprietary Open Source 9
  11. 11. Usage 10 NAARAD Python API API Clients Continuous Integration CLI
  12. 12. Extensible Architecture metric charting reporting • Delimited files • GC logs • sar • /proc metrics • RUM logs • Jmeter logs • netstat • cluster • png (matplotlib) • svg (pygal) • js (dygraphs) NAARAD • analysis report • diff report • Jinja2 templates 11
  13. 13. Adding New Metrics metric collect() parse() calc() calculate_stats() check_sla() graph_data() custom metric parse() Fetch Logs Parse Logs Derived metrics Calculate Statistics Validate SLAs Plot timeseries, cdf charts 12
  14. 14. $ sar –n DEV 1 3 SAR-dev.eth0.rxpck-per-s.csv SAR-dev.eth0.rxkB-per-s.csv 13
  15. 15. Next Play • Root Cause Analysis – Anomaly Detection – Metric Correlation – Potential Culprits Stack Ranked • Pip install 14

×