Naarad : Performance Analysis Tool

15
Naarad A Performance Analysis Tool Ritesh Maheshwari, Sharad Gandhi Performance Team @ LinkedIn github.com/linkedin/ naarad
  • date post

    17-Oct-2014
  • Category

    Software

  • view

    775
  • download

    0

description

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.

Transcript of Naarad : Performance Analysis Tool

Page 1: Naarad :  Performance Analysis Tool

NaaradA Performance Analysis Tool

Ritesh Maheshwari, Sharad GandhiPerformance Team @ LinkedIngithub.com/linkedin/naarad

Page 2: Naarad :  Performance Analysis Tool

2

Agenda

1. Motivation2. What is Naarad?3. Architecture4. Usage5. Demo6. Extending Naarad7. Next Play

Page 3: Naarad :  Performance Analysis Tool

3

Page 4: Naarad :  Performance Analysis Tool

4

Environment Setup

Monitoring

Test Kickoff

Metrics Collection

Parse

Grade

Report

Analysis

Performance Analysis

Page 5: Naarad :  Performance Analysis Tool

5

Environment Setup

Monitoring

Test Kickoff

Metrics Collection

Parse

Grade

Report

Analysis

NAARAD

Page 6: Naarad :  Performance Analysis Tool

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

Page 7: Naarad :  Performance Analysis Tool

7

Fetch & Parse

Run CommandRun Command

DiffReport

NAARAD

Analysis

Visualization

config

GC Logs

System Metrics

inGraphs

Workload Logs

Report

Pass or

Fail

Page 8: Naarad :  Performance Analysis Tool

8

Fetch & Parse

Run CommandRun Command

DiffReport

NAARAD

Analysis

Visualization

config

Report 2

Report 1

Pass or

Fail

Page 9: Naarad :  Performance Analysis Tool

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

Page 10: Naarad :  Performance Analysis Tool

10

Supports Proprietary Extensions

metric charting reporting

NAARAD

inGraphs HighCharts Custom templates

ProprietaryOpen Source

Page 11: Naarad :  Performance Analysis Tool

11

Usage

NAARADPython API

API ClientsContinuous Integration

CLI

Page 12: Naarad :  Performance Analysis Tool

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

Page 13: Naarad :  Performance Analysis Tool

13

Adding New Metricsmetric

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

Page 14: Naarad :  Performance Analysis Tool

14

$ sar –n DEV 1 3

SAR-dev.eth0.rxpck-per-s.csv SAR-dev.eth0.rxkB-per-s.csv

Page 15: Naarad :  Performance Analysis Tool

15

Next Play

• Root Cause Analysis– Anomaly Detection– Metric Correlation– Potential Culprits Stack Ranked

• Pip install