Slide 1

Slide 1 text

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