Björn Rabenstein - Grand Treatise of Modern Instrumentation and Orchestration
Go plays a major role in modern distributed systems. It is a great choice to implement microservices, as exemplified by the popular Go kit. Even more convincing is the dominance of Go in the orchestration layer: Kubernetes, etcd, and Weave's Flux are just a few well-known examples. Monitoring large-scale distributed systems including the underlying infrastructure poses an entirely new challenge. Prometheus was designed to meet that challenge. Unsurprisingly, it is written in Go, and it is not by coincidence that all examples given above feature some kind of Prometheus integration. How can you, as a Go developer, integrate your own software? This talk will show you how to use the Prometheus client library for instrumenting your own code to expose Prometheus metrics and for writing small adapter applications to export metrics from 3rd-party systems. You will learn to identify and implement the metrics that are needed to enable meaningful service monitoring and alerting.