More talks in the program:
16:30 - 17:30
Traditionally, application monitoring is a purely operational concern. However, it is hard to monitor complex systems without using some kind of whitebox approach, exemplified by the Prometheus monitoring system. Whitebox monitoring requires code instrumentation, and all of a sudden monitoring matters from very early on in the development process. This both encourages and benefits from a DevOps approach – and has additional side effects that can even be helpful for development itself.
In turn, profiling code is often thought as something only developers do. Profiling code in production has the obvious benefit of observing a real-life scenario rather than artificial test runs. The ability to profile any production binary at any time is immensely helpful while investigating production issues. Similar to ubiquitous whitebox monitoring and distributed tracing, this ability has been available to Google engineers for quite some time. Thus, it is not surprising that profiling is exceptionally easy with the Go programming language initiated by Google.
For full self-reference, the talk will demonstrate how the Prometheus server, which is written in Go, was developed, debugged, and optimized using Prometheus-style whitebox monitoring and the “always on” Go profiling abilities.