Monitoring Microservices

Preview:

Citation preview

Monitoring Microservicestom@weave.works

@tom_wilkie

VisualisationMonitoring Tracing

0255075

100

Monitoring

0255075

100

Traditional 3-tier architectureIncoming traffic

Load balancers

Application servers

Database & replica

Microservice architecture

Public APIWeb UI

NoSQL serversDatabase

Message Broker

Services

Microservices should be treated like cattle not pets

USE Method* - for every resource, check: • utilization, • saturation, and • errors

RED Method - for every service, check request: • rate, • error (rate), and • duration (distributions) are within SLO/A

* http://www.brendangregg.com/usemethod.html

An alternative view

Monitoring

0255075

100

Visualisation

Weave Scope

Connection Tracking

# cat /proc/net/tcp

# conntrack -E -p tcp

Matrix

Connection Tracking

all connections

from /proc

conntrack

!

Demo time

Visualisation

Tracing

Distributed Tracing

Not a new topic

• Lots of literature • Existing open source

projects • e.g. Zipkin, originally from

Twitter

• Challenge: detecting causality between incoming and outgoing requests

• Existing solutions require propagation of some unique ID (dapper, zipkin)

• This requires application-specific modifications

some service

incomingrequest

outgoingrequests

?

Can this be done without application modifications?

Demo time

Tracing

VisualisationMonitoring Tracing

0255075

100

@weaveworks github.com/weaveworks

Questions?http://weave.works/product/scope

tom@weave.works @tom_wilkie

Recommended