FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New...

30
Software Analytics with Project Rubicon ALEX KROMAN OCTOBER 25TH, 2013 Wednesday, November 6, 13

description

This week we've released two new features: Histograms and Percentiles. Come learn about the analytics product that powers both of these features and how you'll be able to use Project Rubicon to get answers to complex questions about your application.

Transcript of FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New...

Page 1: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

Software Analytics with Project Rubicon

ALEX KROMANOCTOBER 25TH, 2013

Wednesday, November 6, 13

Page 2: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

1. Learn how to write NRQL queries

2. Aggregating billions of events

3. Building features on top of Rubicon

Today’s agenda

Wednesday, November 6, 13

Page 3: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

New Relic captures performance data from a bunch of places

Wednesday, November 6, 13

Page 4: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

But performance data is a small part of application data

Clicks Log messages API callsTransactions

Wednesday, November 6, 13

Page 5: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

Rubicon captures the raw events from your applications

Python AppiOS appRuby

App

Rubicon

Wednesday, November 6, 13

Page 6: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

How many customers logged in today?

What is my average revenue per sale?

What is my most used feature?

How many people are live on the app now?

By capturing raw events you can ask your application complex questions

Wednesday, November 6, 13

Page 7: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

An introduction to NRQL

Wednesday, November 6, 13

Page 8: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

1. How many people used the site today?

2. How many people are using a new feature?

3. How many people are using a new feature over time?

4. What kind of customers are using this feature?

Four questions you can ask Rubicon

Wednesday, November 6, 13

Page 9: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

1. How many people used the site today?

SELECT uniqueCount(user) FROM PageView SINCE 1 day ago

Wednesday, November 6, 13

Page 10: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

Time windows in NRQL

SINCE 8 hours ago

SINCE 2 months ago

SINCE 1 week ago UNTIL 2 hours ago

Wednesday, November 6, 13

Page 11: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

2. How many people are using a new feature?

SELECT uniqueCount(user) FROM PageView WHERE name LIKE '%x_rays%' SINCE 1 month ago

Wednesday, November 6, 13

Page 12: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

3. How many people are using the feature over time?SELECT uniqueCount(user) FROM PageView WHERE name LIKE ‘%x_rays%’ SINCE 7 days ago TIMESERIES day

Wednesday, November 6, 13

Page 13: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

4. What kind of customers are using this feature?

SELECT uniqueCount(user) FROM PageView WHERE name LIKE '%x_rays%' SINCE 7 days ago FACET apm_product

Wednesday, November 6, 13

Page 14: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

•Plenty of aggregation functions

•Time windows

•Time series

•Facets

NRQL is designed to make it easy to aggregate data over time

Wednesday, November 6, 13

Page 15: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

How do we aggregate a billion events?

Wednesday, November 6, 13

Page 16: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

Build a wide cluster

Memory is cheap so use it

Build for failure

Send the cluster real traffic

Four things we’ve learned handling large amounts of data

Wednesday, November 6, 13

Page 17: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

A brief tour of the architecture...

Router

Queries

Load balancer

RouterRouter

Worker A Worker B Worker C

Metadata

Backup Storage

Wednesday, November 6, 13

Page 18: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

Building features on top of Rubicon

Wednesday, November 6, 13

Page 19: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

Wednesday, November 6, 13

Page 20: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

Wednesday, November 6, 13

Page 21: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

Wednesday, November 6, 13

Page 22: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

Making a histogram chart

Rubicon.nrql(“SELECT histogram(duration) FROM PageView SINCE 7 days ago”)

Wednesday, November 6, 13

Page 23: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

JSON response{ "results": [ { "histogram": [ 1618, 4748, 3736, 4526,etc...

], "bucketSize": 0.25 }

Wednesday, November 6, 13

Page 24: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

Making a percentile chart

Rubicon.nrql(“SELECT percentile(duration, 50, 95, 99) FROM PageView SINCE 7 days ago TIMESERIES hour”)

Wednesday, November 6, 13

Page 25: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

JSON response{ "timeSeries": [ { "results": [ { "percentiles": { "50": 1.66, "95": 5.445, "99": 11.942 } } ], "beginTimeSeconds": 1382050194, "endTimeSeconds": 1382053794 },

Wednesday, November 6, 13

Page 26: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

Adding a custom event

data = {‘salesTeam’: ‘Enterprise’, ‘amount’: 100000}

Rubicon.insert(‘RevenueChange’, data)

Wednesday, November 6, 13

Page 27: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

Querying a custom event

SELECT count(*) FROM RevenueChange FACET salesTeam SINCE 7 days ago

Wednesday, November 6, 13

Page 28: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

Learned a bit of NRQL

Overview of the architecture

Explored the Rubicon API’s

Recap

Wednesday, November 6, 13

Page 29: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

Come visit us in the hacker lounge!

Wednesday, November 6, 13

Page 30: FUTURESTACK13: Software analytics with Project Rubicon from Alex Kroman Engineering Manager at New Relic

Find out more!

newrelic.com/analytics

Wednesday, November 6, 13