SlideShare une entreprise Scribd logo
1  sur  71
Télécharger pour lire hors ligne
Observability and User Happiness
@eanakashima
about://
Emily Nakashima (she/her)

Director, Engineering
Web Performance?
Observability?
NONSENSE.
Site Reliability Engineering
(SRE) Island
The Isle of Ops
Backend Engineer Island
Fullstackville
Frontend Island
Perf
Island
The Isle of

Browser

Vendor
Expansive Domain of

of Designers &

Product Managers
Observability
Web Perf
An observable system is one
whose internal state can be
deeply understood just by
observing its outputs.

Observability
Observability
Observability vs. Web Perf
Let’s talk about birds.
Hawks vs. Falcons
Red-Tailed Hawk
@bwmaddog21 | https://www.flickr.com/photos/bwmaddog21/38890588682
Peregrine Falcon
@beckymatsubara | https://www.flickr.com/photos/beckymatsubara/42017229951
Parrots && Falcons
Parrot (Lovebird, Agapornis lilianae)
@nikborrow | https://www.flickr.com/photos/nikborrow/31643657028/
Peregrine Falcon
@beckymatsubara | https://www.flickr.com/photos/beckymatsubara/42017229951
Convergent evolution!
Red-Tailed Hawk
@bwmaddog21 | https://www.flickr.com/photos/bwmaddog21/38890588682
Peregrine Falcon
@beckymatsubara | https://www.flickr.com/photos/beckymatsubara/42017229951
Same deal with Web Perf & Observability folks
Web Perf practitioner
@solutionist | https://www.flickr.com/photos/solutionist/48227528782/
Observability practitioner
@solutionist | https://www.flickr.com/photos/solutionist/48227528782/
An observable system is one
whose internal state can be
deeply understood just by
observing its outputs.

Observability is a system
property, just like performance.
Observability
“Nines don’t matter if users
aren’t happy.”
- Charity Majors, all the time
Same deal with Web Perf & Observability folks
Web Perf practitioner
@solutionist | https://www.flickr.com/photos/solutionist/48227528782/
Observability practitioner
@solutionist | https://www.flickr.com/photos/solutionist/48227528782/
Worries about developer adoption Thinks these numbers look wrong
Cares deeply about UX Not sure how to balance this,
my real job, with what they think
they pay me for
Debating nine
different ways
to measure
the same thing
Lots of emotional energy
going into some standards
or spec process
Obsessed with numbers
Let’s join forces!
This talk
1. Talk about birds for five minutes
2. Data models
3. SLOs vs. performance budgets
4. Observability for perf optimization
5. Observability for UX design
References!
bit.ly/hawks-vs-falcons
2. Data models

Events, metrics, logs, traces … oh my!
Two communities, different superpowers
Web Perf:
" Sophisticated tooling, many tool types
" Amazing, mature developer experience
" Lots of experience improving the ecosystem
through specs & new browser APIs
Observability:
" Focused on instrumentation best practices
" Goal is to enable answering any question
about the state of your software
" Just starting on specs
2. Data models
Events are the fundamental
data unit of observability
2. Data models
!= DOM events
What is an event?
1 event

==

1 unit of work

~=

1 request
What’s in an event?
{
"GojiPattern": "/user_event/:event_type",
"Header.Content-Type": "["application/json"]",
"Header.Cookie": "["_ga=GA1.2.2033006133.1516389900;",
"Header.User-Agent": "["Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1)…”]”,
"Host": "127.0.0.1:8080",
"IsXHR": true,
"Method": "POST",
"RequestURI": "/user_event/page-unload",
"ResponseContentLength": 443,
"ResponseHttpStatus": 200,
"ResponseTime_ms": 123,
"Timestamp": "2018-03-02T06:14:57.206349701Z",
"UserEmail": "nathan@honeycomb.io",
"UserID": 18,
"availability_zone": "us-east-1b",
"build_id": "6552",
"env": "dogfood",
"infra_type": "aws_instance",
"instance_type": "t2.micro",
"memory_inuse": 15450056,
"num_goroutines": 56,
"request_id": "poodle-a38f5e39/5fIUGkX5D1-001814",
"server_hostname": "poodle-a38f5e39",
"type": "request"
},
High cardinality
Fields that may have many unique values
Common examples:
• email address
• username / user id / team id
• server hostname
• IP address
• user agent string
• build id
• request url
• feature flags / flag combinations
What about the Three Pillars?
Logs
Metrics
Traces
207.46.1.2 -
[03/Nov/2016:16:11:43 -0700]
”GET /robots.txt HTTP/1.1"
Events
{
“type”: “db.select”,
“duration”: 23,
“host”: “poodle-437987”,
“query_shape”: “SELECT * FROM teams WHERE id = ?”,
}
Derive all Three Pillars from Events
Derive all Three Pillars from Events
1 (structured) log line ~= 1 event

metrics can be derived from events

traces = n events (spans) with parent/child relationships
"Observability is for User Happiness," performance.now() 2019 (Amsterdam)
Derive all Three Pillars from Events
1 (structured) log line ~= 1 event

metrics can be derived from events

traces = n events (spans) with parent/child relationships
Wait, maybe you should just use Tracing?
Distributed Tracing
OpenCensus
OpenTelemetry
OpenTracing
Distributed Tracing … in the Browser
bit.ly/hawks-vs-falcons
Simple trace: just load a page
When we create events (spans)
• On page load
• On history state change (SPA navigation)
• On significant user actions
• On error (also send to error monitoring tools)
• On page unload
What’s in an event?
{
// For the page load event, collect information about the page
“type”: “page-load”,
“duration”: “1278”,
“device_type”: “tablet”,
“connection_type”: “3g”,
“user_agent”: “Mozilla/5.0 (Macintosh)…”,
// ...all feature flag states
// ...all navigation timing measurements
}
{
// For the button click, collect information about the interaction
“type”: “usage-mode-button-click”,
“duration”: “28”,
“location”: “dataset list”,
“animation_render_duration”: “127”,
}
page-load duration, graphed
Complicated trace: lots of user interaction
Hawks vs. Falcons
Network Tools (single view, exportable as
HAR)
Distributed trace for the same page view
(RUM data)
What’s next? Measuring React renders!
bit.ly/hawks-vs-falcons
3. SLOs vs. performance budgets

How to make sure we’re optimizing what really matters
Performance budgets
Performance budgets
Service Level Objectives (SLOs)
Service Level Objectives (SLOs)
bit.ly/hawks-vs-falcons
SLOs, SLIs, SLAs
For each facet of system performance (latency, errors, etc.) ask:
• SLI: Service Level Indicator — what do we measure?
○ response time of web app requests
• SLA: Service Level Agreement — what did we promise our customers?
○ response time will be under 10 seconds, 99% of the time
• SLO: Service Level Objective — what number would keep our users happy?
○ response time should be under 1 second, 99.9% of the time
Service Level Objectives (SLOs)
Two tools, different superpowers
Performance Budgets:
" Many easy ways to get started
" Great tooling support (webpack, lighthouse)
" Easy to understand
" Business stakeholders might not care
SLOs (Service Level Objectives):
" Extremely flexible—use any # you measure!
" Get burn alerts when your budget runs low
" Read multiple book chapters to understand
" You get business stakeholder buy-in up front
5. Observability for Perf Optimization

Using observability to make things faster
Regular product architecture
Secure Tenancy product architecture
Observability for Perf Optimization
It’s slow for one team only on
the secure architecture
Secure product performance regression
Secure product performance regression
High-performance browser instrumentation code:
1. Batch requests together so you don’t run down battery & use up resources
2. Use the Beacon API to send events in a non-blocking way
3. Use `requestIdleCallback` or `setTimeout` to handle slower calculations
Don’t shoot yourself in the foot

while trying to look at your own foot
Another performance regression
Another performance regression
Another performance regression
Another performance regression
5. Observability for UX Design

Using observability to drive design
Using observability to drive design
Using observability to drive design
Using observability to drive design
Using observability to drive design
Using observability to drive design
Using observability to drive design
Using observability to drive design
We’re all product engineers now!
How to tell a hawk from a falcon
Red-Tailed Hawk
@hmclin | https://www.flickr.com/photos/hmclin/14119319574
Peregrine Falcon
@zonotrichia | https://www.flickr.com/photos/zonotrichia/31001823086
Thank you
@eanakashima
bit.ly/hawks-vs-falcons

Contenu connexe

Dernier

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGSujit Pal
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 

Dernier (20)

Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Google AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAGGoogle AI Hackathon: LLM based Evaluator for RAG
Google AI Hackathon: LLM based Evaluator for RAG
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 

En vedette

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 

En vedette (20)

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 

"Observability is for User Happiness," performance.now() 2019 (Amsterdam)

  • 1. Observability and User Happiness @eanakashima
  • 6. Site Reliability Engineering (SRE) Island The Isle of Ops Backend Engineer Island Fullstackville Frontend Island Perf Island The Isle of
 Browser
 Vendor Expansive Domain of
 of Designers &
 Product Managers Observability Web Perf
  • 7. An observable system is one whose internal state can be deeply understood just by observing its outputs. Observability
  • 9. Observability vs. Web Perf Let’s talk about birds.
  • 10. Hawks vs. Falcons Red-Tailed Hawk @bwmaddog21 | https://www.flickr.com/photos/bwmaddog21/38890588682 Peregrine Falcon @beckymatsubara | https://www.flickr.com/photos/beckymatsubara/42017229951
  • 11. Parrots && Falcons Parrot (Lovebird, Agapornis lilianae) @nikborrow | https://www.flickr.com/photos/nikborrow/31643657028/ Peregrine Falcon @beckymatsubara | https://www.flickr.com/photos/beckymatsubara/42017229951
  • 12. Convergent evolution! Red-Tailed Hawk @bwmaddog21 | https://www.flickr.com/photos/bwmaddog21/38890588682 Peregrine Falcon @beckymatsubara | https://www.flickr.com/photos/beckymatsubara/42017229951
  • 13. Same deal with Web Perf & Observability folks Web Perf practitioner @solutionist | https://www.flickr.com/photos/solutionist/48227528782/ Observability practitioner @solutionist | https://www.flickr.com/photos/solutionist/48227528782/
  • 14. An observable system is one whose internal state can be deeply understood just by observing its outputs. Observability is a system property, just like performance. Observability
  • 15. “Nines don’t matter if users aren’t happy.” - Charity Majors, all the time
  • 16. Same deal with Web Perf & Observability folks Web Perf practitioner @solutionist | https://www.flickr.com/photos/solutionist/48227528782/ Observability practitioner @solutionist | https://www.flickr.com/photos/solutionist/48227528782/ Worries about developer adoption Thinks these numbers look wrong Cares deeply about UX Not sure how to balance this, my real job, with what they think they pay me for Debating nine different ways to measure the same thing Lots of emotional energy going into some standards or spec process Obsessed with numbers
  • 18. This talk 1. Talk about birds for five minutes 2. Data models 3. SLOs vs. performance budgets 4. Observability for perf optimization 5. Observability for UX design
  • 20. 2. Data models
 Events, metrics, logs, traces … oh my!
  • 21. Two communities, different superpowers Web Perf: " Sophisticated tooling, many tool types " Amazing, mature developer experience " Lots of experience improving the ecosystem through specs & new browser APIs Observability: " Focused on instrumentation best practices " Goal is to enable answering any question about the state of your software " Just starting on specs
  • 22. 2. Data models Events are the fundamental data unit of observability
  • 23. 2. Data models != DOM events
  • 24. What is an event? 1 event
 ==
 1 unit of work
 ~=
 1 request
  • 25. What’s in an event? { "GojiPattern": "/user_event/:event_type", "Header.Content-Type": "["application/json"]", "Header.Cookie": "["_ga=GA1.2.2033006133.1516389900;", "Header.User-Agent": "["Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1)…”]”, "Host": "127.0.0.1:8080", "IsXHR": true, "Method": "POST", "RequestURI": "/user_event/page-unload", "ResponseContentLength": 443, "ResponseHttpStatus": 200, "ResponseTime_ms": 123, "Timestamp": "2018-03-02T06:14:57.206349701Z", "UserEmail": "nathan@honeycomb.io", "UserID": 18, "availability_zone": "us-east-1b", "build_id": "6552", "env": "dogfood", "infra_type": "aws_instance", "instance_type": "t2.micro", "memory_inuse": 15450056, "num_goroutines": 56, "request_id": "poodle-a38f5e39/5fIUGkX5D1-001814", "server_hostname": "poodle-a38f5e39", "type": "request" },
  • 26. High cardinality Fields that may have many unique values Common examples: • email address • username / user id / team id • server hostname • IP address • user agent string • build id • request url • feature flags / flag combinations
  • 27. What about the Three Pillars? Logs Metrics Traces 207.46.1.2 - [03/Nov/2016:16:11:43 -0700] ”GET /robots.txt HTTP/1.1"
  • 28. Events { “type”: “db.select”, “duration”: 23, “host”: “poodle-437987”, “query_shape”: “SELECT * FROM teams WHERE id = ?”, } Derive all Three Pillars from Events
  • 29. Derive all Three Pillars from Events 1 (structured) log line ~= 1 event
 metrics can be derived from events
 traces = n events (spans) with parent/child relationships
  • 31. Derive all Three Pillars from Events 1 (structured) log line ~= 1 event
 metrics can be derived from events
 traces = n events (spans) with parent/child relationships
  • 32. Wait, maybe you should just use Tracing?
  • 34. Distributed Tracing … in the Browser bit.ly/hawks-vs-falcons
  • 35. Simple trace: just load a page
  • 36. When we create events (spans) • On page load • On history state change (SPA navigation) • On significant user actions • On error (also send to error monitoring tools) • On page unload
  • 37. What’s in an event? { // For the page load event, collect information about the page “type”: “page-load”, “duration”: “1278”, “device_type”: “tablet”, “connection_type”: “3g”, “user_agent”: “Mozilla/5.0 (Macintosh)…”, // ...all feature flag states // ...all navigation timing measurements } { // For the button click, collect information about the interaction “type”: “usage-mode-button-click”, “duration”: “28”, “location”: “dataset list”, “animation_render_duration”: “127”, }
  • 39. Complicated trace: lots of user interaction
  • 40. Hawks vs. Falcons Network Tools (single view, exportable as HAR) Distributed trace for the same page view (RUM data)
  • 41. What’s next? Measuring React renders! bit.ly/hawks-vs-falcons
  • 42. 3. SLOs vs. performance budgets
 How to make sure we’re optimizing what really matters
  • 46. Service Level Objectives (SLOs) bit.ly/hawks-vs-falcons
  • 47. SLOs, SLIs, SLAs For each facet of system performance (latency, errors, etc.) ask: • SLI: Service Level Indicator — what do we measure? ○ response time of web app requests • SLA: Service Level Agreement — what did we promise our customers? ○ response time will be under 10 seconds, 99% of the time • SLO: Service Level Objective — what number would keep our users happy? ○ response time should be under 1 second, 99.9% of the time
  • 49. Two tools, different superpowers Performance Budgets: " Many easy ways to get started " Great tooling support (webpack, lighthouse) " Easy to understand " Business stakeholders might not care SLOs (Service Level Objectives): " Extremely flexible—use any # you measure! " Get burn alerts when your budget runs low " Read multiple book chapters to understand " You get business stakeholder buy-in up front
  • 50. 5. Observability for Perf Optimization
 Using observability to make things faster
  • 52. Secure Tenancy product architecture
  • 53. Observability for Perf Optimization It’s slow for one team only on the secure architecture
  • 56. High-performance browser instrumentation code: 1. Batch requests together so you don’t run down battery & use up resources 2. Use the Beacon API to send events in a non-blocking way 3. Use `requestIdleCallback` or `setTimeout` to handle slower calculations Don’t shoot yourself in the foot
 while trying to look at your own foot
  • 61. 5. Observability for UX Design
 Using observability to drive design
  • 62. Using observability to drive design
  • 63. Using observability to drive design
  • 64. Using observability to drive design
  • 65. Using observability to drive design
  • 66. Using observability to drive design
  • 67. Using observability to drive design
  • 68. Using observability to drive design
  • 69. We’re all product engineers now!
  • 70. How to tell a hawk from a falcon Red-Tailed Hawk @hmclin | https://www.flickr.com/photos/hmclin/14119319574 Peregrine Falcon @zonotrichia | https://www.flickr.com/photos/zonotrichia/31001823086