Skip to content

SLOs and Monitoring Strategy

Where we are:

  • No formal SLOs except when stakeholders escalate issues
  • No structured incident management process (ad hoc Slack monitoring/alerting)
  • Uptime Robot is our only automated monitoring

Gaps:

  • No well-defined Service Level Indicators (SLIs) supporting SLOs
  • No automated alerting system
  • No public incident tracking
  • No post-mortem process

Each Service Level Objective (SLO) should be supported by measurable Service Level Indicators (SLIs):

  • Availability SLI: Uptime percentage (e.g., 99.9% uptime)
  • Latency SLI: Response time percentiles (e.g., p95 < 500ms)
  • Error Rate SLI: Percentage of failed requests (e.g., < 0.1% error rate)
  • Throughput SLI: Requests per second capacity

Each SLI should have:

  • Automated monitors that trigger alerts when thresholds are breached
  • Alert routing to SquadCast/PagerDuty for on-call engineers
  • Public incident creation in company Slack for visibility and investigation

For every incident:

  1. Track publicly - Create incident thread in company Slack
  2. Respond systematically - Follow documented response procedures
  3. Learn from mistakes - Write post-mortem for every incident
  4. Prevent recurrence - Goal is to make each mistake only once

Define incident severity based on impact:

  • SEV-1 (Critical): Complete service outage, revenue impact
  • SEV-2 (High): Partial outage, degraded performance
  • SEV-3 (Medium): Minor issues, workarounds available
  • SEV-4 (Low): Cosmetic issues, no user impact
  1. Detect - Automated monitoring or user report
  2. Alert - Notify on-call engineer
  3. Investigate - Gather data, identify root cause
  4. Resolve - Implement fix or workaround
  5. Communicate - Update stakeholders
  6. Document - Write post-mortem

Every incident should have a post-mortem including:

  • Timeline - When did it start? When was it detected? When was it resolved?
  • Impact - How many users affected? Revenue impact? Duration?
  • Root Cause - What actually broke?
  • Resolution - How was it fixed?
  • Action Items - What will prevent this from happening again?
  • Owner - Who is responsible for each action item?
  • Uptime Robot - Basic uptime monitoring
  • Sentry - Error tracking and debugging
  • Fly.io Metrics - Infrastructure monitoring
  • SquadCast/PagerDuty - On-call scheduling and alerting
  • Datadog/New Relic - APM and infrastructure monitoring
  • Grafana/Prometheus - Custom dashboards and metrics

Start with one critical service:

  1. Identify the service - What’s most critical to users?
  2. Choose an SLI - What metric matters most? (uptime, latency, errors)
  3. Set a target - What’s acceptable? (99.9% uptime, p95 < 500ms)
  4. Implement monitoring - Add automated checks
  5. Configure alerts - When should someone be notified?
  • Start small, expand coverage over time
  • Review SLOs quarterly - are they too strict or too lenient?
  • Adjust based on actual incident data
  • Build a culture of reliability through consistent post-mortems