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 for further reading. Namrata took it a step ahead to show the implementation details in a kubernetes cluster.