Observability & Monitoring Platform

Problem:
Incidents took hours to diagnose due to fragmented monitoring.
Solution:
Implemented service-level observability with Prometheus and Grafana, unified SLI tracking.
Impact:
MTTD reduced by 60%, on-call burden decreased significantly.
Overview
Service-level golden signals and dashboards that match how engineers actually triage—not vanity charts.
Results & metrics
- 60% reduction in Mean Time To Detect (MTTD) across production incidents
- Unified Golden Signal telemetry (latency, traffic, errors, saturation) across all microservices
- Eliminated alert fatigue by triaging alerts into Teams/Slack vs Email based on severity
- Self-managed Prometheus & Grafana architecture saving significant monitoring costs
Before / after
Incident Detection Time
Before: Hours of tribal debugging across disparate logs to locate failures
Alert Quality
Before: Noisy spam alerts routing everything to noisy developer channels
System Health Visibility
Before: Fragmented infrastructure metrics with no service-level visibility
What I built
Scrape, store, visualize
Prometheus scrapes the services; Grafana shows latency, traffic, errors and saturation.
Alerts by severity
Alertmanager sends standard alerts to Teams/Slack and critical ones to Email.
Faster detection
Service-level observability cut incident detection time (MTTD) by 60%.
Stack
- Prometheus, Time-Series Metrics
- Grafana, Telemetry Dashboards
- Alertmanager, Severity Routing
- CloudWatch Logs, Log Correlation
- Node & Blackbox Exporters
Decisions
Key trade-offs and design calls that shaped the final delivery.
Prometheus + Grafana over CloudWatch alone
Why
- Context
- CloudWatch dashboards were limited and expensive for custom metrics
- Decision
- Self-managed observability stack with better visualization and lower cost for high-cardinality metrics
Tiered alerting
Why
- Context
- Alert fatigue from non-critical notifications going to same channel as incidents
- Decision
- Route standard alerts to Teams/Slack, critical alerts to Email—context-aware routing reduces noise
Architecture
The primary system boundaries, runtime pieces, and how the project was structured in production.
- Production Microservices → Node & Blackbox Exporters
- Node & Blackbox Exporters → Prometheus Scrape Server
- Prometheus Scrape Server → Time-Series Storage: Retention
- Time-Series Storage: Retention → SLO & Error Budget Rules
- SLO & Error Budget Rules → Alertmanager Engine
- Alertmanager Engine → Slack / Teams Channel: Standard (Warning / P3)
- Alertmanager Engine → Email & Pager: Critical P1 (Breach / P1)
- Time-Series Storage: Retention → Grafana Golden Signal Dashboards
- CloudWatch Application Logs → Grafana Golden Signal Dashboards (Log Correlation)
- Prometheus
Metrics Collection
How
Scrapes service metrics, golden signals, and deployment health indicators from applications and infrastructure.
- Grafana Dashboards
Visualization
How
Service-level views tied to SLOs—latency, traffic, errors, saturation—for faster triage and diagnosis.
- CloudWatch Logs
Log Aggregation
How
Centralized logging for AWS services and application logs—correlates with metrics for root cause analysis.
- Alertmanager
Alert Routing
How
Multi-channel alerts: Teams/Slack for standard alerts, Email for critical—routes based on severity with context.
Mermaid source
Paste into mermaid.live to edit the diagram.
flowchart TB
subgraph Targets [Workloads & Infrastructure]
APP[Production Microservices]
EXP[Node & Blackbox Exporters]
CW[CloudWatch Application Logs]
end
subgraph Metrics [Prometheus TSDB Engine]
PROM[Prometheus Scrape Server]
TSDB[(Time-Series Storage: Retention)]
RULES[SLO & Error Budget Rules]
end
subgraph Alerting [Triage & Escalation]
AM[Alertmanager Engine]
SLACK[Slack / Teams Channel: Standard]
PAGE[Email & Pager: Critical P1]
end
subgraph Viz [Single Pane of Glass]
GRAF[Grafana Golden Signal Dashboards]
end
APP --> EXP
EXP --> PROM
PROM --> TSDB
TSDB --> RULES
RULES --> AM
AM -->|Warning / P3| SLACK
AM -->|Breach / P1| PAGE
TSDB --> GRAF
CW -.->|Log Correlation| GRAFPipeline
How changes moved from development through validation and deployment.
Metric scraping from services and infrastructure into time-series database
Time-series data storage with retention policies for historical analysis
Dashboards and exploration for latency, traffic, errors, saturation metrics
Multi-channel routing based on severity—Teams/Slack for standard, Email for critical
Select a step for its detail
Incidents
Operational failures, rehearsals, or recovery moments that changed how the system was run.
- P3
Prometheus scrape targets flapping
Resolution
Increased scrape timeout and implemented service discovery health checks
Lesson: Default timeouts don't work for all services—tune scrape intervals per target
- P2
Grafana dashboard permissions too broad
Resolution
Implemented role-based access control with team-specific folder permissions
Lesson: Dashboard access should follow least privilege—not everyone needs edit access
- P2
Alertmanager routing misconfiguration
Resolution
Fixed routing tree configuration to ensure critical alerts reach email while standard alerts go to Slack
Lesson: Test alert routing with simulated alerts—misconfigurations silence critical notifications