Skip to content
Last9

SLOs

Create and manage Service Level Objectives to track service reliability and performance

SLO Dashboard Overview

Service Level Objectives (SLOs) help you define and track reliability targets for your services. By setting measurable goals like “99.9% of requests should succeed,” SLOs provide a clear framework for understanding service health and making data-driven decisions about reliability investments.

SLOs are created for Entities. Access your Entities to get started, or navigate to SLO from the left navigation panel.

Understanding SLO Components

Before creating SLOs, it’s helpful to understand the key components:

  • Service Level Indicator (SLI): A metric that measures a specific aspect of your service performance (e.g., availability, latency). SLIs must be defined first before creating SLOs.
  • SLO Target: The percentage threshold you want to achieve (e.g., 99.9%)
  • Compliance Duration: The time window over which the SLO is measured (e.g., 1 day, 7 days)
  • SLO Expression: A formula that uses your defined SLIs to calculate performance. The expression format depends on SLO type:
    • Request-based: Must return a value between 0-100 (percentage)
    • Window-based: Must return a boolean value (true/false)
  • Alert Severity: Categorizes SLO violations as Threat or Breach for appropriate response levels

Creating Your First SLO

SLO Creation Form

  1. Navigate to SLO in the left sidebar, then click Entities to view your service entities
  2. Select the entity you want to create an SLO for from the entities list
  3. Click + NEW SLO to open the SLO configuration form
  4. Fill in the basic SLO details:
    • SLO Name: Choose a descriptive name like “Availability” or “Response Time”
    • Compliance Duration: Set the measurement window (e.g., “1 day” and “0 hours”)
    • Compliance Target: Enter your target percentage (e.g., “99.9%“)

Configuring SLO Types

Last9 supports two types of SLOs based on how you want to measure performance:

SLO Request Based

Best for: Services with consistent traffic patterns

Example: 99% of requests were good over 7 days

Measures how the service performed across all requests, regardless of traffic distribution. Use this for high-traffic services where you want to focus on overall success rates.

Sample Expression (returns value 0-100):

max(Availability, 0)

Writing SLO Expressions

SLO expressions use your defined Service Level Indicators (SLIs) to calculate performance. Remember that you must first define your SLIs before creating SLO expressions that reference them.

  • Request-based SLO expressions must return a percentage value (0-100):

    max(Availability, 0)
  • Window-based SLO expressions must return a boolean value (true/false):

    Availability > 99

Common SLI patterns

  • Availability SLI (Error rate percentage):

    (1 - sum(edge_5xx, 0)/sum(edge_throughput, 0))*100
  • Latency SLI (95th percentile response time):

    quant(edge_latency, 0.95)
  • Success Rate SLI:

    sum(successful_requests, 0)/sum(total_requests, 0)*100

Available functions: sum, max, min, coalesce, quant, quant_cont, quant_at

Use the VALIDATE button to test your SLO expression before saving.

Setting Alert Severity

Configure how SLO violations should be categorized:

  • Threat: Early warning when SLO is at risk but not yet breached
  • Breach: Critical alert when SLO target has been missed

This helps teams prioritize their response based on the severity of the reliability issue.

Managing Existing SLOs

  1. Navigate to Entities to view all your entities
  2. Click on the entity name that has the SLO you want to manage
  3. From the entity’s SLO tab, click on any existing SLO tab to view its details and history
  4. Use the Edit this SLO button to modify SLO configuration
  5. View the SLO History chart to understand performance trends over time
  6. Click any point on the history chart to see the exact SLO calculation for that timestamp

The SLO detail view shows:

  • Current status (Healthy/Warning/Critical)
  • Real-time SLO target achievement
  • Historical performance trends
  • Underlying SLO expression and its evaluation

Best Practices

  • Choose Realistic Targets: Start with achievable targets based on historical performance, then gradually improve. A 99.9% target might be unrealistic if your current availability is 95%.
  • Select Appropriate Duration: Shorter durations (1-7 days) provide faster feedback but may be more volatile. Longer durations (30 days) smooth out temporary issues but delay detection of problems.
  • Define SLIs First: Always create meaningful Service Level Indicators before writing SLO expressions. Good SLIs capture what users actually experience.
  • Use Correct Expression Format: Ensure request-based expressions return 0-100 values and window-based expressions return boolean results.
  • Start Simple: Begin with basic availability SLOs before moving to complex latency or custom metrics.

Troubleshooting

  • SLO Expression Validation Fails: Verify that all SLI names are defined and spelled correctly. Remember that request-based expressions must return 0-100 values, while window-based expressions must return boolean values.
  • No Data in SLO History: Ensure your entities are properly configured and sending metrics. Check that your SLIs are collecting data and verify the time range matches your compliance duration.
  • SLO Shows Unexpected Values: Review your SLI definitions and SLO expression logic. Confirm that your expression format matches your SLO type (percentage for request-based, boolean for window-based).

Please get in touch with us on Discord or Email if you have any questions.