Slide 1

Slide 1 text

Elastic February 28, 2018 @makwarth @roncohen APM with the Elastic Stack Rasmus Makwarth, Director of Product Management, APM
 Ron Cohen, Tech Lead, APM

Slide 2

Slide 2 text

No content

Slide 3

Slide 3 text

What is APM?

Slide 4

Slide 4 text

{ } Application Performance Monitoring 
 (and management) of
 performance and availability of 
 software applications

Slide 5

Slide 5 text

{ } APM helps IT and developers monitor the application layer of the stack and the end-user experience

Slide 6

Slide 6 text

08:32:17 Response “/api/products/top 200 OK” 08:32:10 Request “/api/products/top” 7 seconds - zzZZzzZz Client Service Problem

Slide 7

Slide 7 text

08:32:17 Response “/api/checkout 500 ERROR” 08:32:10 Request “/api/checkout” Client Service Problem

Slide 8

Slide 8 text

Client
 (Browser) Service APM agent APM agents Agents are libraries in your applications

Slide 9

Slide 9 text

Trace Transaction Cache Database Ext request HTTP Request GET /api/products/top Response Service APM 0s 7s 3.5s Timeline

Slide 10

Slide 10 text

Transaction Cache Database Ext req Transaction Function Transaction Database Trace Service APM A trace can span multiple services GET /api/products/top

Slide 11

Slide 11 text

ServiceA Ext
 service ServiceB ServiceC SLOW OK OK APM APM APM Trace Distributed tracing GET /api/products/top

Slide 12

Slide 12 text

Data storage Data processor Agent data ServiceA Ext
 service ServiceB ServiceC SLOW OK OK APM APM APM

Slide 13

Slide 13 text

• Understand performance 
 impact of code changes • Be proactive • Resolve issues faster

Slide 14

Slide 14 text

Introducing Elastic APM

Slide 15

Slide 15 text

15

Slide 16

Slide 16 text

16 Full-stack monitoring with Elastic APM adds end-user experience and application-level monitoring to the stack

Slide 17

Slide 17 text

Setup 17

Slide 18

Slide 18 text

Demo!

Slide 19

Slide 19 text

Real User Monitoring (RUM)

Slide 20

Slide 20 text

08:32:11 Server response “/api/products/top 200 OK” Client Service 08:32:17 Browser: Time To Interaction 5 seconds 08:32:10 Browser: Request “GET /api/products/top”

Slide 21

Slide 21 text

21 Actual end-user experience can only be measured in the client

Slide 22

Slide 22 text

22 Time To Interaction: 17 secs

Slide 23

Slide 23 text

Simple Agenda (Arial 80 pt) 23 Subtitle

Slide 24

Slide 24 text

Client
 (Browser) Service APM agent RUM agent

Slide 25

Slide 25 text

ServiceA GET /order-coffee Ext. service ServiceB ServiceC APM APM APM Trace Browser RUM

Slide 26

Slide 26 text

Demo!

Slide 27

Slide 27 text

27 Browser breakdown (AMER) 1 2 3 4 5 Browser breakdown (APAC) 1 2 3 4 5

Slide 28

Slide 28 text

RUM: Going beyond the initial page load 28 WIP • Route changes (Single-page apps)
 • Interactions
 • Performance marks

Slide 29

Slide 29 text

29 // Usage: performance.mark(name) // The mark() method creates a timestamp in the // browser’s performance entry buffer with the given name. // The application defined timestamp can be retrieved by // one of the Performance interface's getEntries*() methods. performance.mark(heroBannerShown) User defined performance marks WIP

Slide 30

Slide 30 text

30

Slide 31

Slide 31 text

• Distributed tracing • Machine Learning integration • More agents • Watcher integration

Slide 32

Slide 32 text

No content

Slide 33

Slide 33 text

Licensing

Slide 34

Slide 34 text

34

Slide 35

Slide 35 text

Open source APM 35 basic (free)

Slide 36

Slide 36 text

36 Supported agents • Node.js • Python • Ruby
 • RUM (Alpha) • Java (WIP) • Golang (WIP)

Slide 37

Slide 37 text

Our agents automatically instrument certain parts of the code, like database drivers, cache calls, template rendering, external HTTP requests, and more.
 The agents are developed and maintained by our dedicated teams of language experts. Elastic APM agents have built-in instrumentation 37 Subtitle import elasticapm @elasticapm.capture_span() def coffee_maker(strength): fetch_water() with elasticapm.capture_span(‘near-to-machine’): insert_filter()

Slide 38

Slide 38 text

Just another index

Slide 39

Slide 39 text

Service Slow response times Host
 
 
 
 
 
 Memory warning [10:00:08] Batch job started… [11:00:16] Batch job started… [12:00:13] Batch job started… Job running The full picture

Slide 40

Slide 40 text

Using APM data for security 40 Subtitle { userId: 1510, sessionId: 12edS32res23ffu8 } … { userId: 4609, sessionId: 12edS32res23ffu8 } SELECT email, password, id FROM users WHERE email = ‘…’; UPDATE users SET email = ‘heh@evilperson.com’ WHERE email = ‘admin@website.com’ Watcher alert XSS SQLi

Slide 41

Slide 41 text

41 Instrumenting 
 Node.js Apps Thomas Watson Node.js agent engineer, APM, Elastic Wednesday, 3:30pm

Slide 42

Slide 42 text

42 Logs, Metrics and APM: The Holy Trinity of Operations Tanya Bragin Senior Director of Product Management, Elastic Thursday, 11:30am

Slide 43

Slide 43 text

Get started today at elastic.co/downloads/apm 43 Subtitle

Slide 44

Slide 44 text

www.elastic.co

Slide 45

Slide 45 text

Except where otherwise noted, this work is licensed under http://creativecommons.org/licenses/by-nd/4.0/ Creative Commons and the double C in a circle are registered trademarks of Creative Commons in the United States and other countries. Third party marks and brands are the property of their respective holders. 45 Please attribute Elastic with a link to elastic.co