Start here. This is the direct spoken answer to practice first.
Why this question matters
Many production issues are dependency issues. A release can expose a bad timeout, retry, or integration assumption even when the application code starts successfully.
I would monitor each important dependency separately: database, cache, message broker, identity provider, payment provider, storage, and downstream APIs. For each one, I care about latency, error rate, timeout rate, retry count, and saturation where available. This helps identify whether failures come from our code or from a dependency. It also helps validate whether a new release changed dependency behavior.