Observing Your Go Services
Aditya Mukerjee
Observability Engineer at Stripe
GopherCon 2018
Denver
Slide 2
Slide 2 text
Observability measures how well internal states of a system
can be inferred from knowledge of its external outputs
@chimeracoder
Slide 3
Slide 3 text
Go is used to build….
•Distributed systems
•Reliable software
•“The Cloud™”
@chimeracoder
Slide 4
Slide 4 text
1. What should I observe or monitor?
2. How do I measure and monitor those things in Go?
3. What does the future of Go observability look like?
@chimeracoder
Slide 5
Slide 5 text
Let’s Create an API
•Return a list of all Twitter followers
•Record a copy to the database
•Distributed!
@chimeracoder
API
API
API
DB
Slide 6
Slide 6 text
Service-Level Agreement: What we promise our clients
@chimeracoder
Service-Level Indicators: Data used to evaluate the SLA
Slide 7
Slide 7 text
Service Indicators
•Rate: Number of requests received
•Errors: Number of responses written, broken down by HTTP status
•Duration: Distribution of response latency
@chimeracoder
Slide 8
Slide 8 text
Every monitor involves a service-level indicator*
@chimeracoder
*for sufficiently broad definitions of “service”
Slide 9
Slide 9 text
@chimeracoder
Metrics, logs, and request traces are used to provide greater
visibility beyond our service indicators
Slide 10
Slide 10 text
Define and measure your service indicator metrics
@chimeracoder
Slide 11
Slide 11 text
Thank you!
Aditya Mukerjee
@chimeracoder
https://veneur.org
#veneur on Freenode