What is Observability?
Observability helps you understand what’s happening inside your system by analyzing the outputs it generates like figuring out why a car is making noise by listening to it.
Pillars of Observability
Monitoring (WHY is your application slow, off, etc)
Definition: Collecting and analyzing metrics over time to identify system performance trends, availability, and resource utilization.
Purpose: Alerts when predefined thresholds are breached, ensuring system reliability.
Example Metrics: CPU usage, memory consumption, request latency, error rates.
Tools: Prometheus, Datadog, Grafana.
Logging (WHAT is going on your application)
Definition: Capturing and storing structured or unstructured event data generated by applications and systems.
Purpose: Provides granular details about specific events, such as errors or state changes, enabling root cause analysis.
Example: An error log showing why a transaction failed.
Tools: ELK Stack (Elasticsearch, Logstash, Kibana), Splunk, Fluentd.
Tracing (HOW to reach)
Definition: Tracks the flow of requests through a distributed system, following them across services and components.
Purpose: Helps visualize and analyze service dependencies and pinpoint bottlenecks or latency issues.
Example: A trace showing the time taken by each microservice to process a request in a distributed architecture.
Tools: Jaeger, OpenTelemetry, Zipkin.
Example
Imagine your website is slow.
Monitoring shows high CPU usage on one server.
Logging reveals an error in the checkout process.
Tracing pinpoints the delay in the payment gateway call.
Happy Learning :)
Chetan Mohod ✨
For more DevOps updates, you can follow me on LinkedIn.