$30 off During Our Annual Pro Sale. View Details »

Observing Your Go Services

Aditya Mukerjee
August 30, 2018
150

Observing Your Go Services

"If a Go microservice falls down in the middle of a server farm, does my pager make a sound?"

If your service is automatically monitored, then the answer is "yes!". But what if your service *isn't* monitored yet? Or what if your monitors alert you when the server is offline, but not on subtler problems like latency spikes or CPU load?

Fortunately, there's a quick and easy way to get high-resolution metrics for monitoring your services. The Go standard library now contains the basic building blocks for application tracing. When you combine these tools with Veneur, a pure Go distributed metrics aggregator, you can easily answer the questions you care about, like "Which servers are currently running near maximum capacity?", or "Can our infrastructure handle tomorrow's product launch?".

Aditya Mukerjee

August 30, 2018
Tweet

Transcript

  1. Observing Your Go Services
    Aditya Mukerjee
    Observability Engineer at Stripe
    GopherCon 2018
    Denver

    View Slide

  2. Observability measures how well internal states of a system
    can be inferred from knowledge of its external outputs
    @chimeracoder

    View Slide

  3. Go is used to build….
    •Distributed systems
    •Reliable software
    •“The Cloud™”
    @chimeracoder

    View Slide

  4. 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

    View Slide

  5. Let’s Create an API
    •Return a list of all Twitter followers
    •Record a copy to the database
    •Distributed!
    @chimeracoder
    API
    API
    API
    DB

    View Slide

  6. Service-Level Agreement: What we promise our clients
    @chimeracoder
    Service-Level Indicators: Data used to evaluate the SLA

    View Slide

  7. Service Indicators
    •Rate: Number of requests received
    •Errors: Number of responses written, broken down by HTTP status
    •Duration: Distribution of response latency
    @chimeracoder

    View Slide

  8. Every monitor involves a service-level indicator*
    @chimeracoder
    *for sufficiently broad definitions of “service”

    View Slide

  9. @chimeracoder
    Metrics, logs, and request traces are used to provide greater
    visibility beyond our service indicators

    View Slide

  10. Define and measure your service indicator metrics
    @chimeracoder

    View Slide

  11. Thank you!
    Aditya Mukerjee
    @chimeracoder
    https://veneur.org
    #veneur on Freenode

    View Slide