105
Performance Monitoring at Spreadshirt

Performance Monitoring at Spreadshirt

Embed Size (px)

Citation preview

Page 1: Performance Monitoring at Spreadshirt

Performance Monitoringat Spreadshirt

Page 2: Performance Monitoring at Spreadshirt

Why is performance relevant?

Page 3: Performance Monitoring at Spreadshirt

Performance has an impact on conversion rate ...

Page 5: Performance Monitoring at Spreadshirt

… and other business metrics

● bounce rate

● cart size

● revenue

● time on site

● page views

http://www.soasta.com/whitepapers/time-is-money-the-business-value-of-web-performance/Time is Money, The Business Value of Web Performance, Tammy Everts

● user satisfaction

● user retention

● organic search traffic

● brand perception

● productivity

Page 6: Performance Monitoring at Spreadshirt

How can performance be measured?

Page 7: Performance Monitoring at Spreadshirt

Core Metrics Overview

time to first byte

Page 8: Performance Monitoring at Spreadshirt

Core Metrics Overview

time to first byte start render time

Page 9: Performance Monitoring at Spreadshirt

Core Metrics Overview

time to first byte start render time

above the fold time

Page 10: Performance Monitoring at Spreadshirt

Core Metrics Overview

time to first byte start render time

above the fold time page load time

Page 11: Performance Monitoring at Spreadshirt

Metric Detailstime to first byte start render time page load time fully loaded

above the fold time

Page 12: Performance Monitoring at Spreadshirt

Metric Detailsbackend frontend

Page 13: Performance Monitoring at Spreadshirt

Metric DetailsDNS lookup

Init TCP connectionServer processing

Content download

Page 14: Performance Monitoring at Spreadshirt

Metric DetailsNumber of resources and transfered bytes +

order of resources

Page 15: Performance Monitoring at Spreadshirt

Which performance tools can be useful in software development lifecycle?

Page 16: Performance Monitoring at Spreadshirt

Software Development Lifecycle

Lifecycle image taken from SOASTA tool overview

Page 17: Performance Monitoring at Spreadshirt

Data Analysis &Optimization Tools

Synthetic Performance Monitoring &Real User Monitoring (RUM) &

Application Performance Monitoring (APM)

Load Testing & Optimization Tools

Performance Tools

Page 18: Performance Monitoring at Spreadshirt

Performance Tools at Spreadshirt

Grafana/Graphite

Page 19: Performance Monitoring at Spreadshirt

Performance Tools at SpreadshirtData Analysis

Synthetic Performance Monitoring

Real User Monitoring (RUM)

Grafana/GraphiteApplication PerformanceMonitoring (APM)

Page 20: Performance Monitoring at Spreadshirt

Why do we have anApplication Performance Monitoring tool

and why isn’t it enough?

Page 21: Performance Monitoring at Spreadshirt

Machine

Application Performance Monitoring (APM)

Service

Monitoring Server

Monitoring Data

Send Metrics

Write Monitoring Data Read Monitoring Data and Aggregations

Browser

Developer Request

Send Metrics

ServiceAgent

MachineAgent

Monitoring Website/

Application

Page 22: Performance Monitoring at Spreadshirt

Pros

● Good overview on performance of monitored machines and services

● Machine level information on cpu, memory, disk usage

● Service level information like JVM heap usage, number of threads, etc.

● Resource level information on response times, throughput, error rates

● Analysis tools allow to quickly find performance problems

● End-to-end drill down on a per request basis allows to quickly find root cause of

problems

Page 23: Performance Monitoring at Spreadshirt

Cons

● Complex to set up in a microservice environment as each service and machine needs

to be monitored with an agent

● No information on how pages load in real browser environments

● No information on how my DNS provider or CDN works

● No information on how 3rd party libraries behave in browser

Page 24: Performance Monitoring at Spreadshirt

Application Performance Monitoringprovides view on internal service and

machine performancesynthetic and real user monitoring

and why do we need both?

Page 25: Performance Monitoring at Spreadshirt

What is the difference between Synthetic and Real User Monitoring

and why do we need both?

Page 26: Performance Monitoring at Spreadshirt

Synthetic Performance Monitoring

SpreadshirtWebsite

Monitoring Server

Monitoring Website

Monitoring Data

Poll Page

Write Monitoring Data Read Monitoring Data and Aggregations

BrowserDeveloper Request

Page 27: Performance Monitoring at Spreadshirt

Pros

● Provides information about page load times in real browsers

● Controlled test environment

● Defined test locations

● Defined frequency

● Traffic independent

● Allows to check availability, speed, errors

● Allows to monitor 3rd party libraries, DNS provider and CDN

Page 28: Performance Monitoring at Spreadshirt

Cons

● Only information about configured pages

● No information about speed, errors on different customer environments like○ browser

○ device

○ country

○ operating system

○ ...

● No information about traffic distribution

● No connection to business metrics (like conversion rate)

Page 29: Performance Monitoring at Spreadshirt

Real User Monitoring (RUM)

SpreadshirtWebsite

BrowserMonitoringWebsite

Monitoring Data

Request Page

Write Monitoring Data

Read Monitoring Data and Aggregations

BrowserDeveloper Request

MonitoringJavascript

MonitoringServer

Send Beacon

Page 30: Performance Monitoring at Spreadshirt

Pros

● Runs on end users browsers and collects information about speed and errors on

different○ browsers

○ devices

○ countries

○ operating systems

○ …

● Allows to track real user traffic in real time

● Allows to track business metrics (conversion rate) in connection to performance

metrics

● Allows to track 3rd party libraries, DNS provider and CDN

Page 31: Performance Monitoring at Spreadshirt

Cons

● Provides data on pages with traffic only

● Uncontrolled environment

● Monitoring Javascript needs to be added to each page

● Single page apps (SPA) need to be monitored individually

Page 32: Performance Monitoring at Spreadshirt

Synthetic and Real User Monitoringcomplement each other

and provide outside view on performancesynthetic and real user monitoring

and why do we need both?

Page 33: Performance Monitoring at Spreadshirt

Which features do the available monitoring tools provide and how do

they work?

Page 34: Performance Monitoring at Spreadshirt

Application Performance Monitoring light with Grafana/Graphite

Page 35: Performance Monitoring at Spreadshirt

Grafana/Graphite Features

● Available on https://grafana.sprd.net resp. https://graph.server.lej.sprd.net

● Light version of Application Performance Monitoring

● Allows to track all kinds of metrics (not only performance related ones)

● Allows to create custom dashboards

● Allows to visualize metrics in different ways (time lines, numbers, tables, ...)

● Allows to run more complex analysis with the available Graphite functions (like top

10 slowest resources, ...)

● Allows to define and visualize thresholds

● Does not allow to define alerts yet

Page 36: Performance Monitoring at Spreadshirt

Grafana Dashboard

Favorite dashboards Available dashboards

Search dashboard Create new dashboard

Page 37: Performance Monitoring at Spreadshirt

Grafana Shopping Overview

Throughput metric as number

Response time metric with exceeded threshold

Linked to dashboard with details (on click)

Add panel

Page 38: Performance Monitoring at Spreadshirt

Grafana UMP Details

Response time metric p99 as timeline

Response time metric mean as timeline

Stacked throughput as timeline

Edit panel

Page 39: Performance Monitoring at Spreadshirt

Grafana UMP Details Configuration

Response time p99 metric

Response time mean metric

Page 40: Performance Monitoring at Spreadshirt

Synthetic Performance Monitoring with Rigor

Page 41: Performance Monitoring at Spreadshirt

Rigor Features

● Available on https://monitoring.rigor.com

● Allows to configure uptime, real browser and even selenium-style checks

● Allows to measure from different locations with different frequencies

● Allows to define thresholds on measured metrics

● Provides dashboards to visualize performance data

● Provides http archive on measurement and visualization as waterfall diagram

● Collects all kinds of performance metrics

● Allows to create and distribute performance reports

● Provides tags to be used in dashboards and for conducting actions

● Allows to alert via e-mail, phone, sms, chat, web hook

● Provides status page

● Provides API

Page 42: Performance Monitoring at Spreadshirt

Rigor Dashboard

Real browser checks Access check

Page 43: Performance Monitoring at Spreadshirt

Rigor Real Browser Checks

Add check

Configure check Access check

Page 44: Performance Monitoring at Spreadshirt

Rigor Real Browser Configuration

Configure URL

Configure frequency

Configure alert

Page 45: Performance Monitoring at Spreadshirt

Rigor Real Browser Check Configuration

Configure locations

Configure thresholds

Configure tags

Page 46: Performance Monitoring at Spreadshirt

Rigor Real Browser Check Dashboard

Switch view

Access measurement

Adjust timeDisplay events

System event

Page 47: Performance Monitoring at Spreadshirt

Rigor Real Browser Check Page Performance Dashboard

Select metric

Access measurement

Page 48: Performance Monitoring at Spreadshirt

Rigor Real Browser Check Domain Performance Dashboard

Select metricAccess measurement

Page 49: Performance Monitoring at Spreadshirt

Rigor Real Browser Check Waterfall Diagram

Open details

Page 50: Performance Monitoring at Spreadshirt

Rigor Executive Performance Dashboard

Access check

Page 51: Performance Monitoring at Spreadshirt

Rigor Operations Performance Dashboard

Access check

Page 52: Performance Monitoring at Spreadshirt

Rigor Custom Tag Performance Dashboard

Select tag

Page 53: Performance Monitoring at Spreadshirt

Rigor Custom Tag Performance Dashboard

Access check

Page 54: Performance Monitoring at Spreadshirt

Rigor Status Page - https://monitoring.rigor.com/status/218

Current load time

History

Page 55: Performance Monitoring at Spreadshirt

Rigor Custom Report Configuration

Select checks

Select date range

Select metric

Configure E-Mail

Page 56: Performance Monitoring at Spreadshirt

Rigor Custom Report Visualization

Access check

Page 57: Performance Monitoring at Spreadshirt

Rigor E-Mail Alert

Access check

Current state

Page 58: Performance Monitoring at Spreadshirt

Rigor E-Mail Report

Access check

Page 59: Performance Monitoring at Spreadshirt

Rigor Rocket.Chat Integration

Access check

Page 60: Performance Monitoring at Spreadshirt

Real User Monitoring with SOASTA mPulse

Page 61: Performance Monitoring at Spreadshirt

SOASTA mPulse Features

● Available on https://mpulse.soasta.com/concerto/Central

● Allows to configure applications per domain (e.g. for spreadshirt.de)

● Allows to configure page groups, metrics, timers and dimensions

● Collects performance metrics available to browsers

● Displays real-time performance data

● Provides dashboards to visualize performance data for different roles

● Allows to create custom dashboards

● Allows to filter data by all kinds of dimensions, e.g. browser, device, country

● Provides means to visualize complex correlations

● Allows to integrate data from other sources, like Rigor

● Allows to create and distribute reports

● Allows to alert via e-mail, chat, web hook …

Page 62: Performance Monitoring at Spreadshirt

SOASTA Applications

Create application

Access application

Page 63: Performance Monitoring at Spreadshirt

SOASTA Application Configuration

Access page groups

Page 64: Performance Monitoring at Spreadshirt

SOASTA Page Group Configuration

Configure page groups

Test page

Page 65: Performance Monitoring at Spreadshirt

SOASTA Metrics Configuration

Configure metric

Page 66: Performance Monitoring at Spreadshirt

SOASTA Timers Configuration

Configure timer

Page 67: Performance Monitoring at Spreadshirt

SOASTA Dimensions Configuration

Configure dimension

Page 68: Performance Monitoring at Spreadshirt

SOASTA Javascript Plugin

Add Boomerang Javascript

Add custom Javascript code for handling SPA

Page 69: Performance Monitoring at Spreadshirt

SOASTA Javascript Beacon

Loaded Boomerang Javascript

Sent beacon

Page 70: Performance Monitoring at Spreadshirt

SOASTA Dashboards

Pre-built dashboards

Custom dashboards

Add dashboard

Access dashboard

Page 71: Performance Monitoring at Spreadshirt

SOASTA Summary DashboardFilters for drill down

Page load vs page views

Key metrics and timersFilter statistics

Page load by country

Page 72: Performance Monitoring at Spreadshirt

SOASTA Summary Dashboard Configuration

Show available widgetsShow dashboard configuration

Drag & drop to add to dashboard

Select to configure widget

Configure widget

Configure default filter

Page 73: Performance Monitoring at Spreadshirt

SOASTA Showcase Dashboard

Live beacons

Live page load and back-end time

Live statistics

Page 74: Performance Monitoring at Spreadshirt

SOASTA DevOps Dashboard

Page 75: Performance Monitoring at Spreadshirt

SOASTA Custom Revenue Dashboard

Business relevant timers and metrics

Revenue vs. bounce rate

Page views vs. page load

Orders

Page 76: Performance Monitoring at Spreadshirt

SOASTA Custom Page Load Times Dashboard

Page load mean

Page load percentiles

Page 77: Performance Monitoring at Spreadshirt

SOASTA Custom Shopping Team Dashboard

Backend time vs. frontend time vs. page views

Page load time by page type

Load times from Rigor (external data)

Page 78: Performance Monitoring at Spreadshirt

SOASTA What-If Dashboard

Move sliders to see impact of improvements on revenue

Sessions with average load time vs.conversion rate per average load time

Page 79: Performance Monitoring at Spreadshirt

SOASTA Waterfall Dashboard

Found beacons for selected filters

Resource timings for selected beacon

Access to beacon data

Page 80: Performance Monitoring at Spreadshirt

SOASTA Waterfall Dashboard Performance Data

Page 81: Performance Monitoring at Spreadshirt

SOASTA Waterfall Dashboard Request Data

Page 82: Performance Monitoring at Spreadshirt

SOASTA Waterfall Dashboard Page Construction Data

Page 83: Performance Monitoring at Spreadshirt

SOASTA Reports

Add report

Custom reports

Page 84: Performance Monitoring at Spreadshirt

SOASTA Report Configuration

Configure schedule

Configure recipient

Drag & drop dashboard

Page 85: Performance Monitoring at Spreadshirt

SOASTA Report E-Mail

Configured dashboard as image or link

Page 86: Performance Monitoring at Spreadshirt

SOASTA Alerts

Add Alert

Custom Alerts

Page 87: Performance Monitoring at Spreadshirt

SOASTA Alert Configuration

Configure data event

Configure recipient

Configure message

Drag & drop elements

Page 88: Performance Monitoring at Spreadshirt

SOASTA Alert E-Mail

Link to dashboard that provides more details

Page 89: Performance Monitoring at Spreadshirt

SOASTA Rocket.Chat Integration

Link to dashboard that provides more details

Alert from SOASTA

Page 90: Performance Monitoring at Spreadshirt

What if there are more complex questions to answer?

Page 91: Performance Monitoring at Spreadshirt

Questions like ...

● On which page groups do I have performance problems?

● What are the most used path through my application regarding the defined

conversion goal?

● Which page groups are relevant regarding my defined conversion goal (e.g. order)?

● On which environments do I have performance problems (devices, browsers,

countries, operating systems)?

● Which page resources on my site are slow?

● Which page groups should I optimize first?

Page 92: Performance Monitoring at Spreadshirt

Data Analysis with SOASTA Data Science Workbench

(DSWB)

Page 93: Performance Monitoring at Spreadshirt

Data Science Workbench (DSWB)

Soasta DSWB

Importer

Monitoring Data

BrowserAnalyst

Request

AWS Redshift Cluster

Page Data

Resource Data

SoastaDSWB(Julia)Workbench

RequestData

Import

Page 94: Performance Monitoring at Spreadshirt

Data Science Workbench Features● Available on https://spreadshirt.soasta-dswb.com● Soasta DSWB is an environment that allows to analyze and visualize

performance data● Runs on AWS Redshift Cluster with Julia as programming language● Packages for Julia available to access databases, work with data, etc. ● Soasta DSWB provides additional packages for data analysis, drawing and

charting

Page 95: Performance Monitoring at Spreadshirt

SOASTA DSWB Overview

Select running notebook

Page 96: Performance Monitoring at Spreadshirt

SOASTA DSWB Notebook

Cell with default connection configuration for spreadshirt.de data

Execute selected cell (or Shift + Enter)

Tables with page and resource data for spreadshirt.de

Selected time frame

Documentation

Page 97: Performance Monitoring at Spreadshirt

SOASTA DSWB Page Load Co-occurrencesHistogram that shows page views vs. page load for selected time frame

Page 98: Performance Monitoring at Spreadshirt

SOASTA DSWB Page Load Co-occurrences

Visualization of factors that influence load times

Page 99: Performance Monitoring at Spreadshirt

SOASTA DSWB Page Load Treemap

Treemap that visualizes load times in relationship to page views for selected filter hierarchy

Page 100: Performance Monitoring at Spreadshirt

SOASTA DSWB User Path Sunburst Chart

Visualization of all user click paths towards checkout success page (means measured conversion goal)

Page 101: Performance Monitoring at Spreadshirt

SOASTA DSWB Conversion Impact Chart

Visualization of load time relevance of page group in order to reach conversion goal (means reaching checkout success page)

Page 102: Performance Monitoring at Spreadshirt

SOASTA DSWB Conversion vs Load Time Chart

Visualization of average session load time for converted and unconverted sessions (means sessions that reached checkout success page or not) vs conversion rate for average session load time

Page 103: Performance Monitoring at Spreadshirt

SOASTA DSWB Data AccessVisualization of plain beacon data for spreadshirt.de basedon an SQL executed against AWS Redshift Cluster

Page 104: Performance Monitoring at Spreadshirt

So, which tool should I use for what again?

Page 105: Performance Monitoring at Spreadshirt

Conclusion

● Use Grafana/Graphite (and Icinga) to get information about internal services like

response times, throughput and error rates

● Use tools like JProfiler to debug performance problems

● Use Rigor to get outside view on selected pages regarding page response times and

availability

● Use SOASTA mPulse to get extended view on page load time behavior in real user

environments

● Use SOASTA DSWB as planning tool to answer more complex questions regarding

performance and plan the next steps