department-of-veterans-affairs / va.gov-team

Public resources for building on and in support of VA.gov. Visit complete Knowledge Hub:
https://depo-platform-documentation.scrollhelp.site/index.html
281 stars 196 forks source link

Evaluate website performance monitoring tools #4187

Closed rianfowler closed 4 years ago

rianfowler commented 4 years ago

Overview

Goals

Potential tasks

Code quality tools to evaluate

https://speedcurve.com/pricing/ https://www.datadoghq.com/rum/

rianfowler commented 4 years ago

Create overview

Prototyping

Pick vendor

jhonnyoddball commented 4 years ago

Google Analytics - Web Performance Monitoring

The only information related with web performance monitoring inside GA is located at: Reports -> Behavior -> Site Speed

Average loading times are important metrics.

GA Avg Page Load

jhonnyoddball commented 4 years ago

Prometheus - Web Performance Monitoring

it does not provide any real and liable data to be used for performance metrics

jhonnyoddball commented 4 years ago

Web Performance Monitoring Tools

Synthetic Monitoring - The site receives a check once a minute or so RUM - Receives the data directly from the site because the script runs on the page.

Monitoring Tool RUM Synthetic Price *Score
Akamai - mPulse X   ? 1
DotCom-Monitor X X Confusing 1
Uptrends X X Varies, $50 p/m + RUM usage 2
DareBoost   X $356 p/m 3
RayGun X   $649 p/m 1
Rigor   X ? 2
DataDog X X ? 4
SpeedCurve X X $1,500 p/m 5
jhonnyoddball commented 4 years ago

AKAMAI - MPULSE

https://www.akamai.com/us/en/products/performance/mpulse-real-user-monitoring.jsp https://developer.akamai.com/akamai-mpulse-real-user-monitoring-solution

PRICE: Upon request DEMO: Upon request. SCORE: 1

jhonnyoddball commented 4 years ago

DOTCOM-MONITOR

https://www.dotcom-monitor.com/website-speed-monitoring/

PRICE: Confusing (https://www.dotcom-monitor.com/pricing/) DEMO: Upon request. SCORE: 1

jhonnyoddball commented 4 years ago

UPTRENDS

https://www.uptrends.com/products/web-performance-monitoring

PRICE: Varies, $50 p/m + RUM usage (https://www.uptrends.com/pricing) DEMO: Upon request. SCORE: 2

jhonnyoddball commented 4 years ago

DAREBOOST

https://www.dareboost.com/en

PRICE: $356 p/m (https://www.dareboost.com/en/offers#ifbefs_nfov) DEMO: Upon request. Free Report (https://www.dareboost.com/en/report/a_15df7939f90b9981b244f29ce) SCORE: 3

jhonnyoddball commented 4 years ago

RAYGUN

https://raygun.com/

PRICE: $649 p/m (https://raygun.com/platform/real-user-monitoring#rum-business) DEMO: Upon request. SCORE: 1

jhonnyoddball commented 4 years ago

RIGOR

https://rigor.com/

PRICE: No pricing. Only after trial. DEMO: Upon request. SCORE: 2

jhonnyoddball commented 4 years ago

DATADOG

https://www.datadoghq.com

A lot of backend integration.

RUM (https://www.datadoghq.com/rum/)

Synthetic (https://www.datadoghq.com/synthetics/)

Integration, dashboard, alerts, log management, network, monitoring, and API are features but sold separately.

PRICE: Varies based on product bundle (https://www.datadoghq.com/pricing/) DEMO: Upon request. SCORE: 4

jhonnyoddball commented 4 years ago

SPEEDCURVE

It is by far the most complete of all. It has both RUM and synthetic monitoring. It has most of all competitor's features and more.

RUM (https://speedcurve.com/features/lux/)

Data collected by RUM: https://support.speedcurve.com/en/articles/1707704-what-data-is-collected-by-lux-for-rum

Metric representation: https://support.speedcurve.com/en/articles/74078-what-do-the-different-speedcurve-metrics-represent

Synthetics (https://speedcurve.com/features/synthetic/)

monitoring is built on top of WebPageTest,

SpeedCurve CLI with Node (https://github.com/SpeedCurve-Metrics/speedcurve-cli)

PRICE: $18,000 per year for RUM and Synthetic (https://speedcurve.com/pricing/) DEMO: Demo available SCORE: 5

jhonnyoddball commented 4 years ago

SpeedCurve - Performance Budget

More Info on how to create a performance budget

Screen Shot 2020-01-07 at 10 19 09 AM

Allows you to set a specific metric budget only per chart. there are about 50 different metrics

Settings:

Screen Shot 2020-01-07 at 10 21 40 AM

Chart:

Screen Shot 2020-01-07 at 10 22 20 AM

jhonnyoddball commented 4 years ago

SpeedCurve - Synthetic

Screen Shot 2020-01-06 at 11 16 10 AM

Highlights

Site

Provides you with the most import metrics

  • Filmstrip
  • Start Render
  • SpeedIndex
  • Backend (TTFB)
  • Page Load
  • Fully Loaded
  • All LightHouse scores (Performance, Progressive Web App, Accessibility, Best practices and SEO)
  • Time to Interactive
  • Blocking JS
  • Blocking CSS
  • Content requests
  • Content Sizes

Deploy

Allows you to compare the same site into 2 different instances. Just run the test on the days you want to perform and compare. It could be helpful to compare the progress of improvements.

Screen Shot 2020-01-10 at 2 22 30 PM

Responsive

Shows you the responsiveness of among tested devices

Screen Shot 2020-01-10 at 2 25 33 PM

Assets

Summary of the requests

  • Slowest requests
  • Largest requests

Third Party

Recognizes and displays all third-party information

Screen Shot 2020-01-10 at 2 31 44 PM

Javascript

Displays all information and metrics related with js files

Screen Shot 2020-01-10 at 2 39 09 PM

Benchmark

Displays metrics from all the competitors

Screen Shot 2020-01-10 at 2 41 17 PM

Synthetic tab can't be modified, however, any other metrics/custom metrics can be added to any dashboard under Favorites

jhonnyoddball commented 4 years ago

SpeedCurve - Improve

It displays the audits and recommendations from LightHouse

Screen Shot 2020-01-10 at 4 03 59 PM

jhonnyoddball commented 4 years ago

PERFORMANCE METRICS

Recommended metrics from USWDS

This should be the main metrics you should focus on for Web Performance. SpeedCurve has all of them.

Most of the above metrics can be found in SpeedCurve under Synthetic > Site. However, FCP and FMP can only be found in a custom Dashboard or in the cascade chart.

SpeedCurve reply:

“You can find First Contentful Paint and First Meaningful Paint when you drill down into your Synthetic test results. You can also create custom charts that track FCP (in LUX and Synthetic) and FMP (Synthetic only) in your Favorites dashboards, as well as create performance budgets and alerts for them.”

jhonnyoddball commented 4 years ago

SpeedCurve - Metrics test

Parameters

Screen Shot 2020-01-13 at 10 10 03 AM

Comparison Test

Metric VA HealthCare HealthData
Speed Index 2.43 s 3.88 s 0.83 s
First Meaningful Paint 1.92 s 2.05 s 1.05 s
First Contentful Paint 1.92 s 1.47 s 0.76 s
Time to Interactive 2.71 s 5.27 0.76 s
Start Render 1.8 s 1.5 s 0.8 s
TTFB 0.7 s 0.35 s 0.2 s
Number of requests 43 78 37
Total Size 923 KB 2,594 KB 330 KB
Blocking CSS 2 4 9
Blocking JS 2 11 6

LightHouse Scores

Metric VA HealthCare HealthData
Performance 51 28 94
PWA 58 31 54
Accessibility 100 92 97
Best Practice 86 86 86
SEO 100 80 73
brandonrapp commented 4 years ago

What would do we think will be useful for VSP and VFS teams? What decisions do you think we can make using the data from speedcurve? How could VSP use this to identify optimizations and test out assumptions?

jhonnyoddball commented 4 years ago

SpeedCurve - Github authentication

Their response:

Hi there! We don't offer GitHub authentication at the moment, but we do support other forms of SSO including SAML, ADFS, and Google G Suite.

jhonnyoddball commented 4 years ago

SpeedCurve - Usefulness

What would do we think will be useful for VSP and VFS teams?

What decisions do you think we can make using the data from speedcurve?

Definitely a lot. Starting with the Improve tab. We will be able to check what need to be done in every page been tested.

Screen Shot 2020-01-21 at 11 18 47 AM

How could VSP use this to identify optimizations and test out assumptions?

There are several metrics that can be used to improve the overall performance in each site component. We can always separate each instance and separate it among team or at least a bigger group.

Snapshots can also be useful to identify the progress made and what can be affecting the site as time passes by.

Screen Shot 2020-01-21 at 11 22 24 AM