With our application running on the cloud, we should have constant visibility at any given moment about what's happening. To accomplish this, we'll configure two different mechanisms to obtain information about the running ElixirDrip instances:
- A Prometheus server constantly collecting metrics about the running application and exposing them through a Grafana dashboard
- A way to run the Erlang observer tool while connected to the running Erlang nodes, in order to analyze the Erlang VM's overall status and the existing running processes
- Two ways to tap into what's happening with our production system: Profiling and tracing functions from our application
Let's start by understanding how Prometheus works and how it is a good fit for the established ElixirDrip architecture.