Skip to content

Commit

Permalink
Apply suggestions from code review
Browse files Browse the repository at this point in the history
Co-authored-by: jhgilbert <[email protected]>
  • Loading branch information
estherk15 and jhgilbert authored Dec 12, 2023
1 parent 95ab6d2 commit 6389e6c
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,13 @@ When creating SLOs, you can choose from the following types:
| **Supported data types** | Metrics with type of count, rate, or distribution | Metric Monitor types, Synthetic Monitors, and Service Checks | All metric types (including gauge metrics) |
| **Group functionality** | Unlimited groups per SLO | Limited to 20 monitor groups per SLO | Up to 5,000 groups per SLO |
| **SLO details side panel History (up to 90 days of historical data)** | Can set custom time windows to view SLO info | Cannot set custom time windows to view SLO info | Can set custom time windows to view SLO info |
| **SLO alerting ([Error Budget][1] or [Burn Rate][2] Alerts)** | Available for all metric-based SLOs | Available for SLOs based on Metric Monitor types only (not available for Synthetic Monitors or Service Checks) | Not yet available for Time Slice SLOs |
| **SLO alerting ([Error Budget][1] or [Burn Rate][2] Alerts)** | Available for all metric-based SLOs | Available for SLOs based on Metric Monitor types only (not available for Synthetic Monitors or Service Checks) | Not available for Time Slice SLOs |
| [**SLO Status Corrections**][3] | Correction periods are ignored from SLO status and error budget calculations | Correction periods are ignored from SLO status and error budget calculations | Correction periods are counted as uptime in SLO status and error budget calculations |
| [**SLO Widgets**][4] | Available for Metric-based SLOs | Available for all Monitor-based SLO types | Available for Time Slice SLOs |
| [**SLO Data Source**][5] | Available for this SLO type (up to 15 months of historical data available) | Not yet available for this SLO type | Not yet available for Time Slice SLOs |
| [**SLO Data Source**][5] | Available for this SLO type (up to 15 months of historical data available) | Not available for this SLO type | Not available for Time Slice SLOs |
| **Handling missing data in the SLO calculation** | Missing data is ignored in SLO status and error budget calculations | Missing data is handled based on the [underlying Monitor's configuration][6] | Missing data is treated as uptime in SLO status and error budget calculations |
| [**Uptime Calculations**][7] | N/A | Uptime is calculated by looking at discrete time chunks, not rolling time windows<br><br>If groups are present, overall uptime requires *all* groups to have uptime | Uptime calculations are based on the underlying Monitor <br><br>If groups are present, overall uptime requires *all* groups to have uptime|
| **Calendar Vew on SLO Manage Page** | Available | Not available | Available |
| **Calendar View on SLO Manage Page** | Available | Not available | Available |



Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ further_reading:

Time Slice SLOs allow you to measure reliability using a custom definition of uptime. You define uptime as a condition over a metric timeseries. For example, you can create a latency SLO by defining uptime as whenever p95 latency is less than 1 second.

Time Slice SLOs are a convenient alternative to Monitor-based SLOs. You can create an uptime SLO without going through a monitor so you don't have to create and maintain both a monitor and an SLO.
Time Slice SLOs are a convenient alternative to Monitor-based SLOs. You can create an uptime SLO without going through a monitor, so you don't have to create and maintain both a monitor and an SLO.

Check notice on line 16 in content/en/service_management/service_level_objectives/time_slice.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/en/service_management/service_level_objectives/time_slice.md#L16

[Datadog.sentencelength] Try to keep your sentence length to 25 words or fewer.
Raw output
{"message": "[Datadog.sentencelength] Try to keep your sentence length to 25 words or fewer.", "location": {"path": "content/en/service_management/service_level_objectives/time_slice.md", "range": {"start": {"line": 16, "column": 69}}}, "severity": "INFO"}

## Create a Time Slice SLO

Check warning on line 18 in content/en/service_management/service_level_objectives/time_slice.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/en/service_management/service_level_objectives/time_slice.md#L18

[Datadog.headings] 'Create a Time Slice SLO' should use sentence-style capitalization.
Raw output
{"message": "[Datadog.headings] 'Create a Time Slice SLO' should use sentence-style capitalization.", "location": {"path": "content/en/service_management/service_level_objectives/time_slice.md", "range": {"start": {"line": 18, "column": 4}}}, "severity": "WARNING"}

Expand All @@ -26,27 +26,27 @@ You can create a Time Slice SLO through the following ways:

{{< img src="service_management/service_level_objectives/time_slice/create_and_configuration.png" alt="Configuration options to create a Time Slice SLO" style="width:100%;" >}}

1. Navigate to Service Management > SLOs
1. Click **+ New SLO** to open up the Create SLO page.
1. Select **By Time Slices** to define your SLo measurement.
1. Define your uptime condition by choosing a metric query, comparator and threshold. For example, to define uptime as whenever p95 latency is less than 1s. Alternatively, you can [import the uptime from a monitor](#import-from-a-monitor).
1. Choose your timeframe and target
1. Navigate to **Service Management > SLOs**.
1. Click **+ New SLO** to open the Create SLO page.
1. Select **By Time Slices** to define your SLO measurement.
1. Define your uptime condition by choosing a metric query, comparator, and threshold. For example, you might define uptime as whenever p95 latency is less than 1s. Alternatively, you can [import the uptime from a monitor](#import-from-a-monitor).
1. Choose your timeframe and target.
1. Name and tag your SLO.
1. Click **Create**.

### Export an existing monitor SLO

<div class="alert alert-info">Only metric monitor SLOs can be exported. Non-metric monitors or multi-monitor SLOs cannot be exported</div>
<div class="alert alert-info">Only metric monitor SLOs can be exported. Non-metric monitors or multi-monitor SLOs cannot be exported.</div>

Create a Time Slice SLO by exporting an existing Monitor-based SLO. From a monitor SLO click **Export to Time Slice SLO**.
Create a Time Slice SLO by exporting an existing Monitor-based SLO. From a monitor SLO, click **Export to Time Slice SLO**.

{{< img src="service_management/service_level_objectives/time_slice/export_monitor_slo.png" alt="On a Monitor-based SLO detail side panel, the button to Export to Time Slice is highlighted" style="width:90%;" >}}

### Import from a monitor

<div class="alert alert-info">Only metric monitor SLOs appear in the monitor selection for import. </div>

From the Create or Edit SLO page, under *Define your SLI*, click **Import from Monitor** and select from the dropdown or search in the monitor selector.
From the **Create or Edit SLO** page, under **Define your SLI**, click **Import from Monitor** and select from the dropdown or search in the monitor selector.

Check notice on line 49 in content/en/service_management/service_level_objectives/time_slice.md

View workflow job for this annotation

GitHub Actions / vale

[vale] content/en/service_management/service_level_objectives/time_slice.md#L49

[Datadog.sentencelength] Try to keep your sentence length to 25 words or fewer.
Raw output
{"message": "[Datadog.sentencelength] Try to keep your sentence length to 25 words or fewer.", "location": {"path": "content/en/service_management/service_level_objectives/time_slice.md", "range": {"start": {"line": 49, "column": 1}}}, "severity": "INFO"}

**Note**: Time Slice SLOs do not support rolling periods. Rolling periods do not transfer from a monitor query to a Time Slice query.

Expand All @@ -60,7 +60,7 @@ For each slice, there is a single value for the timeseries, and the uptime condi

### Groups and overall uptime

Time Slice SLOs allows you to track uptime for individual groups, where groups are defined in the "group by" portion of the metric query.
Time Slice SLOs allow you to track uptime for individual groups, where groups are defined in the "group by" portion of the metric query.

When groups are present, uptime is calculated for each individual group. However, overall uptime works differently. In order to match existing monitor SLO functionality, Time Slice SLOs use the same definition of overall uptime. When **all** groups have uptime, it is considered overall uptime. Conversely, if **any** group has downtime, it is considered overall downtime. Overall uptime is always less than the uptime for any individual group.

Expand All @@ -76,7 +76,7 @@ $$ (1440-10)/1440 *100 = ~99.652% $$ -->

Time Slice SLOs count correction periods as uptime in all calculations. Since the total time remains constant, the error budget is always a fixed amount of time as well. This is a significant simplification and improvement over how corrections are handled for monitor-based SLOs.

For monitor-based SLOs, corrections are periods that are removed from the calculation. If a one-day-long correction is added to a 7-day SLO, 1 hour of downtime counts as 0.7% instead of 0.6%
For monitor-based SLOs, corrections are periods that are removed from the calculation. If a one-day-long correction is added to a 7-day SLO, 1 hour of downtime counts as 0.7% instead of 0.6%:

$$ 60/8640 *100 = ~0.7% $$

Expand Down

0 comments on commit 6389e6c

Please sign in to comment.