Monitoring and siblings
A quick attempt to explain core differences.
Monitoring: "Whats happening currently?" using dashboards and reports based on metrics (what we measure goes here.)
ex. all requests are currently processed within 2ms.
Alerting: "Something interesting happened, and I've an action to do."
ex. 20 requests in last 1 minute took more than 10ms.. I'm increasing timeout for new requests and alerting a human.
Logging: "Everything that an application does, and takes a note of. This can be discreet events, errors, unknown behaviours from softwares."
ex. I'm processing a request to /payments/sendMoney from a google pixel 3 with Android Oreo OS from Bangalore.
Tracing: "A single users' (or a small sample set) journey across the software (it can be part/whole of multiple softwares in a larger system too).. this is more to identify how is user flow and how is it impacted"
ex. A user went to home page, entered the system, went till the payment page but our payment service never received a request for this user.
Observability: "Why's something happening?" -> it can be answered with help of logs+traces+monitoring, by asking system any question with any kind of combination.
ex. Why're only 20 requests taking 10ms while others are at 2ms? What are these 20 requests?
P.S.: I highly recommend you all to head to https://namc.in/posts/cloud-observability/ for further reading. Namrata took it a step ahead to show the implementation details in a kubernetes cluster.