SlideShare a Scribd company logo
Observing Personal Customer
Experiences 

at T-Mobile
Calum Lawler, Michael Mitchell, Jon Soini
Come work with us!
t-mobile.com/careers
@tmobilecareers
Grab one of us after the
talk, and let’s chat about
the cool stuff you’re
doing with Elastic...
! Hello!
We’re Jon, Calum, and Mike from the Product & Technology
group.
How we care for our chat customers, our app customers,
and our internal customers using the Elastic stack:
" Customer Care via Text & Social (Calum)
" Remote Device App Testing with Raspberry Pis (Mike)
" Sharing Beyond ‘Dashboards’... or Canvas 201 (Jon)
👉
Caring for millions
Customer Care via Text & Social
Calum Lawler
Sr Engineer, Software
" 4 years at T-Mobile
" ~3 years using Elastic
" Background in embedded systems
" Lead Engineer for two SMPD teams 

(Social Messaging Platform Development)
@semtake
Social Messaging
Allows customers to interact with Care
asynchronously
○ Almost a million messages per day 
Multiple channels supported:
○ T-Mobile app on phone, chat on t-
mobile.com, Twitter (@tmobile), Facebook
(Tmobile), Apple Business Chat
Almost all issues can be solved over chat
○ Bill issues, new lines, plan changes
○ more...
“Social Messaging needs Monitoring…”
“If you could go ahead and make
dashboards and alerts and alarms
and predictions, that'd be great...”
What do we Care about?
Time To First Response
" Time from message arrival to first (non-bot) response - shorter is better
Time In Queue
" Time the message was in the queue, waiting to be assigned to an
Agent - shorter is better
Assignment to Response
" Time from assignment to an Agent to their response - shorter is better
etc…
Metrics, Conversations...
Need to calculate my own metrics from the conversations…
1. Get conversations from REST API
2. Compute a bunch of metrics
3. POST directly into Elasticsearch
4. Rinse, repeat
Sounds like a Lambda...
Do it with Python!
Use the Elasticsearch Client:
from elasticsearch import Elasticsearch
- Use a Template in Kibana
- Create a doc with the data
- Monthly indices
- POST!
# Send data to elastic...
# Create the index (if it doesn't exist)...
now = datetime.now(pytz.utc)
indexStr = INDEX + str(now.year) + "_" +
str(now.month)
try:
es.indices.create(index=indexStr)
except Exception as err:
logger.info(err)
# POST the data...
try:
res = es.index(index=indexStr,
doc_type='group_msg_int', body=doc3)
except Exception as err:
logger.error(err)
Why Elastic?
Speed!!!
We use TTFR metric to route conversations to appropriate TEX center
Routing service needs to know TTFR for a center quickly in order to route to
unloaded centers
Elasticsearch response times (<100 ms) make this possible
Dashboards!
Dashboards!
Dashboards in Action!
Machine Learning!
Out of expected range - send an Alert
to Slack!
Future
" Watch conversations to enable real-time
sentiment analysis
" Build amazing visualizations in Canvas
" More application performance monitoring for
SMPD services
Remote Device Testing with Raspberry Pis
Michael Mitchell
Principal Software Engineer
" 4 years at T-Mobile
" 2 years using Elastic 
" Tech Lead for CX Lab (Customer
Experience Lab)
" Telemetry, Observability, IoT, Mad Science
@michaeljmitc
hel
About Customer Experience (CX) Lab
" Telemetry, Monitoring, and Observability
" Web properties
○ t-mobile.com, my.t-mobile.com, metropcs.com
" Android/iOS apps
○ T-Mobile app, T-Mobile Tuesdays, MetroPCS app
" Customer care/retail experience support
○ iPad, Messaging/Social integrations
" IoT & emerging digital
○ T|Vision, Home Internet, SyncUp Drive/Pets
Problem: Real Device Testing is Necessary
Emulators limited (for us, especially), need support for:
" Functional, performance, & availability
" Android & iOS operating systems
" Native & web experiences
" Authentic network, SIM support, etc.
" Support for all major testing frameworks
Problem: Remote Device Access is Hard
Partners around the world need manual 

and automated device access:
○ Real hardware devices
○ On the T-Mobile network
○ Dark/unreleased devices
Logistics are complicated
○ Shipping coordination
○ Device firmware updates
○ Microcells don’t represent T-Mo network
○ Security/legal risks for unreleased hardware
Real Problem: Phones to Cloud
" Piles of phones to test
" No USB cables long enough
Photo by Samuel Zeller on Unsplash
Early Prototypes and POCs
" Vendor solutions lacking
○ Limited cell/SIM support, delay on new
devices, performance, cost, etc.
" Open-source awesome
○ Open Smartphone Test Farm (OpenSTF)
○ Appium/Selenium Grid
" Hardware options
○ Off-the-self servers, 4x4 Intel NUCs
○ Early on-prem POCs OK, cloud was harder
○ Problems with USB hubs, endpoint
saturation
What about ARM?
T-Mobile and Elastic
T-Mobile and Elastic
Production Raspberry Pi!
" Golang on ARM is great
" Elastic Beats on ARM are great
" Containers on ARM work great 

(beware arch-mismatch)
" Stable automation platform
○ Graceful degradation, rolling reboots
○ Super-fast provision, flash SD card
○ Exactly 1 hardware failure 

(self-inflicted 12V magenta LEDs)
CX Lab Device Matrix: 

Unified Device Automation
Real-time Remote Access & Logging
Device Matrix Monitoring with Elastic Stack
Raspberry Pis
Problem: Dynamic Content is Hard
" T-Mobile app provides very custom user
experience
" More dynamic UX == harder testing
" Enterprise complexity: client/server/content/
platform teams
○ Microservices, routing, DNS, certs, firewalls, IDS, zero-
rating
" Account & environment challenges
" Changes happen all the time, CI/CD!
Real-time Synthetic Monitoring
T-Mobile and Elastic
T-Mobile and Elastic
T-Mobile and Elastic
Machine Learning: Auto Detection & Alerting 
T-Mobile CX Lab + Elastic Stack
" Elastic stack critical part of success
○ Service/feature offering and ops perspectives
" Key enablement:
○ Devs and QA can access/filter/alert device logs in real time
○ Metrics, monitoring, alerting for service performance & availability
○ Self-health monitoring of lab devices, providers, & backend
○ Dynamic, targeted visualizations with Canvas
Sharing your Elastic insights & moving
beyond ‘Dashboards’... or Canvas 201
Hi, I’m Jon Soini
Principal Technology Product Manager
" ~ 4 yrs using Elastic stack
" Worked w/ frontline customer care apps,
the T-Mobile app, IoT hardware projects
" ❤ ’s great ux, elk, data viz, R&D, search, 

mobile/IoT compute, design anything
" Could give the talk: 

How not to run an Elastic cluster
@soini
So...you’ve got data! It’s in Elastic! Hooray!
But...
Your target audience for your viz doesn’t
want to actually use a dashboard
OR
You’ve got to get your insights to a
passive monitor (lobby, operations wall,
digital signage…) where it needs to
look good
Let’s look at Canvas
Where traditional viz’s are
canned & configurable,
Canvas starts blank, and
lets you meld it to your
liking.
...daunting
Photo by Fabrizio Conti on Unsplash
Starting w/ a gauge
Take the existing gauge
widget…

a few issues:
" Smaller scales omit the
value!
" Number formatting limited
" Colors are hard-coded
" Metric itself not color coded
" Hard to change on the fly
A simple gauge in Canvas - SQL
filters
| essql query="

SELECT AVG(launch_duration) as duration_s 

FROM "tmoapp*" 

WHERE launch_result='pass' 

AND device_platform='Android' 

AND timestamp > NOW() - INTERVAL 60
MINUTES"
A simple gauge in Canvas - formatting
| math "duration_s"
| progress shape="semicircle" 

label={formatnumber "0,0.00"} font={font 

family="Tele-GroteskUlt, 'Open Sans', 

sans-serif" size=36 align="center" 

... weight="normal" 

underline=false italic=false} max=10
A simple gauge in Canvas - switch statement
valueColor=

{switch 

case={case if={all {gt 2} {lte 6}} 

then="yellow"} 

case={case if={gte 6} then="red"} 

default="green"} 

barColor="#BBBBBB"
| render containerStyle={containerStyle}
Drawing the rest of the owl
Canvas 201 - Time
Date 

| math "value - 25200000" 

| formatdate "h:mm a" 

| markdown "" {context} font={font
family="Tele-GroteskUlt, 'Open
Sans', sans-serif" size=20
align="left" color="#000000"
underline=false italic=false}

| render
Canvas 201 - Histograms
SELECT HISTOGRAM(timestamp, INTERVAL 60
SECONDS)
AS histogram,
AVG(duration)/1000000 AS duration
FROM "tmoapp_analytics-*"
WHERE event_type='card_load'
AND endpoint='{someurl.com}/card/group/
Account'
AND timestamp > NOW() - INTERVAL 180 MINUTES
AND timestamp <= NOW()
GROUP BY histogram LIMIT 180
Canvas 201 - Imagery
It’s a true canvas with Z-
ordering, support for
transparent PNGs,
animated GIFs, go wild!
Also – images can be
loaded from any URL/
CDN, use to pull in
dynamic imagery!
Canvas 201 - Text Inserts
Filters

| essql query="SELECT summary.up,
count(distinct url.domain) as count
FROM "heartbeat*" where
"@timestamp" > now() - interval 15
minute group by summary.up"
| markdown "Yo dawg, " {getCell
"count" row=1} " services are online,
and sadly ” {getCell "count" row=0} "
are offline.”
Canvas 201 - Conditionals
filters |
<<some data source>>|
head |
getCell "my_apps_status" |
if {compare eq to="healthy"} then="healthy-asset-guid" else={
if {compare eq to="unhealthy"} then="unhealhty-asset-guid" else={
if {compare eq to="unknown"} then="idontknow-asset-guid" else="fallback-asset-guid"
...
CONDITIONAL
BANNER BASED ON
SEARCH
Jon’s Canvas Tips
" Work out your SQL queries in the Dev Console first!
" Download your workpad JSON as you go, store in version control
" Optimize your images ~1080p res
" Build one element fully, then clone
" Group/ungroup elements with G and U keys
" Tons of great examples on the Elastic Blog
" Alex Francoeur’s examples on GitHub

https://github.com/alexfrancoeur/kibana_canvas_examples
A few example canvases
T-Mobile and Elastic
T-Mobile and Elastic
T-Mobile and Elastic
T-Mobile and Elastic
T-Mobile and Elastic
T-Mobile and Elastic
Enterprise DashboarD
Live long and prosper.
" Come talk to us at the AMA booth!
" Or find anyone with a T-Mobile t-shirt!
" Slides & notes: https://github.com/tmobile/
elastic-demos
@soini @semtake @michaeljmitchel
T-Mobile and Elastic

More Related Content

PDF
How KeyBank Used Elastic to Build an Enterprise Monitoring Solution
PDF
Migrating a legacy logging system: Etsy’s journey to Elastic Cloud
PDF
Machine Learning for Anomaly Detection, Time Series Modeling, and More
PDF
InfoTrack: Creating a single source of truth with the Elastic Stack
PDF
BDX 2016 - Kevin lyons & yakir buskilla @ eXelate
PDF
Elastic at Procter & Gamble: A Network Story
PDF
Power Your Delta Lake with Streaming Transactional Changes
PPTX
Real-Time Geospatial Intelligence at Scale
How KeyBank Used Elastic to Build an Enterprise Monitoring Solution
Migrating a legacy logging system: Etsy’s journey to Elastic Cloud
Machine Learning for Anomaly Detection, Time Series Modeling, and More
InfoTrack: Creating a single source of truth with the Elastic Stack
BDX 2016 - Kevin lyons & yakir buskilla @ eXelate
Elastic at Procter & Gamble: A Network Story
Power Your Delta Lake with Streaming Transactional Changes
Real-Time Geospatial Intelligence at Scale

What's hot (20)

PPTX
Big Data Day LA 2016/ Data Science Track - The Evolving Data Science Landscap...
PPTX
Getting It Right Exactly Once: Principles for Streaming Architectures
PDF
Machine Learning Deep Dive
PPTX
Big Data Berlin v8.0 Stream Processing with Apache Apex
PDF
Industrial production process visualization with the Elastic Stack in real-ti...
PPTX
Migrating Big Data Workloads to the Cloud
PDF
Using Azure Databricks, Structured Streaming, and Deep Learning Pipelines to ...
PPTX
Zero Downtime App Deployment using Hadoop
PPTX
Azure stream analytics by Nico Jacobs
PDF
Building the Next-gen Digital Meter Platform for Fluvius
PDF
Capgemini: Observability within the Dutch government
PPTX
James Corcoran, Head of Engineering EMEA, First Derivatives, "Simplifying Bi...
PDF
Leveraging Spark to Democratize Data for Omni-Commerce with Shafaq Abdullah
PDF
Logging, Metrics, and APM: The Operations Trifecta
PDF
Saving Energy in Homes with a Unified Approach to Data and AI
PPTX
Internet of Things and Multi-model Data Infrastructure
PDF
American Ancestors Use Case - Scalability & Support Using the Elasticsearch S...
PDF
Managing Cassandra Databases with OpenStack Trove
PDF
End of the Myth: Ultra-Scalable Transactional Management by Ricardo Jiménez-P...
PDF
Streaming Customer Insights with DataStax Cassandra & Apache Kafta at British...
Big Data Day LA 2016/ Data Science Track - The Evolving Data Science Landscap...
Getting It Right Exactly Once: Principles for Streaming Architectures
Machine Learning Deep Dive
Big Data Berlin v8.0 Stream Processing with Apache Apex
Industrial production process visualization with the Elastic Stack in real-ti...
Migrating Big Data Workloads to the Cloud
Using Azure Databricks, Structured Streaming, and Deep Learning Pipelines to ...
Zero Downtime App Deployment using Hadoop
Azure stream analytics by Nico Jacobs
Building the Next-gen Digital Meter Platform for Fluvius
Capgemini: Observability within the Dutch government
James Corcoran, Head of Engineering EMEA, First Derivatives, "Simplifying Bi...
Leveraging Spark to Democratize Data for Omni-Commerce with Shafaq Abdullah
Logging, Metrics, and APM: The Operations Trifecta
Saving Energy in Homes with a Unified Approach to Data and AI
Internet of Things and Multi-model Data Infrastructure
American Ancestors Use Case - Scalability & Support Using the Elasticsearch S...
Managing Cassandra Databases with OpenStack Trove
End of the Myth: Ultra-Scalable Transactional Management by Ricardo Jiménez-P...
Streaming Customer Insights with DataStax Cassandra & Apache Kafta at British...
Ad

Similar to T-Mobile and Elastic (20)

PDF
Adience - Turning low level behavioural signals into user profiles
PDF
Meetup 2016 01 - turning low level behavioural signals into user profiles
PDF
03-NOV-1510-Ognjen-Antonic-Telemach-stream-1
PDF
A Data-Driven Approach for Mobile Testing and Automation
PPTX
ELK Solutions Enablement Session - 17th March'2020
PDF
Big Trouble in Little Networks, new and improved
PPTX
Skeuomorphs, Databases, and Mobile Performance
PPTX
Skeuomorphs, Databases, and Mobile Performance
PDF
Building great website search experiences
PPTX
Apps, APIs & Analytics: What "Mobile First" Really Means
PDF
UI Dev in Big data world using open source
PPTX
The Essentials of Mobile App Performance Testing and Monitoring
PDF
Beyond Traditional Mobile Testing
PPT
A web perf dashboard up & running in 90 minutes presentation
PDF
AppSphere 15 - Achieving Stability and End-to-End Monitoring
PDF
elasticsearch X react
PPT
API Architecture Summit 2014- APIs: A Mobile Developer's Perspective
PDF
Testing Without Waste - Automatic Testing
PDF
Word Press at Scale - WordCamp Minneapolis
PPTX
Big Data and User Segmentation in Mobile Context
Adience - Turning low level behavioural signals into user profiles
Meetup 2016 01 - turning low level behavioural signals into user profiles
03-NOV-1510-Ognjen-Antonic-Telemach-stream-1
A Data-Driven Approach for Mobile Testing and Automation
ELK Solutions Enablement Session - 17th March'2020
Big Trouble in Little Networks, new and improved
Skeuomorphs, Databases, and Mobile Performance
Skeuomorphs, Databases, and Mobile Performance
Building great website search experiences
Apps, APIs & Analytics: What "Mobile First" Really Means
UI Dev in Big data world using open source
The Essentials of Mobile App Performance Testing and Monitoring
Beyond Traditional Mobile Testing
A web perf dashboard up & running in 90 minutes presentation
AppSphere 15 - Achieving Stability and End-to-End Monitoring
elasticsearch X react
API Architecture Summit 2014- APIs: A Mobile Developer's Perspective
Testing Without Waste - Automatic Testing
Word Press at Scale - WordCamp Minneapolis
Big Data and User Segmentation in Mobile Context
Ad

More from Elasticsearch (20)

PDF
An introduction to Elasticsearch's advanced relevance ranking toolbox
PDF
From MSP to MSSP using Elastic
PDF
Cómo crear excelentes experiencias de búsqueda en sitios web
PDF
Te damos la bienvenida a una nueva forma de realizar búsquedas
PDF
Tirez pleinement parti d'Elastic grâce à Elastic Cloud
PDF
Comment transformer vos données en informations exploitables
PDF
Plongez au cœur de la recherche dans tous ses états.
PDF
Modernising One Legal Se@rch with Elastic Enterprise Search [Customer Story]
PDF
An introduction to Elasticsearch's advanced relevance ranking toolbox
PDF
Welcome to a new state of find
PDF
Keynote: Harnessing the power of Elasticsearch for simplified search
PDF
Cómo transformar los datos en análisis con los que tomar decisiones
PDF
Explore relève les défis Big Data avec Elastic Cloud
PDF
Comment transformer vos données en informations exploitables
PDF
Transforming data into actionable insights
PDF
Opening Keynote: Why Elastic?
PDF
Empowering agencies using Elastic as a Service inside Government
PDF
The opportunities and challenges of data for public good
PDF
Enterprise search and unstructured data with CGI and Elastic
PDF
What's new at Elastic: Update on major initiatives and releases
An introduction to Elasticsearch's advanced relevance ranking toolbox
From MSP to MSSP using Elastic
Cómo crear excelentes experiencias de búsqueda en sitios web
Te damos la bienvenida a una nueva forma de realizar búsquedas
Tirez pleinement parti d'Elastic grâce à Elastic Cloud
Comment transformer vos données en informations exploitables
Plongez au cœur de la recherche dans tous ses états.
Modernising One Legal Se@rch with Elastic Enterprise Search [Customer Story]
An introduction to Elasticsearch's advanced relevance ranking toolbox
Welcome to a new state of find
Keynote: Harnessing the power of Elasticsearch for simplified search
Cómo transformar los datos en análisis con los que tomar decisiones
Explore relève les défis Big Data avec Elastic Cloud
Comment transformer vos données en informations exploitables
Transforming data into actionable insights
Opening Keynote: Why Elastic?
Empowering agencies using Elastic as a Service inside Government
The opportunities and challenges of data for public good
Enterprise search and unstructured data with CGI and Elastic
What's new at Elastic: Update on major initiatives and releases

Recently uploaded (20)

PDF
Approach and Philosophy of On baking technology
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
Spectral efficient network and resource selection model in 5G networks
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Encapsulation theory and applications.pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Big Data Technologies - Introduction.pptx
PPTX
Cloud computing and distributed systems.
PDF
Chapter 3 Spatial Domain Image Processing.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPT
Teaching material agriculture food technology
PDF
Machine learning based COVID-19 study performance prediction
Approach and Philosophy of On baking technology
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Empathic Computing: Creating Shared Understanding
Spectral efficient network and resource selection model in 5G networks
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
NewMind AI Weekly Chronicles - August'25 Week I
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Encapsulation theory and applications.pdf
MYSQL Presentation for SQL database connectivity
Review of recent advances in non-invasive hemoglobin estimation
Understanding_Digital_Forensics_Presentation.pptx
Big Data Technologies - Introduction.pptx
Cloud computing and distributed systems.
Chapter 3 Spatial Domain Image Processing.pdf
The AUB Centre for AI in Media Proposal.docx
Dropbox Q2 2025 Financial Results & Investor Presentation
Teaching material agriculture food technology
Machine learning based COVID-19 study performance prediction

T-Mobile and Elastic

  • 1. Observing Personal Customer Experiences 
 at T-Mobile Calum Lawler, Michael Mitchell, Jon Soini
  • 2. Come work with us! t-mobile.com/careers @tmobilecareers Grab one of us after the talk, and let’s chat about the cool stuff you’re doing with Elastic...
  • 3. ! Hello! We’re Jon, Calum, and Mike from the Product & Technology group. How we care for our chat customers, our app customers, and our internal customers using the Elastic stack: " Customer Care via Text & Social (Calum) " Remote Device App Testing with Raspberry Pis (Mike) " Sharing Beyond ‘Dashboards’... or Canvas 201 (Jon) 👉
  • 5. Customer Care via Text & Social
  • 6. Calum Lawler Sr Engineer, Software " 4 years at T-Mobile " ~3 years using Elastic " Background in embedded systems " Lead Engineer for two SMPD teams 
 (Social Messaging Platform Development) @semtake
  • 7. Social Messaging Allows customers to interact with Care asynchronously ○ Almost a million messages per day  Multiple channels supported: ○ T-Mobile app on phone, chat on t- mobile.com, Twitter (@tmobile), Facebook (Tmobile), Apple Business Chat Almost all issues can be solved over chat ○ Bill issues, new lines, plan changes ○ more...
  • 8. “Social Messaging needs Monitoring…” “If you could go ahead and make dashboards and alerts and alarms and predictions, that'd be great...”
  • 9. What do we Care about? Time To First Response " Time from message arrival to first (non-bot) response - shorter is better Time In Queue " Time the message was in the queue, waiting to be assigned to an Agent - shorter is better Assignment to Response " Time from assignment to an Agent to their response - shorter is better etc…
  • 10. Metrics, Conversations... Need to calculate my own metrics from the conversations… 1. Get conversations from REST API 2. Compute a bunch of metrics 3. POST directly into Elasticsearch 4. Rinse, repeat Sounds like a Lambda...
  • 11. Do it with Python! Use the Elasticsearch Client: from elasticsearch import Elasticsearch - Use a Template in Kibana - Create a doc with the data - Monthly indices - POST! # Send data to elastic... # Create the index (if it doesn't exist)... now = datetime.now(pytz.utc) indexStr = INDEX + str(now.year) + "_" + str(now.month) try: es.indices.create(index=indexStr) except Exception as err: logger.info(err) # POST the data... try: res = es.index(index=indexStr, doc_type='group_msg_int', body=doc3) except Exception as err: logger.error(err)
  • 12. Why Elastic? Speed!!! We use TTFR metric to route conversations to appropriate TEX center Routing service needs to know TTFR for a center quickly in order to route to unloaded centers Elasticsearch response times (<100 ms) make this possible
  • 16. Machine Learning! Out of expected range - send an Alert to Slack!
  • 17. Future " Watch conversations to enable real-time sentiment analysis " Build amazing visualizations in Canvas " More application performance monitoring for SMPD services
  • 18. Remote Device Testing with Raspberry Pis
  • 19. Michael Mitchell Principal Software Engineer " 4 years at T-Mobile " 2 years using Elastic  " Tech Lead for CX Lab (Customer Experience Lab) " Telemetry, Observability, IoT, Mad Science @michaeljmitc hel
  • 20. About Customer Experience (CX) Lab " Telemetry, Monitoring, and Observability " Web properties ○ t-mobile.com, my.t-mobile.com, metropcs.com " Android/iOS apps ○ T-Mobile app, T-Mobile Tuesdays, MetroPCS app " Customer care/retail experience support ○ iPad, Messaging/Social integrations " IoT & emerging digital ○ T|Vision, Home Internet, SyncUp Drive/Pets
  • 21. Problem: Real Device Testing is Necessary Emulators limited (for us, especially), need support for: " Functional, performance, & availability " Android & iOS operating systems " Native & web experiences " Authentic network, SIM support, etc. " Support for all major testing frameworks
  • 22. Problem: Remote Device Access is Hard Partners around the world need manual 
 and automated device access: ○ Real hardware devices ○ On the T-Mobile network ○ Dark/unreleased devices Logistics are complicated ○ Shipping coordination ○ Device firmware updates ○ Microcells don’t represent T-Mo network ○ Security/legal risks for unreleased hardware
  • 23. Real Problem: Phones to Cloud " Piles of phones to test " No USB cables long enough Photo by Samuel Zeller on Unsplash
  • 24. Early Prototypes and POCs " Vendor solutions lacking ○ Limited cell/SIM support, delay on new devices, performance, cost, etc. " Open-source awesome ○ Open Smartphone Test Farm (OpenSTF) ○ Appium/Selenium Grid " Hardware options ○ Off-the-self servers, 4x4 Intel NUCs ○ Early on-prem POCs OK, cloud was harder ○ Problems with USB hubs, endpoint saturation
  • 28. Production Raspberry Pi! " Golang on ARM is great " Elastic Beats on ARM are great " Containers on ARM work great 
 (beware arch-mismatch) " Stable automation platform ○ Graceful degradation, rolling reboots ○ Super-fast provision, flash SD card ○ Exactly 1 hardware failure 
 (self-inflicted 12V magenta LEDs)
  • 29. CX Lab Device Matrix: 
 Unified Device Automation
  • 31. Device Matrix Monitoring with Elastic Stack Raspberry Pis
  • 32. Problem: Dynamic Content is Hard " T-Mobile app provides very custom user experience " More dynamic UX == harder testing " Enterprise complexity: client/server/content/ platform teams ○ Microservices, routing, DNS, certs, firewalls, IDS, zero- rating " Account & environment challenges " Changes happen all the time, CI/CD!
  • 37. Machine Learning: Auto Detection & Alerting 
  • 38. T-Mobile CX Lab + Elastic Stack " Elastic stack critical part of success ○ Service/feature offering and ops perspectives " Key enablement: ○ Devs and QA can access/filter/alert device logs in real time ○ Metrics, monitoring, alerting for service performance & availability ○ Self-health monitoring of lab devices, providers, & backend ○ Dynamic, targeted visualizations with Canvas
  • 39. Sharing your Elastic insights & moving beyond ‘Dashboards’... or Canvas 201
  • 40. Hi, I’m Jon Soini Principal Technology Product Manager " ~ 4 yrs using Elastic stack " Worked w/ frontline customer care apps, the T-Mobile app, IoT hardware projects " ❤ ’s great ux, elk, data viz, R&D, search, 
 mobile/IoT compute, design anything " Could give the talk: 
 How not to run an Elastic cluster @soini
  • 41. So...you’ve got data! It’s in Elastic! Hooray! But... Your target audience for your viz doesn’t want to actually use a dashboard OR You’ve got to get your insights to a passive monitor (lobby, operations wall, digital signage…) where it needs to look good
  • 42. Let’s look at Canvas Where traditional viz’s are canned & configurable, Canvas starts blank, and lets you meld it to your liking. ...daunting Photo by Fabrizio Conti on Unsplash
  • 43. Starting w/ a gauge Take the existing gauge widget…
 a few issues: " Smaller scales omit the value! " Number formatting limited " Colors are hard-coded " Metric itself not color coded " Hard to change on the fly
  • 44. A simple gauge in Canvas - SQL filters | essql query="
 SELECT AVG(launch_duration) as duration_s 
 FROM "tmoapp*" 
 WHERE launch_result='pass' 
 AND device_platform='Android' 
 AND timestamp > NOW() - INTERVAL 60 MINUTES"
  • 45. A simple gauge in Canvas - formatting | math "duration_s" | progress shape="semicircle" 
 label={formatnumber "0,0.00"} font={font 
 family="Tele-GroteskUlt, 'Open Sans', 
 sans-serif" size=36 align="center" 
 ... weight="normal" 
 underline=false italic=false} max=10
  • 46. A simple gauge in Canvas - switch statement valueColor=
 {switch 
 case={case if={all {gt 2} {lte 6}} 
 then="yellow"} 
 case={case if={gte 6} then="red"} 
 default="green"} 
 barColor="#BBBBBB" | render containerStyle={containerStyle}
  • 47. Drawing the rest of the owl
  • 48. Canvas 201 - Time Date 
 | math "value - 25200000" 
 | formatdate "h:mm a" 
 | markdown "" {context} font={font family="Tele-GroteskUlt, 'Open Sans', sans-serif" size=20 align="left" color="#000000" underline=false italic=false}
 | render
  • 49. Canvas 201 - Histograms SELECT HISTOGRAM(timestamp, INTERVAL 60 SECONDS) AS histogram, AVG(duration)/1000000 AS duration FROM "tmoapp_analytics-*" WHERE event_type='card_load' AND endpoint='{someurl.com}/card/group/ Account' AND timestamp > NOW() - INTERVAL 180 MINUTES AND timestamp <= NOW() GROUP BY histogram LIMIT 180
  • 50. Canvas 201 - Imagery It’s a true canvas with Z- ordering, support for transparent PNGs, animated GIFs, go wild! Also – images can be loaded from any URL/ CDN, use to pull in dynamic imagery!
  • 51. Canvas 201 - Text Inserts Filters
 | essql query="SELECT summary.up, count(distinct url.domain) as count FROM "heartbeat*" where "@timestamp" > now() - interval 15 minute group by summary.up" | markdown "Yo dawg, " {getCell "count" row=1} " services are online, and sadly ” {getCell "count" row=0} " are offline.”
  • 52. Canvas 201 - Conditionals filters | <<some data source>>| head | getCell "my_apps_status" | if {compare eq to="healthy"} then="healthy-asset-guid" else={ if {compare eq to="unhealthy"} then="unhealhty-asset-guid" else={ if {compare eq to="unknown"} then="idontknow-asset-guid" else="fallback-asset-guid" ... CONDITIONAL BANNER BASED ON SEARCH
  • 53. Jon’s Canvas Tips " Work out your SQL queries in the Dev Console first! " Download your workpad JSON as you go, store in version control " Optimize your images ~1080p res " Build one element fully, then clone " Group/ungroup elements with G and U keys " Tons of great examples on the Elastic Blog " Alex Francoeur’s examples on GitHub
 https://github.com/alexfrancoeur/kibana_canvas_examples
  • 54. A few example canvases
  • 62. Live long and prosper. " Come talk to us at the AMA booth! " Or find anyone with a T-Mobile t-shirt! " Slides & notes: https://github.com/tmobile/ elastic-demos @soini @semtake @michaeljmitchel