9 Adding observability with containerized monitoring
Autonomous applications scale themselves up and down to meet incoming traffic, and heal themselves when there are intermittent faults. It sounds too good to be true - and it probably is. The container platform can do a lot of the operations work for you if you build your Docker images with health checks, but you still need ongoing monitoring and alerting so humans can get involved when things go badly wrong. If you don't have any insight into your containerized application, that's going to be the number one thing that stops you going to production.
Observability is a critical piece of the software landscape when you're running applications in containers - it tells you what your applications are doing and how well they're performing, and it can help you pinpoint the source of problems. In this chapter you'll learn how to use a well-established approach to monitoring with Docker: exposing metrics from your application containers, using Prometheus to collect them and Grafana to visualize them in user-friendly dashboards. The tools are open-source and cross-platform, and they run in containers alongside your application. That means you get the same insight into your application performance in every environment from development to production.