From ff23c12b514c045a28d0dab07cf95a147106a923 Mon Sep 17 00:00:00 2001 From: Cody Lee Date: Mon, 30 Sep 2019 16:18:08 -0500 Subject: [PATCH 01/14] add service level objectives MA-434 initial commit need to update some sections and ordering --- .../en/api/service_level_objectives/_index.md | 5 ++ .../code_snippets/api-slo-bulk-delete.sh | 12 ++++ .../code_snippets/api-slo-create.sh | 19 ++++++ .../code_snippets/api-slo-delete-many.sh | 11 ++++ .../code_snippets/api-slo-delete.sh | 10 +++ .../code_snippets/api-slo-edit.sh | 15 +++++ .../code_snippets/api-slo-get.sh | 10 +++ .../code_snippets/api-slo-search.sh | 13 ++++ .../result.api-slo-bulk-delete.sh | 7 ++ .../code_snippets/result.api-slo-create.sh | 28 ++++++++ .../result.api-slo-delete-many.sh | 4 ++ .../code_snippets/result.api-slo-delete.sh | 4 ++ .../code_snippets/result.api-slo-edit.sh | 28 ++++++++ .../code_snippets/result.api-slo-get.sh | 26 ++++++++ .../code_snippets/result.api-slo-search.sh | 28 ++++++++ .../service_level_objectives.md | 17 +++++ .../service_level_objectives_bulk_delete.md | 13 ++++ ...rvice_level_objectives_bulk_delete_code.md | 18 ++++++ .../service_level_objectives_code.md | 6 ++ .../service_level_objectives_create.md | 64 +++++++++++++++++++ .../service_level_objectives_create_code.md | 18 ++++++ .../service_level_objectives_delete.md | 12 ++++ .../service_level_objectives_delete_code.md | 18 ++++++ .../service_level_objectives_delete_many.md | 12 ++++ ...rvice_level_objectives_delete_many_code.md | 18 ++++++ .../service_level_objectives_edit.md | 51 +++++++++++++++ .../service_level_objectives_edit_code.md | 18 ++++++ .../service_level_objectives_get.md | 8 +++ .../service_level_objectives_get_code.md | 18 ++++++ .../service_level_objectives_search.md | 35 ++++++++++ .../service_level_objectives_search_code.md | 18 ++++++ content/en/service_level_objectives/_index.md | 34 ++++++++++ .../en/service_level_objectives/list_slos.md | 47 ++++++++++++++ .../en/service_level_objectives/slo_status.md | 59 +++++++++++++++++ .../slo_types/_index.md | 17 +++++ .../slo_types/metric.md | 59 +++++++++++++++++ .../slo_types/monitor.md | 56 ++++++++++++++++ content/en/service_level_objectives/widget.md | 17 +++++ 38 files changed, 853 insertions(+) create mode 100644 content/en/api/service_level_objectives/_index.md create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.sh create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-create.sh create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-delete-many.sh create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-delete.sh create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-edit.sh create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-get.sh create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-search.sh create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-bulk-delete.sh create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-create.sh create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-delete-many.sh create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-delete.sh create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-edit.sh create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-get.sh create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-search.sh create mode 100644 content/en/api/service_level_objectives/service_level_objectives.md create mode 100644 content/en/api/service_level_objectives/service_level_objectives_bulk_delete.md create mode 100644 content/en/api/service_level_objectives/service_level_objectives_bulk_delete_code.md create mode 100644 content/en/api/service_level_objectives/service_level_objectives_code.md create mode 100644 content/en/api/service_level_objectives/service_level_objectives_create.md create mode 100644 content/en/api/service_level_objectives/service_level_objectives_create_code.md create mode 100644 content/en/api/service_level_objectives/service_level_objectives_delete.md create mode 100644 content/en/api/service_level_objectives/service_level_objectives_delete_code.md create mode 100644 content/en/api/service_level_objectives/service_level_objectives_delete_many.md create mode 100644 content/en/api/service_level_objectives/service_level_objectives_delete_many_code.md create mode 100644 content/en/api/service_level_objectives/service_level_objectives_edit.md create mode 100644 content/en/api/service_level_objectives/service_level_objectives_edit_code.md create mode 100644 content/en/api/service_level_objectives/service_level_objectives_get.md create mode 100644 content/en/api/service_level_objectives/service_level_objectives_get_code.md create mode 100644 content/en/api/service_level_objectives/service_level_objectives_search.md create mode 100644 content/en/api/service_level_objectives/service_level_objectives_search_code.md create mode 100644 content/en/service_level_objectives/_index.md create mode 100644 content/en/service_level_objectives/list_slos.md create mode 100644 content/en/service_level_objectives/slo_status.md create mode 100644 content/en/service_level_objectives/slo_types/_index.md create mode 100644 content/en/service_level_objectives/slo_types/metric.md create mode 100644 content/en/service_level_objectives/slo_types/monitor.md create mode 100644 content/en/service_level_objectives/widget.md diff --git a/content/en/api/service_level_objectives/_index.md b/content/en/api/service_level_objectives/_index.md new file mode 100644 index 0000000000000..140f9c6bd82a4 --- /dev/null +++ b/content/en/api/service_level_objectives/_index.md @@ -0,0 +1,5 @@ +--- +title: Service Level Objectives +external_redirect: /api/ +--- + diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.sh b/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.sh new file mode 100644 index 0000000000000..7ba2dff1680e0 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# Replace the API and APP keys below +# with the ones for your account + +api_key= +app_key= + +# Bulk Delete SLOs +curl -X POST -H "Content-Type: application/json" \ + -d '{"12341234123412341234123412341234": ["7d"], "43210000432100004321000043210000": ["30d"]}}' \ + "https://api.datadoghq.com/api/v1/slo/bulk_delete?api_key=${api_key}&application_key=${app_key}" + diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-create.sh b/content/en/api/service_level_objectives/code_snippets/api-slo-create.sh new file mode 100644 index 0000000000000..83f67f739103e --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-create.sh @@ -0,0 +1,19 @@ +#!/bin/sh +# Replace the API and APP keys below +# with the ones for your account + +api_key= +app_key= + +curl -X POST -H "Content-type: application/json" \ +-d '{ + "type": "monitor", + "name": "Critical Foo Host Uptime", + "description": "Track the uptime of host foo which is critical to the core business.", + "tags": ["app:core", "kpi"], + "monitor_ids": [42], + "thresholds": [ + {"timeframe": "30d", "target": 95, "warning": 98} + ] +}' \ + "https://api.datadoghq.com/api/v1/slo?api_key=${api_key}&application_key=${app_key}" diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-delete-many.sh b/content/en/api/service_level_objectives/code_snippets/api-slo-delete-many.sh new file mode 100644 index 0000000000000..e0263cf0e61f3 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-delete-many.sh @@ -0,0 +1,11 @@ +#!/bin/sh +# Replace the API and APP keys below +# with the ones for your account + +api_key= +app_key= +slo_ids= + +# Delete a SLO +curl -X DELETE -H "Content-Type: applicaton/json" -d '[${slo_ids}]' \ + "https://api.datadoghq.com/api/v1/slo/?api_key=${api_key}&application_key=${app_key}" diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-delete.sh b/content/en/api/service_level_objectives/code_snippets/api-slo-delete.sh new file mode 100644 index 0000000000000..b5366d720c67a --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-delete.sh @@ -0,0 +1,10 @@ +#!/bin/sh +# Replace the API and APP keys below +# with the ones for your account + +api_key= +app_key= +slo_id= + +# Delete a SLO +curl -X DELETE "https://api.datadoghq.com/api/v1/slo/${slo_id}?api_key=${api_key}&application_key=${app_key}" diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-edit.sh b/content/en/api/service_level_objectives/code_snippets/api-slo-edit.sh new file mode 100644 index 0000000000000..3d5ce0c2dc1a6 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-edit.sh @@ -0,0 +1,15 @@ +#!/bin/sh +# Replace the API and APP keys below +# with the ones for your account + +api_key= +app_key= +slo_id= + +# Edit a SLO +curl -X PUT -H "Content-type: application/json" \ +-d '{ + "name": "Host0 uptime", + "description": "We may need to replace this host if it is constantly down." +}' \ + "https://api.datadoghq.com/api/v1/slo/${slo_id}?api_key=${api_key}&application_key=${app_key}" diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-get.sh b/content/en/api/service_level_objectives/code_snippets/api-slo-get.sh new file mode 100644 index 0000000000000..4521bffe78fb1 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-get.sh @@ -0,0 +1,10 @@ +#!/bin/sh +# Replace the API and APP keys below +# with the ones for your account + +api_key= +app_key= +slo_id= + +# Get a SLO +curl -X GET "https://api.datadoghq.com/api/v1/slo/${slo_id}?api_key=${api_key}&application_key=${app_key}" diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-search.sh b/content/en/api/service_level_objectives/code_snippets/api-slo-search.sh new file mode 100644 index 0000000000000..ab403b033758a --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-search.sh @@ -0,0 +1,13 @@ +#!/bin/sh +# Replace the API and APP keys below +# with the ones for your account + +api_key= +app_key= + +query= +offset= +limit= + +curl -X GET \ + "https://api.datadoghq.com/api/v1/slo?api_key=${api_key}&application_key=${app_key}&query=${query}&offset=${page}&limit=${per_page}" diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-bulk-delete.sh b/content/en/api/service_level_objectives/code_snippets/result.api-slo-bulk-delete.sh new file mode 100644 index 0000000000000..d34de92e5e550 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-bulk-delete.sh @@ -0,0 +1,7 @@ +{ + "data": { + "deleted": ["43210000432100004321000043210000"], + "updated": ["12341234123412341234123412341234"], + }, + "errors": null +} diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-create.sh b/content/en/api/service_level_objectives/code_snippets/result.api-slo-create.sh new file mode 100644 index 0000000000000..39a5d8f24a00b --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-create.sh @@ -0,0 +1,28 @@ +{ + "data": [ + { + "id": "12341234123412341234123412341234", + "description": "Track the uptime of host foo which is critical to the core business.", + "name": "Critical Foo Host Uptime", + "tags": ["app:core", "kpi"], + "type": "monitor", + "type_id": 0, + "monitor_ids": [42], + "thresholds": [ + { + "timeframe": "30d", + "target": 95, + "warning": 98 + } + ], + "creator": { + "handle": "foo", + "email": "foo@foo.example.com", + "id": 42, + }, + "created": "2015-12-18T16:34:14.014039+00:00", + "modified": "2015-12-18T16:34:14.014039+00:00" + } + ], + "error": null +} diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete-many.sh b/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete-many.sh new file mode 100644 index 0000000000000..47d323287659c --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete-many.sh @@ -0,0 +1,4 @@ +{ + "data": ["12341234123412341234123412341234"], + "error": null +} diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete.sh b/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete.sh new file mode 100644 index 0000000000000..47d323287659c --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete.sh @@ -0,0 +1,4 @@ +{ + "data": ["12341234123412341234123412341234"], + "error": null +} diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-edit.sh b/content/en/api/service_level_objectives/code_snippets/result.api-slo-edit.sh new file mode 100644 index 0000000000000..aad0ec759aaa6 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-edit.sh @@ -0,0 +1,28 @@ +{ + "data": [ + { + "id": "12341234123412341234123412341234", + "description": "Track the uptime of host foo which is critical to the core business.", + "name": "Critical Foo Host Uptime", + "tags": ["app:core", "kpi"], + "type": "monitor", + "type_id": 0, + "monitor_ids": [42], + "thresholds": [ + { + "timeframe": "30d", + "target": 95, + "warning": 98 + } + ], + "creator": { + "handle": "foo", + "email": "foo@foo.example.com", + "id": 42, + }, + "created": "2015-12-18T16:34:14.014039+00:00", + "modified": "2015-12-18T18:34:14.014039+00:00" + } + ], + "error": null +} diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-get.sh b/content/en/api/service_level_objectives/code_snippets/result.api-slo-get.sh new file mode 100644 index 0000000000000..19a85f86cb476 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-get.sh @@ -0,0 +1,26 @@ +{ + "data": { + "id": "12341234123412341234123412341234", + "description": "Track the uptime of host foo which is critical to the core business.", + "name": "Critical Foo Host Uptime", + "tags": ["app:core", "kpi"], + "type": "monitor", + "type_id": 0, + "monitor_ids": [42], + "thresholds": [ + { + "timeframe": "30d", + "target": 95, + "warning": 98 + } + ], + "creator": { + "handle": "foo", + "email": "foo@foo.example.com", + "id": 42, + }, + "created": "2015-12-18T16:34:14.014039+00:00", + "modified": "2015-12-18T16:34:14.014039+00:00" + }, + "error": null +} diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-search.sh b/content/en/api/service_level_objectives/code_snippets/result.api-slo-search.sh new file mode 100644 index 0000000000000..39a5d8f24a00b --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-search.sh @@ -0,0 +1,28 @@ +{ + "data": [ + { + "id": "12341234123412341234123412341234", + "description": "Track the uptime of host foo which is critical to the core business.", + "name": "Critical Foo Host Uptime", + "tags": ["app:core", "kpi"], + "type": "monitor", + "type_id": 0, + "monitor_ids": [42], + "thresholds": [ + { + "timeframe": "30d", + "target": 95, + "warning": 98 + } + ], + "creator": { + "handle": "foo", + "email": "foo@foo.example.com", + "id": 42, + }, + "created": "2015-12-18T16:34:14.014039+00:00", + "modified": "2015-12-18T16:34:14.014039+00:00" + } + ], + "error": null +} diff --git a/content/en/api/service_level_objectives/service_level_objectives.md b/content/en/api/service_level_objectives/service_level_objectives.md new file mode 100644 index 0000000000000..4e5fd602a262a --- /dev/null +++ b/content/en/api/service_level_objectives/service_level_objectives.md @@ -0,0 +1,17 @@ +--- +title: Service Level Objectives +type: apicontent +order: 29 +external_redirect: /api/#servicelevelobjectives +--- +## Service Level Objectives + +[Service Level Objectives][1] (or SLOs) are a key part of the site reliability engineering toolkit. SLOs provide a +framework for defining clear targets around application performance, which ultimately help teams provide a consistent +customer experience, balance feature development with platform stability, and improve communication with internal and +external users. + +Refer to the [Creating Service Level Objectives page][2] for more information on creating SLOs. + +[1]: /service_level_objectives +[2]: /service_level_objectives/slo_types diff --git a/content/en/api/service_level_objectives/service_level_objectives_bulk_delete.md b/content/en/api/service_level_objectives/service_level_objectives_bulk_delete.md new file mode 100644 index 0000000000000..8fa6da8577aa8 --- /dev/null +++ b/content/en/api/service_level_objectives/service_level_objectives_bulk_delete.md @@ -0,0 +1,13 @@ +--- +title: Bulk Delete Service Level Objective Timeframes +type: apicontent +order: 29.07 +external_redirect: /api/#bulk-delete-service-level-objective-timeframes +--- + +## Bulk Delete Service Level Objectives time frames + +**ARGUMENTS**: + +An non-empty object is expected in the arguments with the `key` as the `SLO ID` and the `value` as +a non-empty list of `timeframe`(s) to remove. diff --git a/content/en/api/service_level_objectives/service_level_objectives_bulk_delete_code.md b/content/en/api/service_level_objectives/service_level_objectives_bulk_delete_code.md new file mode 100644 index 0000000000000..8a9136c498dd7 --- /dev/null +++ b/content/en/api/service_level_objectives/service_level_objectives_bulk_delete_code.md @@ -0,0 +1,18 @@ +--- +title: Bulk Delete Service Level Objective Timeframes +type: apicode +order: 29.07 +external_redirect: /api/#bulk-delete-service-level-objective-timeframes +--- + +**SIGNATURE**: + +`POST /v1/slo/bulk_delete` + +**EXAMPLE REQUEST**: + +{{< code-snippets basename="api-slo-bulk-delete" >}} + +**EXAMPLE RESPONSE**: + +{{< code-snippets basename="result.api-slo-bulk-delete" >}} diff --git a/content/en/api/service_level_objectives/service_level_objectives_code.md b/content/en/api/service_level_objectives/service_level_objectives_code.md new file mode 100644 index 0000000000000..8f040e2fb1c1f --- /dev/null +++ b/content/en/api/service_level_objectives/service_level_objectives_code.md @@ -0,0 +1,6 @@ +--- +title: Service Level Objectives +type: apicode +order: 29 +external_redirect: /api/#servicelevelobjectives +--- diff --git a/content/en/api/service_level_objectives/service_level_objectives_create.md b/content/en/api/service_level_objectives/service_level_objectives_create.md new file mode 100644 index 0000000000000..b96664e1fff42 --- /dev/null +++ b/content/en/api/service_level_objectives/service_level_objectives_create.md @@ -0,0 +1,64 @@ +--- +title: Create a service level objective +type: apicontent +order: 29.01 +external_redirect: /api/#create-a-service-level-objective +--- + +## Create a service level objective + +If you manage and deploy SLOs programmatically, it's easier to define the SLO in the Datadog UI and [export its valid JSON][1]. + +**ARGUMENTS**: + +* **`type`** [*required*]: + The [type of the SLO][2], chosen from: + +| SLO Type | type attribute value | +|:-------------|:---------------------------------| +| metric | `metric` | +| monitor | `monitor` | + +* **`name`** [*required*, *default* = **dynamic, based on query**]: + The name of the SLO. +* **`description`** [*optional*, *default* = **empty**]: + A description of the SLO. +* **`tags`** [*optional*, *default* = **empty list**]: + A list of tags to associate with your SLO. +* **`thresholds`** [*required*]: + A list of Target thresholds, requires at least 1. + + * **`timeframe`** [*required*]: + The timeframe to apply to the target value. Valid options are `7d`, `30d`, `90d`. + * **`target`** [*required*]: + The target value to associate with the SLI that defines the SLO. + * **`target_displauy`** [*optional*, *default* = **dynamic, based on query**]: + The target display value that includes the requires level of precision. + * **`warning`** [*optional*, *default* = **none**]: + A warning target value to indicate when the SLI is close to breaching the `target`. + * **`warning_display`** [*optional*, *default* = **dynamic, based on query**]: + A warning target display value that includes the requires level of precision. + +##### Monitor Based SLO + +* **`monitor_ids`** [*required*, *default* = **empty list**]: + Specify up to 20 monitor IDs directly for a monitor-based SLO. You can optionally on-create-dynamically select + monitor IDs using the following option instead: +* **`monitor_search`** [*optional*]: + Optional way to specify monitor IDs on create is to use a monitor search. On first create or edit, it will dynamically + search for the provided parameters and select up to the first 50 monitors matching the query. +* **`groups`** [*optional*, *default* = **empty list**]: + **Note: Only valid on single monitor SLOs** Specify the selected groups as a sub query of the selected monitor. + +##### Metric Based SLO +* **`query`** [*required*]: + The query defines the metric-based SLO query. It requires two arguments: + + * **`numerator`** [*required*]: + Defines the sum of the `good` events + * **`denominator`** [*required*]: + Defines the sum of the `total` events. **Note: this should always be >= `good` events** + + +[1]: /service_level_objectives/#export-your-service-level-objective +[2]: /service_level_objectives/slo_types diff --git a/content/en/api/service_level_objectives/service_level_objectives_create_code.md b/content/en/api/service_level_objectives/service_level_objectives_create_code.md new file mode 100644 index 0000000000000..c585f5cd9de7e --- /dev/null +++ b/content/en/api/service_level_objectives/service_level_objectives_create_code.md @@ -0,0 +1,18 @@ +--- +title: Create a service level objective +type: apicode +order: 29.01 +external_redirect: /api/#create-a-service-level-objective +--- + +**SIGNATURE**: + +`POST /v1/slo` + +**EXAMPLE REQUEST**: + +{{< code-snippets basename="api-slo-create" >}} + +**EXAMPLE RESPONSE**: + +{{< code-snippets basename="result.api-slo-create" >}} diff --git a/content/en/api/service_level_objectives/service_level_objectives_delete.md b/content/en/api/service_level_objectives/service_level_objectives_delete.md new file mode 100644 index 0000000000000..0586a671f8d93 --- /dev/null +++ b/content/en/api/service_level_objectives/service_level_objectives_delete.md @@ -0,0 +1,12 @@ +--- +title: Delete a Service Level Objective +type: apicontent +order: 29.04 +external_redirect: /api/#delete-a-service-level-objective +--- + +## Delete a Service Level Objective + +**ARGUMENTS**: + +This endpoint takes no JSON arguments. diff --git a/content/en/api/service_level_objectives/service_level_objectives_delete_code.md b/content/en/api/service_level_objectives/service_level_objectives_delete_code.md new file mode 100644 index 0000000000000..32636b2cb39bc --- /dev/null +++ b/content/en/api/service_level_objectives/service_level_objectives_delete_code.md @@ -0,0 +1,18 @@ +--- +title: Delete a Service Level Objective +type: apicode +order: 29.04 +external_redirect: /api/#delete-a-service-level-objective +--- + +**SIGNATURE**: + +`DELETE /v1/slo/` + +**EXAMPLE REQUEST**: + +{{< code-snippets basename="api-slo-delete" >}} + +**EXAMPLE RESPONSE**: + +{{< code-snippets basename="result.api-slo-delete" >}} diff --git a/content/en/api/service_level_objectives/service_level_objectives_delete_many.md b/content/en/api/service_level_objectives/service_level_objectives_delete_many.md new file mode 100644 index 0000000000000..cd31cc6dd78d8 --- /dev/null +++ b/content/en/api/service_level_objectives/service_level_objectives_delete_many.md @@ -0,0 +1,12 @@ +--- +title: Delete many Service Level Objectives +type: apicontent +order: 29.05 +external_redirect: /api/#delete-many-service-level-objectives +--- + +## Delete many Service Level Objectives + +**ARGUMENTS**: + +This endpoint expects a non-empty list of `SLO ID`(s) as the message body. diff --git a/content/en/api/service_level_objectives/service_level_objectives_delete_many_code.md b/content/en/api/service_level_objectives/service_level_objectives_delete_many_code.md new file mode 100644 index 0000000000000..cb412fd929f50 --- /dev/null +++ b/content/en/api/service_level_objectives/service_level_objectives_delete_many_code.md @@ -0,0 +1,18 @@ +--- +title: Delete many Service Level Objectives +type: apicode +order: 29.05 +external_redirect: /api/#delete-many-service-level-objectives +--- + +**SIGNATURE**: + +`DELETE /v1/slo` + +**EXAMPLE REQUEST**: + +{{< code-snippets basename="api-slo-delete-many" >}} + +**EXAMPLE RESPONSE**: + +{{< code-snippets basename="result.api-slo-delete-many" >}} diff --git a/content/en/api/service_level_objectives/service_level_objectives_edit.md b/content/en/api/service_level_objectives/service_level_objectives_edit.md new file mode 100644 index 0000000000000..49626cb420530 --- /dev/null +++ b/content/en/api/service_level_objectives/service_level_objectives_edit.md @@ -0,0 +1,51 @@ +--- +title: Edit a Service Level Objective +type: apicontent +order: 29.03 +external_redirect: /api/#edit-a-service-level-objective +--- + +## Edit A Service Level Objective + +**ARGUMENTS**: + +* **`name`** [*required, optional on edit*]: + The name of the SLO. +* **`description`** [*optional*, *default*=**dynamic, based on query**]: + A description of the SLO. +* **`tags`** [*optional*, *default*=**None**]: + A list of tags to associate with your SLO. +* **`thresholds`** [*optional*, *default*=**None**]: + A list of Target thresholds, do not specify if not changing. + + * **`timeframe`** [*required*]: + The timeframe to apply to the target value. Valid options are `7d`, `30d`, `90d`. + * **`target`** [*required*]: + The target value to associate with the SLI that defines the SLO. + * **`target_displauy`** [*optional*, *default* = **dynamic, based on query**]: + The target display value that includes the requires level of precision. + * **`warning`** [*optional*, *default* = **none**]: + A warning target value to indicate when the SLI is close to breaching the `target`. + * **`warning_display`** [*optional*, *default* = **dynamic, based on query**]: + A warning target display value that includes the requires level of precision. + +#### Monitor Based SLO + +* **`monitor_ids`** [*required*, *default* = **empty list**]: + Specify up to 20 monitor IDs directly for a monitor-based SLO. You can optionally on-create-dynamically select + monitor IDs using the following option instead: +* **`monitor_search`** [*optional*]: + Optional way to specify monitor IDs on create is to use a monitor search. On first create or edit, it will dynamically + search for the provided parameters and select up to the first 50 monitors matching the query. +* **`groups`** [*optional*, *default* = **empty list**]: + **Note: Only valid on single monitor SLOs** Specify the selected groups as a sub query of the selected monitor. + +##### Metric Based SLO +* **`query`** [*required*]: + The query defines the metric-based SLO query. It requires two arguments: + + * **`numerator`** [*required*]: + Defines the sum of the `good` events + * **`denominator`** [*required*]: + Defines the sum of the `total` events. **Note: this should always be >= `good` events** + diff --git a/content/en/api/service_level_objectives/service_level_objectives_edit_code.md b/content/en/api/service_level_objectives/service_level_objectives_edit_code.md new file mode 100644 index 0000000000000..217f4b720cbce --- /dev/null +++ b/content/en/api/service_level_objectives/service_level_objectives_edit_code.md @@ -0,0 +1,18 @@ +--- +title: Edit a Service Level Objective +type: apicode +order: 29.03 +external_redirect: /api/#edit-a-service-level-objective +--- + +**SIGNATURE**: + +`PUT /v1/slo/` + +**EXAMPLE REQUEST**: + +{{< code-snippets basename="api-slo-edit" >}} + +**EXAMPLE RESPONSE**: + +{{< code-snippets basename="result.api-slo-edit" >}} diff --git a/content/en/api/service_level_objectives/service_level_objectives_get.md b/content/en/api/service_level_objectives/service_level_objectives_get.md new file mode 100644 index 0000000000000..7f881b888d569 --- /dev/null +++ b/content/en/api/service_level_objectives/service_level_objectives_get.md @@ -0,0 +1,8 @@ +--- +title: Get a service level objective's details +type: apicontent +order: 29.02 +external_redirect: /api/#get-a-service-level-objective-s-details +--- + +## Get a service level objective's details diff --git a/content/en/api/service_level_objectives/service_level_objectives_get_code.md b/content/en/api/service_level_objectives/service_level_objectives_get_code.md new file mode 100644 index 0000000000000..5f6d0bf97d127 --- /dev/null +++ b/content/en/api/service_level_objectives/service_level_objectives_get_code.md @@ -0,0 +1,18 @@ +--- +title: Get a service level objective's details +type: apicode +order: 29.02 +external_redirect: /api/#get-a-service-level-objective-s-details +--- + +**SIGNATURE**: + +`GET /v1/slo/` + +**EXAMPLE REQUEST**: + +{{< code-snippets basename="api-slo-get" >}} + +**EXAMPLE RESPONSE**: + +{{< code-snippets basename="result.api-slo-get" >}} diff --git a/content/en/api/service_level_objectives/service_level_objectives_search.md b/content/en/api/service_level_objectives/service_level_objectives_search.md new file mode 100644 index 0000000000000..5665a5058eb67 --- /dev/null +++ b/content/en/api/service_level_objectives/service_level_objectives_search.md @@ -0,0 +1,35 @@ +--- +title: Search Service Level Objectives +type: apicontent +order: 29.12 +external_redirect: /api/#search-service-level-objectives +--- + +## Search Service Level Objectives + +Search and filter your service level objectives details. + +**ARGUMENTS**: + +* **`ids`** [*optional*]: + + Query multiple SLOs by their IDs. + +* **`query`** [*optional*]: + + After entering a search query in your [List Service Level Objectives page][1] use the query parameter value in the URL of the page as value for this parameter. Consult the dedicated [list service level objectives documentation][2] page to learn more. + + The query can contain any number of space-separated monitor attributes, for instance `query="type:metric foo"`. + +* **`offset`** [*optional*, *default* = **0**]: + + Offset to start from. + +* **`limit`** [*optional*, *default*=**30**]: + + Number of SLOs to return per query. + + + +[1]: https://app.datadoghq.com/slo +[2]: /service_level_objectives/list_slo diff --git a/content/en/api/service_level_objectives/service_level_objectives_search_code.md b/content/en/api/service_level_objectives/service_level_objectives_search_code.md new file mode 100644 index 0000000000000..21f0957f1fb99 --- /dev/null +++ b/content/en/api/service_level_objectives/service_level_objectives_search_code.md @@ -0,0 +1,18 @@ +--- +title: Search Service Level Objectives +type: apicode +order: 29.12 +external_redirect: /api/#search-service-level-objectives +--- + +**SIGNATURE**: + +`GET /v1/slo` + +**EXAMPLE REQUEST**: + +{{< code-snippets basename="api-slo-search" >}} + +**EXAMPLE RESPONSE**: + +{{< code-snippets basename="result.api-slo-search" >}} diff --git a/content/en/service_level_objectives/_index.md b/content/en/service_level_objectives/_index.md new file mode 100644 index 0000000000000..79f13e121c511 --- /dev/null +++ b/content/en/service_level_objectives/_index.md @@ -0,0 +1,34 @@ +--- +title: Service Level Objectives +kind: documentation +aliases: + - /guides/service_level_objectives/ + - /guides/service_level_objective/ + - /guides/slos/ + - /guides/slo/ +description: Create & manage your Service Level Objectives +further_reading: + - link: "https://www.datadoghq.com/blog/slo-monitoring-tracking/" + tag: "Blog" + text: "Track the status of all your SLOs in Datadog" + - link: "/api/#servicelevelobjectives" + tag: "Documentation" + text: "Datadog Service Level Objectives API" +--- + +Service Level Objectives, or SLOs, are a key part of the site reliability engineering toolkit. SLOs provide a +framework for defining clear targets around application performance, which ultimately help teams provide a consistent +customer experience, balance feature development with platform stability, and improve communication with internal and +external users. + +## Overview + +{{< whatsnext desc="This section includes the following topics:">}} + {{< nextlink href="/service_level_objectives/slo_types" >}}Service Level Objective Types: Create, edit, or audit your SLOs.{{< /nextlink >}} + {{< nextlink href="/service_level_objectives/list_slos" >}}List SLOs: See all your SLOs in one place. Search, delete or edit service tags for selected SLOs in bulk.{{< /nextlink >}} + {{< nextlink href="/service_level_objectives/slo_status" >}}SLO Status: See the status of a specific SLO over time.{{< /nextlink >}} + {{< nextlink href="/service_level_objectives/widget" >}}SLO Widget: Track service level objectives (SLOs) with the SLO widget on dashboards.{{< /nextlink >}} +{{< /whatsnext >}} + +## Further Reading +{{< partial name="whats-next/whats-next.html" >}} diff --git a/content/en/service_level_objectives/list_slos.md b/content/en/service_level_objectives/list_slos.md new file mode 100644 index 0000000000000..1d12893ad574a --- /dev/null +++ b/content/en/service_level_objectives/list_slos.md @@ -0,0 +1,47 @@ +--- +title: List Service Level Objectives +kind: documentation +further_reading: +- link: "service_level_objectives/slo_types" + tag: "Documentation" + text: "Learn how to create a SLO" +--- + +The [List Service Level Objectives][1] page lets you run an advanced search of all SLOs so you can view, delete or edit service tags for selected SLOs in bulk. You can also clone or fully edit any individual SLO in the search results. + +{{< img src="service_level_objectives/edit_slo/edit_slo_page.png" alt="edit slo page" responsive="true" >}} + +## Find the Service Level Objectives + +Advanced search lets you query SLOs by any combination of SLO attributes: + +* `name` and `description` - text search +* `time window` - *, 7d, 30d, 90d +* `type` - metric, monitor +* `creator` +* `id` +* `service` - tags +* `team` - tags +* `env` - tags + +To run a search, construct your query using the checkboxes on the left and/or the search bar along the top. When you check the boxes, the search bar updates with the equivalent query. Likewise, when you modify the search bar query (or write one from scratch), the checkboxes update to reflect the change. In any case, query results update in real-time as you edit the query; there's no 'Search' button to click. + +## Manage chosen Service Level Objectives + +When you have found the SLOs you were looking for, select one or more that you wish to update using the checkboxes next to each result. You can select all results by ticking the topmost checkbox next to the STATUS column heading. Modify the SLOs in bulk using the buttons at the top right of the search results: Delete is currently the only supported operation. + +To edit an individual SLO, hover over it and use the buttons to the far right in its row: Edit, Clone, Delete. To see more detail on a SLO, click its table row to visit its status page. + +{{< img src="service_level_objectives/edit_slo/edit-slo-hover-clone.png" alt="edit-slo-hover-clone" responsive="true" style="width:80%;" >}} + +### Service Level Objective Tags + +{{< img src="service_level_objectives/edit_slo/slo-tags.png" alt="Monitor tags" responsive="true" style="width:30%;" >}} + +You can choose to add tags directly to your SLos that you can use for filtering on the [list SLOs][1] pages. + +## Further Reading + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/slo diff --git a/content/en/service_level_objectives/slo_status.md b/content/en/service_level_objectives/slo_status.md new file mode 100644 index 0000000000000..d7b9af05ad997 --- /dev/null +++ b/content/en/service_level_objectives/slo_status.md @@ -0,0 +1,59 @@ +--- +title: Service Level Objective Status +kind: documentation +description: "Get an overview of your SLO status over time" +further_reading: +- link: "service_level_objectives/slo_types" + tag: "Documentation" + text: "Learn how to create a Service Level Objective" +--- + +{{< img src="service_level_objectives/slo_status/slo_status_page.png" alt="slo status page" responsive="true" >}} + +## Overview +After [creating your SLO][1], use the SLO status page to view the status over time. This page contains the following sections: + +* [Header](#header) +* [Status and History](#status-and-history) + + +## Header +On the left, the header contains the SLO's name, description, creator, query and tags. + +On the right, the header contains the **Settings** cog. + + +### Settings +Click the settings cog to display the options available: + +| Option | Description | +|--------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Edit | Edit the current SLO. More information is available in [Service Level Objective Types][1]. | +| Clone | Make a copy of the current SLO. | +| Delete | Delete the current SLO. You will be prompted to confirm the deletion. | + +## Properties + +{{< img src="service_level_objectives/slo_status/status_slo_properties.png" alt="status slo properties" responsive="true" style="width:80%;" >}} + +The *Properties* section is the overview of your SLO: + +* The status of your SLO +* The SLO creator +* Tags attached to your SLO. *Edit the tag list by clicking on the pencil icon*. +* The SLO query +* The SLO description + +Use the *cog* icon in the upper right corner of the page to [edit][1] your SLO properties. + +## Status and History + +The *Status and History* section reflect the query and SLO status over time over the selected time frame: + +{{< img src="service_level_objectives/slo_status/status_slo_history.mp4" alt="status slo history" video="true" responsive="true" width="80%" >}} + +## Further Reading + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /service_level_objectives/slo_types diff --git a/content/en/service_level_objectives/slo_types/_index.md b/content/en/service_level_objectives/slo_types/_index.md new file mode 100644 index 0000000000000..a35e099a99d4a --- /dev/null +++ b/content/en/service_level_objectives/slo_types/_index.md @@ -0,0 +1,17 @@ +--- +title: Service Level Objectives +kind: documentation +aliases: + - /slos +--- + +To [create a SLO][1] in Datadog, hover over **Monitors** in the main menu and click **New Service Level Objective** in the sub-menu. To create a SLO programmatically, see the [Datadog API][2] or [community maintained libraries][3]. + +{{< whatsnext desc="Select a SLO type:">}} + {{< nextlink href="/service_level_objectives/slo_types/monitor" >}}Monitor{{< /nextlink >}} + {{< nextlink href="/service_level_objectives/slo_types/metric" >}}Metric{{< /nextlink >}} +{{< /whatsnext >}} + +[1]: https://app.datadoghq.com/slo/new +[2]: /api/#servicelevelobjectives +[3]: /developers/libraries/#managing-service-level-objectives diff --git a/content/en/service_level_objectives/slo_types/metric.md b/content/en/service_level_objectives/slo_types/metric.md new file mode 100644 index 0000000000000..8797772ec6110 --- /dev/null +++ b/content/en/service_level_objectives/slo_types/metric.md @@ -0,0 +1,59 @@ +--- +title: Metric based SLO +kind: documentation +description: "Use Metrics to define the Service Level Objective" +further_reading: +- link: "metrics" + tag: "Documentation" + text: "More information about metrics" +--- + +## Overview + +Metric based SLOs are useful for a count-based stream of data where you are differentiating good and/or bad events. +Using the sum of the good events divided by the sum of total events over time provides a Service Level Indicator (or SLI). + +## Service Level Objective creation + +To create a [metric SLO][1] in Datadog, use the main navigation: *Monitors --> New Service Level Objective --> Event Based*. + +### Define the source (SLI) + +{{< tabs >}} +{{% tab "Event Based" %}} + +There are 2 queries to define. The first query defines the sum of the good events, while the second query defines the sum of +the total events. + +It is only recommended to use the `sum by` aggregator and to add all events. + +Example: If tracking HTTP return codes, and your metric includes a tag like `code:2xx` || `code:3xx` || `code:4xx`. +The sum of good events would be `sum:httpservice.hits{code:2xx} + sum:httpservice.hits{code:4xx}`. And the `total` events +would be `sum:httpservice.hits{!code:3xx}`. + +Why did we exclude `HTTP 3xx`? - These are typically redirects and should not count for or against the SLI, but other non 3xx +based error codes should. In the `total` case we want all types minus `HTTP 3xx`, in the `numerator` we only want `OK` type +status codes. + +{{% /tab %}} +{{% tab "Set your targets" %}} + +Setting your targets for your SLI's is an important step, this is the value that you are aiming for or better. + +First select your target value, example: `95% of all HTTP requests should be "good" over the last 7 days`. + +You can optionally include a warning value that is greater than the target value to indicate when you are approaching +an SLO breach. + + +{{% /tab %}} +{{% tab "Identify this indicator" %}} + +Here we add contextual information about the purpose of the SLO, including any related information +in the description and tags you would like to associate with the SLO. + +## Further Reading + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/slo/new/event diff --git a/content/en/service_level_objectives/slo_types/monitor.md b/content/en/service_level_objectives/slo_types/monitor.md new file mode 100644 index 0000000000000..b8243d7d08fc2 --- /dev/null +++ b/content/en/service_level_objectives/slo_types/monitor.md @@ -0,0 +1,56 @@ +--- +title: Monitor based SLO +kind: documentation +description: "Use Monitors to define the Service Level Objective" +further_reading: +- link: "monitors" + tag: "Documentation" + text: "More information about Monitors" +--- + +## Overview + +Monitor based SLOs are useful for a time-based stream of data where you are differentiating time of good behavior vs bad behavior. +Using the sum of the good time divided by the sum of total time provides a Service Level Indicator (or SLI). + +## Service Level Objective creation + +To create a [monitor SLO][1] in Datadog, use the main navigation: *Monitors --> New Service Level Objective --> Monitor Based*. + +### Define the source (SLI) + +{{< tabs >}} +{{% tab "Monitor Based" %}} + +Use the input area to search for monitors that should apply using the same search syntax as in the Manage Monitors page. + +You can select up to 20 monitors to include in the SLO. + +Example: You might be tracking the uptime of a physical device. You have already configured a metric monitor on `host:foo` using +a custom metric. This monitor might also ping your on-call team if it's no longer reachable. To avoid burnout you want to +track how often this host is down. + +Search for this monitor by name and click on it to add it to the source list. + +{{% /tab %}} +{{% tab "Set your targets" %}} + +Setting your targets for your SLI's is an important step, this is the value that you are aiming for or better. + +First select your target value, example: `95% of the time I expect the host to be up over the last 30 days`. + +You can optionally include a warning value that is greater than the target value to indicate when you are approaching +an SLO breach. + + +{{% /tab %}} +{{% tab "Identify this indicator" %}} + +Here we add contextual information about the purpose of the SLO, including any related information +in the description and tags you would like to associate with the SLO. + +## Further Reading + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/slo/new/monitor diff --git a/content/en/service_level_objectives/widget.md b/content/en/service_level_objectives/widget.md new file mode 100644 index 0000000000000..46c6cc0f79e4b --- /dev/null +++ b/content/en/service_level_objectives/widget.md @@ -0,0 +1,17 @@ +--- +title: Service Level Objective Dashboard Widget +kind: documentation +description: "Visualize a SLO in a dashboard" +further_reading: +- link: "service_level_objectives/slo_types" + tag: "Documentation" + text: "Learn how to create a Service Level Objective" +--- + +{{< img src="service_level_objectives/slo_widget/slo_widget.png" alt="slo status page" responsive="true" >}} + +## Overview +After [creating your SLO][1], you can use these SLOs in the SLO dashboard widget to visualize +the status of your SLOs for along with your dashboard metrics, logs and APM data. + +[1]: From 679d30b22651595ab745032425c4af394625550f Mon Sep 17 00:00:00 2001 From: Cody Lee Date: Mon, 30 Sep 2019 16:50:24 -0500 Subject: [PATCH 02/14] deprecate old docs and update links --- config/_default/menus/menus.en.yaml | 47 ++++++++-- config/_default/menus/menus.fr.yaml | 4 - config/_default/menus/menus.ja.yaml | 9 +- content/en/monitors/_index.md | 1 - content/en/monitors/slos.md | 86 ------------------- content/en/service_level_objectives/_index.md | 3 +- .../slo_types/_index.md | 14 ++- 7 files changed, 59 insertions(+), 105 deletions(-) delete mode 100644 content/en/monitors/slos.md diff --git a/config/_default/menus/menus.en.yaml b/config/_default/menus/menus.en.yaml index 06a5454b8037f..80e6f1a34d29d 100644 --- a/config/_default/menus/menus.en.yaml +++ b/config/_default/menus/menus.en.yaml @@ -656,11 +656,6 @@ main: weight: 6 parent: "alerting" - - name: "Service Level Objectives" - url: "monitors/slos/" - weight: 7 - parent: "alerting" - ## MONITORS - Guides - name: "Guides" @@ -669,6 +664,48 @@ main: parent: "alerting" +############################## +## SERVICE LEVEL OBJECTIVES ## +############################## + + - name: "Service Level Objectives" + url: "service_level_objectives/" + pre: "nav_slo" + identifier: "slo" + weight: 75000 + + ## SLO - Monitor Types + + - name: "Service Level Objectives" + url: "service_level_objectives/slo_types/" + parent: "slo" + identifier: "slo_types" + weight: 1 + - name: "Monitor" + url: "service_level_objectives/slo_types/monitor/" + parent: "slo_types" + weight: 101 + - name: "Metric" + url: "service_level_objectives/slo_types/metric/" + parent: "slo_types" + weight: 102 + + ## SLO + - name: "List Service Level Objectives" + url: "service_level_objectives/list_slos/" + weight: 2 + parent: "slo" + + - name: "Service Level Objective Status" + url: "service_level_objectives/slo_status/" + weight: 3 + parent: "slo" + + - name: "Service Level Objective Dashboard Widget" + url: "service_level_objectives/widget/" + weight: 4 + parent: "slo" + ################# ## TRACING/APM ## diff --git a/config/_default/menus/menus.fr.yaml b/config/_default/menus/menus.fr.yaml index 3eac2a9ca8061..f2943e3d08567 100644 --- a/config/_default/menus/menus.fr.yaml +++ b/config/_default/menus/menus.fr.yaml @@ -549,10 +549,6 @@ main: url: monitors/downtimes/ weight: 6 parent: alerting - - name: Service Level Objectives - url: monitors/slos/ - weight: 7 - parent: alerting - name: Guides url: monitors/guide/ weight: 100 diff --git a/config/_default/menus/menus.ja.yaml b/config/_default/menus/menus.ja.yaml index 8e11f9ea260bf..4b9a3b1a1054b 100644 --- a/config/_default/menus/menus.ja.yaml +++ b/config/_default/menus/menus.ja.yaml @@ -17,7 +17,7 @@ main: url: "getting_started/integrations/" parent: "getting_started" weight: 3 - + ## GETTING STARTED - Traces - name: "トレースの収集" @@ -30,7 +30,7 @@ main: url: "getting_started/learning_center/" parent: "getting_started" weight: 6 - + - name: "Prometheus/Openmetrics" identifier: "getting_started_prometheus" url: "getting_started/integrations/prometheus" @@ -562,11 +562,6 @@ main: weight: 6 parent: "alerting" - - name: "SLO ウィジェット" - url: "monitors/slo_widget/" - weight: 7 - parent: "alerting" - - name: "ガイド" url: "monitors/guide/" weight: 8 diff --git a/content/en/monitors/_index.md b/content/en/monitors/_index.md index 004011aaa1140..62055923221eb 100644 --- a/content/en/monitors/_index.md +++ b/content/en/monitors/_index.md @@ -27,7 +27,6 @@ Monitoring all of your infrastructure in one place wouldn't be complete without {{< nextlink href="/monitors/check_summary" >}}Check Summary: See the status of all your integration checks in one place.{{< /nextlink >}} {{< nextlink href="/monitors/notifications" >}}Notifications: Once a monitor is created, you are notified when its conditions are met. You can also notify team members by email, 3rd party services (like Pagerduty), or other custom endpoints with Webhooks.{{< /nextlink >}} {{< nextlink href="/monitors/downtimes" >}}Downtimes: Schedule downtimes for system shutdowns, off-line maintenance, or upgrades without triggering your monitors.{{< /nextlink >}} - {{< nextlink href="/monitors/slo_widget" >}}SLO Widget: Track service level objectives (SLOs) with the SLO and uptime widget on dashboards.{{< /nextlink >}} {{< nextlink href="/monitors/guide" >}}Guides: Additional helpful articles about monitors and alerting.{{< /nextlink >}} {{< /whatsnext >}} diff --git a/content/en/monitors/slos.md b/content/en/monitors/slos.md deleted file mode 100644 index 20df25bf2c0ce..0000000000000 --- a/content/en/monitors/slos.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Service Level Objectives -kind: documentation -description: "Track the status of your SLOs" -disable_toc: true -aliases: - - /monitors/monitor_uptime_widget/ -further_reading: -- link: "https://www.datadoghq.com/blog/slo-monitoring-widget/" - tag: "Blog" - text: "Track the status of your SLOs with the new monitor uptime widget" ---- - -## Setup - -Use the SLO and uptime widget to track your SLOs (Service Level Objectives) and uptime on screenboards and timeboards. You can use SLO by adding a widget to a dashboard, or by going to Datadog’s [Service Level Objectives page][1] to create new SLOs and view all existing ones. Select an existing SLO from the dropdown and display it on any dashboard. - -*Uptime* is defined as the amount of time a monitor was in an *up* state (OK) compared to *down* state (non-OK). The status is represented in bars as green (up) and red (down). Example: ’99 % of the time latency is less than 200ms.` - -You can also track success rate and event-based SLIs (Service Level Indicators). Example: `99 % of requests are successful.` - -{{< img src="monitors/slo/create-slo.png" alt="create a slo" responsive="true" >}} - -### Configuration - -1. On the [SLO page][1], select **New SLO +**. -2. Define the source for your monitors. -3. Set your target uptime. -4. Finally, give the SLO a title and save it. - -Once you have monitors set up, on the [main Service Level Objectives page][1], you can view the overall uptime percentage only—or the overall percentage, plus the uptime for each monitor. - -{{< img src="monitors/slo/slo-overview.png" alt="slo main page" responsive="true" >}} - -### Options - -#### Define the source - -| Option | Description | -| ------------------- | ------------------------------------------------------------------------- | -| [Monitor](#monitor) | Define the percent uptime for your service. | -| [Event](#event) | Define when you want Datadog to warn you about uptime for your service. | - -##### Monitor - -Select a monitor based source if you want to build your SLO based on existing or new Datadog monitors. For more information about monitors, see the [Monitor documentation][2]. - -To set up a new SLO monitor, go to the [monitor page][3]. An example SLO on a monitor is if the latency of all user requests should be less than 250ms 99% of the time in any 30 day window. To set this up, you would: - -1. Select a single monitor or, -2. Select multiple monitors (up to 20) or, -3. Select a single multi-alert monitor and select specific monitor groups (up to 20) to be included in SLO calculation. - -**Supported monitor types**: - -- metric monitor types - including metric, anomaly, APM, forecast, outlier, and integration metrics -- service checks -- synthetics - -##### Event - -Select your metrics. Define a success rate through numerator and denominator fields. Select the metrics that represent your successful events in the numerator, and select the metrics that represent your total events in the denominator. - -You can add up to as many metrics as you need for both fields and add a formula to calculate the total for each. - -#### Define your target - -Available windows are: 7 days, month-to-date, 30 days (rolling), Previous Month, and 90 days (rolling). - -**Note**: For 7 days, the widget is restricted to two decimal places. For 30 days and up, it’s restricted to two to three decimal places. - -### Show error budget - -By default, the widget displays the error budget. The error budget represents the amount of time you are allowed to be in the red until you breach your defined SLO. This is calculated using the value entered into your conditional formatting and the time window selected. If nothing is selected, you will see an error message that states: _No Rules Specified_. You can change this by editing the widget. - -## Feature requests - -To submit a feature request, reach out to [Datadog Support][2]. - -## Further Reading - -{{< partial name="whats-next/whats-next.html" >}} - -[1]: https://app.datadoghq.com/slo -[2]: /monitors -[3]: https://app.datadoghq.com/monitors#create/metric diff --git a/content/en/service_level_objectives/_index.md b/content/en/service_level_objectives/_index.md index 79f13e121c511..39341314875a6 100644 --- a/content/en/service_level_objectives/_index.md +++ b/content/en/service_level_objectives/_index.md @@ -6,12 +6,13 @@ aliases: - /guides/service_level_objective/ - /guides/slos/ - /guides/slo/ + - /monitors/monitor_uptime_widget/ description: Create & manage your Service Level Objectives further_reading: - link: "https://www.datadoghq.com/blog/slo-monitoring-tracking/" tag: "Blog" text: "Track the status of all your SLOs in Datadog" - - link: "/api/#servicelevelobjectives" + - link: "/api/#service-level-objectives" tag: "Documentation" text: "Datadog Service Level Objectives API" --- diff --git a/content/en/service_level_objectives/slo_types/_index.md b/content/en/service_level_objectives/slo_types/_index.md index a35e099a99d4a..95c2752122921 100644 --- a/content/en/service_level_objectives/slo_types/_index.md +++ b/content/en/service_level_objectives/slo_types/_index.md @@ -5,13 +5,25 @@ aliases: - /slos --- -To [create a SLO][1] in Datadog, hover over **Monitors** in the main menu and click **New Service Level Objective** in the sub-menu. To create a SLO programmatically, see the [Datadog API][2] or [community maintained libraries][3]. +## Setup + +Use the SLO and uptime widget to track your SLOs (Service Level Objectives) and uptime on screenboards and timeboards. You can use SLO by adding a widget to a dashboard, or by going to Datadog’s [Service Level Objectives page][1] to create new SLOs and view all existing ones. Select an existing SLO from the dropdown and display it on any dashboard. + +*Uptime* is defined as the amount of time a monitor was in an *up* state (OK) compared to *down* state (non-OK). The status is represented in bars as green (up) and red (down). Example: ’99 % of the time latency is less than 200ms.` + +You can also track success rate and event-based SLIs (Service Level Indicators). Example: `99 % of requests are successful.` + +{{< img src="monitors/slo/create-slo.png" alt="create a slo" responsive="true" >}} {{< whatsnext desc="Select a SLO type:">}} {{< nextlink href="/service_level_objectives/slo_types/monitor" >}}Monitor{{< /nextlink >}} {{< nextlink href="/service_level_objectives/slo_types/metric" >}}Metric{{< /nextlink >}} {{< /whatsnext >}} +{{< whatsnext desc="Additional Docs:">}} + {{< nextlink href="/api/#service-level-objectives" >}}API Usage{{< /nextlink >}} +{{< /whatsnext >}} + [1]: https://app.datadoghq.com/slo/new [2]: /api/#servicelevelobjectives [3]: /developers/libraries/#managing-service-level-objectives From 074b5e160821838c08963f057dd16dc45339b8b1 Mon Sep 17 00:00:00 2001 From: Pierre Guceski Date: Tue, 1 Oct 2019 08:36:18 +0200 Subject: [PATCH 03/14] fixing API page + adding code placeholders --- .../code_snippets/api-slo-bulk-delete.py | 2 ++ .../code_snippets/api-slo-bulk-delete.rb | 2 ++ .../code_snippets/api-slo-bulk-delete.sh | 1 - .../code_snippets/api-slo-create.py | 2 ++ .../code_snippets/api-slo-create.rb | 2 ++ .../code_snippets/api-slo-delete-many.py | 2 ++ .../code_snippets/api-slo-delete-many.rb | 2 ++ .../code_snippets/api-slo-delete.py | 2 ++ .../code_snippets/api-slo-delete.rb | 2 ++ .../service_level_objectives/code_snippets/api-slo-edit.py | 2 ++ .../service_level_objectives/code_snippets/api-slo-edit.rb | 2 ++ .../service_level_objectives/code_snippets/api-slo-get.py | 2 ++ .../service_level_objectives/code_snippets/api-slo-get.rb | 2 ++ .../code_snippets/api-slo-search.py | 2 ++ .../code_snippets/api-slo-search.rb | 2 ++ .../code_snippets/result.api-slo-bulk-delete.py | 2 ++ .../code_snippets/result.api-slo-bulk-delete.rb | 2 ++ .../code_snippets/result.api-slo-create.py | 2 ++ .../code_snippets/result.api-slo-create.rb | 2 ++ .../code_snippets/result.api-slo-delete-many.py | 2 ++ .../code_snippets/result.api-slo-delete-many.rb | 2 ++ .../code_snippets/result.api-slo-delete.py | 2 ++ .../code_snippets/result.api-slo-delete.rb | 2 ++ .../code_snippets/result.api-slo-edit.py | 2 ++ .../code_snippets/result.api-slo-edit.rb | 2 ++ .../code_snippets/result.api-slo-get.py | 2 ++ .../code_snippets/result.api-slo-get.rb | 2 ++ .../code_snippets/result.api-slo-search.py | 2 ++ .../code_snippets/result.api-slo-search.rb | 2 ++ .../service_level_objectives_bulk_delete.md | 6 +++--- .../service_level_objectives_bulk_delete_code.md | 4 ++-- .../service_level_objectives_search.md | 2 +- .../service_level_objectives_search_code.md | 2 +- content/en/api/synthetics/creating_test.md | 2 +- content/en/api/synthetics/get_browsers.md | 2 +- content/en/api/synthetics/get_browsers_code.md | 2 +- content/en/api/synthetics/get_locations.md | 2 +- content/en/api/synthetics/get_locations_code.md | 2 +- content/en/api/synthetics/get_result.md | 2 +- content/en/api/synthetics/get_result_code.md | 2 +- content/en/api/synthetics/get_results.md | 2 +- content/en/api/synthetics/get_results_code.md | 2 +- content/en/api/synthetics/get_test.md | 2 +- content/en/api/synthetics/get_test_code.md | 2 +- content/en/api/synthetics/get_tests.md | 2 +- content/en/api/synthetics/get_tests_code.md | 2 +- content/en/api/synthetics/post_delete.md | 2 +- content/en/api/synthetics/post_delete_code.md | 2 +- content/en/api/synthetics/post_test.md | 2 +- content/en/api/synthetics/post_test_code.md | 2 +- content/en/api/synthetics/put_status.md | 2 +- content/en/api/synthetics/put_status_code.md | 2 +- content/en/api/synthetics/put_test.md | 2 +- content/en/api/synthetics/put_test_code.md | 2 +- content/en/api/synthetics/synthetics.md | 2 +- content/en/api/tags/tags.md | 2 +- content/en/api/tags/tags_add.md | 2 +- content/en/api/tags/tags_add_code.md | 2 +- content/en/api/tags/tags_code.md | 2 +- content/en/api/tags/tags_delete.md | 2 +- content/en/api/tags/tags_delete_code.md | 2 +- content/en/api/tags/tags_get.md | 2 +- content/en/api/tags/tags_get_code.md | 2 +- content/en/api/tags/tags_get_host.md | 2 +- content/en/api/tags/tags_get_host_code.md | 2 +- content/en/api/tags/tags_update.md | 2 +- content/en/api/tags/tags_update_code.md | 2 +- content/en/api/timeboards/timeboards.md | 2 +- content/en/api/timeboards/timeboards_code.md | 2 +- content/en/api/tracing/send_trace.md | 2 +- content/en/api/tracing/send_trace_code.md | 2 +- content/en/api/tracing/tracing.md | 2 +- content/en/api/tracing/tracing_code.md | 2 +- content/en/api/usage/usage.md | 2 +- content/en/api/usage/usage_code.md | 2 +- content/en/api/usage/usage_fargate.md | 2 +- content/en/api/usage/usage_fargate_code.md | 2 +- content/en/api/usage/usage_hosts.md | 2 +- content/en/api/usage/usage_hosts_code.md | 2 +- content/en/api/usage/usage_logs.md | 2 +- content/en/api/usage/usage_logs_code.md | 2 +- content/en/api/usage/usage_multi_org.md | 2 +- content/en/api/usage/usage_multi_org_code.md | 2 +- content/en/api/usage/usage_synthetics.md | 2 +- content/en/api/usage/usage_synthetics_code.md | 2 +- content/en/api/usage/usage_timeseries.md | 2 +- content/en/api/usage/usage_timeseries_code.md | 2 +- content/en/api/usage/usage_top_avg_metrics.md | 2 +- content/en/api/usage/usage_top_avg_metrics_code.md | 2 +- content/en/api/usage/usage_trace_search.md | 2 +- content/en/api/usage/usage_trace_search_code.md | 2 +- content/en/api/users/users.md | 2 +- content/en/api/users/users_code.md | 2 +- content/en/api/users/users_create.md | 2 +- content/en/api/users/users_create_code.md | 2 +- content/en/api/users/users_delete.md | 2 +- content/en/api/users/users_delete_code.md | 2 +- content/en/api/users/users_get.md | 2 +- content/en/api/users/users_get_code.md | 2 +- content/en/api/users/users_getall.md | 2 +- content/en/api/users/users_getall_code.md | 2 +- content/en/api/users/users_update.md | 2 +- content/en/api/users/users_update_code.md | 2 +- content/en/service_level_objectives/widget.md | 3 ++- 104 files changed, 135 insertions(+), 79 deletions(-) create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.py create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.rb create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-create.py create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-create.rb create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-delete-many.py create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-delete-many.rb create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-delete.py create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-delete.rb create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-edit.py create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-edit.rb create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-get.py create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-get.rb create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-search.py create mode 100644 content/en/api/service_level_objectives/code_snippets/api-slo-search.rb create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-bulk-delete.py create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-bulk-delete.rb create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-create.py create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-create.rb create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-delete-many.py create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-delete-many.rb create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-delete.py create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-delete.rb create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-edit.py create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-edit.rb create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-get.py create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-get.rb create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-search.py create mode 100644 content/en/api/service_level_objectives/code_snippets/result.api-slo-search.rb diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.py b/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.py new file mode 100644 index 0000000000000..959b75c5f402a --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.py @@ -0,0 +1,2 @@ +# This is not yet supported by the Python Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.rb b/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.rb new file mode 100644 index 0000000000000..b767e4a3c1817 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.rb @@ -0,0 +1,2 @@ +# This is not yet supported by the Ruby Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.sh b/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.sh index 7ba2dff1680e0..afd6b09c6cf35 100644 --- a/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.sh +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.sh @@ -9,4 +9,3 @@ app_key= curl -X POST -H "Content-Type: application/json" \ -d '{"12341234123412341234123412341234": ["7d"], "43210000432100004321000043210000": ["30d"]}}' \ "https://api.datadoghq.com/api/v1/slo/bulk_delete?api_key=${api_key}&application_key=${app_key}" - diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-create.py b/content/en/api/service_level_objectives/code_snippets/api-slo-create.py new file mode 100644 index 0000000000000..959b75c5f402a --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-create.py @@ -0,0 +1,2 @@ +# This is not yet supported by the Python Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-create.rb b/content/en/api/service_level_objectives/code_snippets/api-slo-create.rb new file mode 100644 index 0000000000000..b767e4a3c1817 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-create.rb @@ -0,0 +1,2 @@ +# This is not yet supported by the Ruby Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-delete-many.py b/content/en/api/service_level_objectives/code_snippets/api-slo-delete-many.py new file mode 100644 index 0000000000000..959b75c5f402a --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-delete-many.py @@ -0,0 +1,2 @@ +# This is not yet supported by the Python Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-delete-many.rb b/content/en/api/service_level_objectives/code_snippets/api-slo-delete-many.rb new file mode 100644 index 0000000000000..b767e4a3c1817 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-delete-many.rb @@ -0,0 +1,2 @@ +# This is not yet supported by the Ruby Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-delete.py b/content/en/api/service_level_objectives/code_snippets/api-slo-delete.py new file mode 100644 index 0000000000000..959b75c5f402a --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-delete.py @@ -0,0 +1,2 @@ +# This is not yet supported by the Python Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-delete.rb b/content/en/api/service_level_objectives/code_snippets/api-slo-delete.rb new file mode 100644 index 0000000000000..b767e4a3c1817 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-delete.rb @@ -0,0 +1,2 @@ +# This is not yet supported by the Ruby Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-edit.py b/content/en/api/service_level_objectives/code_snippets/api-slo-edit.py new file mode 100644 index 0000000000000..959b75c5f402a --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-edit.py @@ -0,0 +1,2 @@ +# This is not yet supported by the Python Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-edit.rb b/content/en/api/service_level_objectives/code_snippets/api-slo-edit.rb new file mode 100644 index 0000000000000..b767e4a3c1817 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-edit.rb @@ -0,0 +1,2 @@ +# This is not yet supported by the Ruby Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-get.py b/content/en/api/service_level_objectives/code_snippets/api-slo-get.py new file mode 100644 index 0000000000000..959b75c5f402a --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-get.py @@ -0,0 +1,2 @@ +# This is not yet supported by the Python Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-get.rb b/content/en/api/service_level_objectives/code_snippets/api-slo-get.rb new file mode 100644 index 0000000000000..b767e4a3c1817 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-get.rb @@ -0,0 +1,2 @@ +# This is not yet supported by the Ruby Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-search.py b/content/en/api/service_level_objectives/code_snippets/api-slo-search.py new file mode 100644 index 0000000000000..959b75c5f402a --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-search.py @@ -0,0 +1,2 @@ +# This is not yet supported by the Python Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-search.rb b/content/en/api/service_level_objectives/code_snippets/api-slo-search.rb new file mode 100644 index 0000000000000..b767e4a3c1817 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-search.rb @@ -0,0 +1,2 @@ +# This is not yet supported by the Ruby Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-bulk-delete.py b/content/en/api/service_level_objectives/code_snippets/result.api-slo-bulk-delete.py new file mode 100644 index 0000000000000..959b75c5f402a --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-bulk-delete.py @@ -0,0 +1,2 @@ +# This is not yet supported by the Python Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-bulk-delete.rb b/content/en/api/service_level_objectives/code_snippets/result.api-slo-bulk-delete.rb new file mode 100644 index 0000000000000..b767e4a3c1817 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-bulk-delete.rb @@ -0,0 +1,2 @@ +# This is not yet supported by the Ruby Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-create.py b/content/en/api/service_level_objectives/code_snippets/result.api-slo-create.py new file mode 100644 index 0000000000000..959b75c5f402a --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-create.py @@ -0,0 +1,2 @@ +# This is not yet supported by the Python Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-create.rb b/content/en/api/service_level_objectives/code_snippets/result.api-slo-create.rb new file mode 100644 index 0000000000000..b767e4a3c1817 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-create.rb @@ -0,0 +1,2 @@ +# This is not yet supported by the Ruby Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete-many.py b/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete-many.py new file mode 100644 index 0000000000000..959b75c5f402a --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete-many.py @@ -0,0 +1,2 @@ +# This is not yet supported by the Python Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete-many.rb b/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete-many.rb new file mode 100644 index 0000000000000..b767e4a3c1817 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete-many.rb @@ -0,0 +1,2 @@ +# This is not yet supported by the Ruby Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete.py b/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete.py new file mode 100644 index 0000000000000..959b75c5f402a --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete.py @@ -0,0 +1,2 @@ +# This is not yet supported by the Python Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete.rb b/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete.rb new file mode 100644 index 0000000000000..b767e4a3c1817 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete.rb @@ -0,0 +1,2 @@ +# This is not yet supported by the Ruby Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-edit.py b/content/en/api/service_level_objectives/code_snippets/result.api-slo-edit.py new file mode 100644 index 0000000000000..959b75c5f402a --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-edit.py @@ -0,0 +1,2 @@ +# This is not yet supported by the Python Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-edit.rb b/content/en/api/service_level_objectives/code_snippets/result.api-slo-edit.rb new file mode 100644 index 0000000000000..b767e4a3c1817 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-edit.rb @@ -0,0 +1,2 @@ +# This is not yet supported by the Ruby Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-get.py b/content/en/api/service_level_objectives/code_snippets/result.api-slo-get.py new file mode 100644 index 0000000000000..959b75c5f402a --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-get.py @@ -0,0 +1,2 @@ +# This is not yet supported by the Python Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-get.rb b/content/en/api/service_level_objectives/code_snippets/result.api-slo-get.rb new file mode 100644 index 0000000000000..b767e4a3c1817 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-get.rb @@ -0,0 +1,2 @@ +# This is not yet supported by the Ruby Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-search.py b/content/en/api/service_level_objectives/code_snippets/result.api-slo-search.py new file mode 100644 index 0000000000000..959b75c5f402a --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-search.py @@ -0,0 +1,2 @@ +# This is not yet supported by the Python Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-search.rb b/content/en/api/service_level_objectives/code_snippets/result.api-slo-search.rb new file mode 100644 index 0000000000000..b767e4a3c1817 --- /dev/null +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-search.rb @@ -0,0 +1,2 @@ +# This is not yet supported by the Ruby Client for Datadog API +# Consult the curl example diff --git a/content/en/api/service_level_objectives/service_level_objectives_bulk_delete.md b/content/en/api/service_level_objectives/service_level_objectives_bulk_delete.md index 8fa6da8577aa8..d0bcaff768aef 100644 --- a/content/en/api/service_level_objectives/service_level_objectives_bulk_delete.md +++ b/content/en/api/service_level_objectives/service_level_objectives_bulk_delete.md @@ -1,11 +1,11 @@ --- title: Bulk Delete Service Level Objective Timeframes type: apicontent -order: 29.07 -external_redirect: /api/#bulk-delete-service-level-objective-timeframes +order: 29.06 +external_redirect: /api/#bulk-delete-service-level-objectives-timeframes --- -## Bulk Delete Service Level Objectives time frames +## Bulk Delete Service Level Objective Timeframes **ARGUMENTS**: diff --git a/content/en/api/service_level_objectives/service_level_objectives_bulk_delete_code.md b/content/en/api/service_level_objectives/service_level_objectives_bulk_delete_code.md index 8a9136c498dd7..a11278cd5e7c7 100644 --- a/content/en/api/service_level_objectives/service_level_objectives_bulk_delete_code.md +++ b/content/en/api/service_level_objectives/service_level_objectives_bulk_delete_code.md @@ -1,8 +1,8 @@ --- title: Bulk Delete Service Level Objective Timeframes type: apicode -order: 29.07 -external_redirect: /api/#bulk-delete-service-level-objective-timeframes +order: 29.06 +external_redirect: /api/#bulk-delete-service-level-objectives-time-frames --- **SIGNATURE**: diff --git a/content/en/api/service_level_objectives/service_level_objectives_search.md b/content/en/api/service_level_objectives/service_level_objectives_search.md index 5665a5058eb67..e185e3c272945 100644 --- a/content/en/api/service_level_objectives/service_level_objectives_search.md +++ b/content/en/api/service_level_objectives/service_level_objectives_search.md @@ -1,7 +1,7 @@ --- title: Search Service Level Objectives type: apicontent -order: 29.12 +order: 29.07 external_redirect: /api/#search-service-level-objectives --- diff --git a/content/en/api/service_level_objectives/service_level_objectives_search_code.md b/content/en/api/service_level_objectives/service_level_objectives_search_code.md index 21f0957f1fb99..d2cc172872849 100644 --- a/content/en/api/service_level_objectives/service_level_objectives_search_code.md +++ b/content/en/api/service_level_objectives/service_level_objectives_search_code.md @@ -1,7 +1,7 @@ --- title: Search Service Level Objectives type: apicode -order: 29.12 +order: 29.07 external_redirect: /api/#search-service-level-objectives --- diff --git a/content/en/api/synthetics/creating_test.md b/content/en/api/synthetics/creating_test.md index 925bcd51da622..aadc794686fe2 100644 --- a/content/en/api/synthetics/creating_test.md +++ b/content/en/api/synthetics/creating_test.md @@ -1,6 +1,6 @@ --- title: Synthetics type: apicode -order: 29 +order: 30 external_redirect: /api/#synthetics --- diff --git a/content/en/api/synthetics/get_browsers.md b/content/en/api/synthetics/get_browsers.md index c507ee7d55c6f..edf3ed4e066f4 100644 --- a/content/en/api/synthetics/get_browsers.md +++ b/content/en/api/synthetics/get_browsers.md @@ -1,7 +1,7 @@ --- title: Get devices for browser checks type: apicontent -order: 29.9 +order: 30.9 external_redirect: /api/#get-browsers --- diff --git a/content/en/api/synthetics/get_browsers_code.md b/content/en/api/synthetics/get_browsers_code.md index 3adca7c94ada5..bacf897e24860 100644 --- a/content/en/api/synthetics/get_browsers_code.md +++ b/content/en/api/synthetics/get_browsers_code.md @@ -1,7 +1,7 @@ --- title: Get devices for browser checks type: apicode -order: 29.9 +order: 30.9 external_redirect: /api/#get-browsers --- diff --git a/content/en/api/synthetics/get_locations.md b/content/en/api/synthetics/get_locations.md index c604aeaa3683a..78c988280526f 100644 --- a/content/en/api/synthetics/get_locations.md +++ b/content/en/api/synthetics/get_locations.md @@ -1,7 +1,7 @@ --- title: Get available locations type: apicontent -order: 29.91 +order: 30.91 external_redirect: /api/#get-locations --- diff --git a/content/en/api/synthetics/get_locations_code.md b/content/en/api/synthetics/get_locations_code.md index c9c0541e53380..a5c73c30d2ac8 100644 --- a/content/en/api/synthetics/get_locations_code.md +++ b/content/en/api/synthetics/get_locations_code.md @@ -1,7 +1,7 @@ --- title: Get available locations type: apicode -order: 29.91 +order: 30.91 external_redirect: /api/#get-locations --- diff --git a/content/en/api/synthetics/get_result.md b/content/en/api/synthetics/get_result.md index 6ce8aff06ea37..3666245b95325 100644 --- a/content/en/api/synthetics/get_result.md +++ b/content/en/api/synthetics/get_result.md @@ -1,7 +1,7 @@ --- title: Get a specific result type: apicontent -order: 29.6 +order: 30.6 external_redirect: /api/#get-result --- diff --git a/content/en/api/synthetics/get_result_code.md b/content/en/api/synthetics/get_result_code.md index b6e8725347271..00737b90dd6af 100644 --- a/content/en/api/synthetics/get_result_code.md +++ b/content/en/api/synthetics/get_result_code.md @@ -1,7 +1,7 @@ --- title: Get a specific result type: apicode -order: 29.6 +order: 30.6 external_redirect: /api/#get-result --- diff --git a/content/en/api/synthetics/get_results.md b/content/en/api/synthetics/get_results.md index 1fc9bd86421fd..cc4f750bc3d5b 100644 --- a/content/en/api/synthetics/get_results.md +++ b/content/en/api/synthetics/get_results.md @@ -1,7 +1,7 @@ --- title: Get the most recent results type: apicontent -order: 29.5 +order: 30.5 external_redirect: /api/#get-results --- diff --git a/content/en/api/synthetics/get_results_code.md b/content/en/api/synthetics/get_results_code.md index df36266a79a0e..dd4e40042a55c 100644 --- a/content/en/api/synthetics/get_results_code.md +++ b/content/en/api/synthetics/get_results_code.md @@ -1,7 +1,7 @@ --- title: Get the most recent results type: apicode -order: 29.5 +order: 30.5 external_redirect: /api/#get-results --- diff --git a/content/en/api/synthetics/get_test.md b/content/en/api/synthetics/get_test.md index ad16b0303da50..eed1c2342170b 100644 --- a/content/en/api/synthetics/get_test.md +++ b/content/en/api/synthetics/get_test.md @@ -1,7 +1,7 @@ --- title: Get a test type: apicontent -order: 29.8 +order: 30.8 external_redirect: /api/#get-test --- diff --git a/content/en/api/synthetics/get_test_code.md b/content/en/api/synthetics/get_test_code.md index c3d789ae4da90..64cd34f9eb71d 100644 --- a/content/en/api/synthetics/get_test_code.md +++ b/content/en/api/synthetics/get_test_code.md @@ -1,7 +1,7 @@ --- title: Get a test type: apicode -order: 29.8 +order: 30.8 external_redirect: /api/#get-test --- diff --git a/content/en/api/synthetics/get_tests.md b/content/en/api/synthetics/get_tests.md index 30b43817d5342..be11f2244505b 100644 --- a/content/en/api/synthetics/get_tests.md +++ b/content/en/api/synthetics/get_tests.md @@ -1,7 +1,7 @@ --- title: Get all tests type: apicontent -order: 29.7 +order: 30.7 external_redirect: /api/#get-tests --- diff --git a/content/en/api/synthetics/get_tests_code.md b/content/en/api/synthetics/get_tests_code.md index efd511b65e835..7a6f9e44d4ac2 100644 --- a/content/en/api/synthetics/get_tests_code.md +++ b/content/en/api/synthetics/get_tests_code.md @@ -1,7 +1,7 @@ --- title: Get all tests type: apicode -order: 29.7 +order: 30.7 external_redirect: /api/#get-tests --- diff --git a/content/en/api/synthetics/post_delete.md b/content/en/api/synthetics/post_delete.md index 03fa473609190..347acb60692ff 100644 --- a/content/en/api/synthetics/post_delete.md +++ b/content/en/api/synthetics/post_delete.md @@ -1,7 +1,7 @@ --- title: Delete tests type: apicontent -order: 29.4 +order: 30.4 external_redirect: /api/#post-delete --- diff --git a/content/en/api/synthetics/post_delete_code.md b/content/en/api/synthetics/post_delete_code.md index d5c175b46ea07..e7b1df7e3cedf 100644 --- a/content/en/api/synthetics/post_delete_code.md +++ b/content/en/api/synthetics/post_delete_code.md @@ -1,7 +1,7 @@ --- title: Delete a test type: apicode -order: 29.4 +order: 30.4 external_redirect: /api/#post-delete --- diff --git a/content/en/api/synthetics/post_test.md b/content/en/api/synthetics/post_test.md index 513daedce0b5c..540db9283a12e 100644 --- a/content/en/api/synthetics/post_test.md +++ b/content/en/api/synthetics/post_test.md @@ -1,7 +1,7 @@ --- title: Create a test type: apicontent -order: 29.1 +order: 30.1 external_redirect: /api/#create-tests --- diff --git a/content/en/api/synthetics/post_test_code.md b/content/en/api/synthetics/post_test_code.md index 87a5d954dd93e..8509ffad1bb51 100644 --- a/content/en/api/synthetics/post_test_code.md +++ b/content/en/api/synthetics/post_test_code.md @@ -1,7 +1,7 @@ --- title: Create a test type: apicode -order: 29.1 +order: 30.1 external_redirect: /api/#create-tests --- diff --git a/content/en/api/synthetics/put_status.md b/content/en/api/synthetics/put_status.md index ed7740e0457af..6aa07b714df53 100644 --- a/content/en/api/synthetics/put_status.md +++ b/content/en/api/synthetics/put_status.md @@ -1,7 +1,7 @@ --- title: Start or pause a test type: apicontent -order: 29.2 +order: 30.2 external_redirect: /api/#status-test --- diff --git a/content/en/api/synthetics/put_status_code.md b/content/en/api/synthetics/put_status_code.md index 3aacce00bbbc3..e0a0ba1231030 100644 --- a/content/en/api/synthetics/put_status_code.md +++ b/content/en/api/synthetics/put_status_code.md @@ -1,7 +1,7 @@ --- title: Start or pause a test type: apicode -order: 29.2 +order: 30.2 external_redirect: /api/#status-test --- diff --git a/content/en/api/synthetics/put_test.md b/content/en/api/synthetics/put_test.md index ffea0129adcca..d102898269656 100644 --- a/content/en/api/synthetics/put_test.md +++ b/content/en/api/synthetics/put_test.md @@ -1,7 +1,7 @@ --- title: Edit a test type: apicontent -order: 29.3 +order: 30.3 external_redirect: /api/#edit-tests --- diff --git a/content/en/api/synthetics/put_test_code.md b/content/en/api/synthetics/put_test_code.md index 5a91d4199096d..7d7a46f48cedf 100644 --- a/content/en/api/synthetics/put_test_code.md +++ b/content/en/api/synthetics/put_test_code.md @@ -1,7 +1,7 @@ --- title: Edit a test type: apicode -order: 29.3 +order: 30.3 external_redirect: /api/#edit-test --- diff --git a/content/en/api/synthetics/synthetics.md b/content/en/api/synthetics/synthetics.md index 52396a2ae51ec..1a42df8b32012 100644 --- a/content/en/api/synthetics/synthetics.md +++ b/content/en/api/synthetics/synthetics.md @@ -1,7 +1,7 @@ --- title: Synthetics type: apicontent -order: 29 +order: 30 external_redirect: /api/#synthetics --- diff --git a/content/en/api/tags/tags.md b/content/en/api/tags/tags.md index 77fd55c08065d..af27364e102f7 100644 --- a/content/en/api/tags/tags.md +++ b/content/en/api/tags/tags.md @@ -1,7 +1,7 @@ --- title: Tags type: apicontent -order: 30 +order: 31 external_redirect: /api/#tags --- diff --git a/content/en/api/tags/tags_add.md b/content/en/api/tags/tags_add.md index 1188ae77f1771..70f2c776e72eb 100644 --- a/content/en/api/tags/tags_add.md +++ b/content/en/api/tags/tags_add.md @@ -1,7 +1,7 @@ --- title: Add tags to a host type: apicontent -order: 30.3 +order: 31.3 external_redirect: /api/#add-tags-to-a-host --- diff --git a/content/en/api/tags/tags_add_code.md b/content/en/api/tags/tags_add_code.md index 1504b108d965c..7b4c72a350a22 100644 --- a/content/en/api/tags/tags_add_code.md +++ b/content/en/api/tags/tags_add_code.md @@ -1,7 +1,7 @@ --- title: Add tags to a host type: apicode -order: 30.3 +order: 31.3 external_redirect: /api/#add-tags-to-a-host --- diff --git a/content/en/api/tags/tags_code.md b/content/en/api/tags/tags_code.md index 9ef27cf09aff7..0ee101a4addb0 100644 --- a/content/en/api/tags/tags_code.md +++ b/content/en/api/tags/tags_code.md @@ -1,6 +1,6 @@ --- title: Tags type: apicode -order: 30 +order: 31 external_redirect: /api/#tags --- diff --git a/content/en/api/tags/tags_delete.md b/content/en/api/tags/tags_delete.md index 4846eaa9a932a..a2160852b51c8 100644 --- a/content/en/api/tags/tags_delete.md +++ b/content/en/api/tags/tags_delete.md @@ -1,7 +1,7 @@ --- title: Remove host tags type: apicontent -order: 30.5 +order: 31.5 external_redirect: /api/#remove-host-tags --- diff --git a/content/en/api/tags/tags_delete_code.md b/content/en/api/tags/tags_delete_code.md index ff5288e955406..01f720a3da844 100644 --- a/content/en/api/tags/tags_delete_code.md +++ b/content/en/api/tags/tags_delete_code.md @@ -1,7 +1,7 @@ --- title: Remove host tags type: apicode -order: 30.5 +order: 31.5 external_redirect: /api/#remove-host-tags --- diff --git a/content/en/api/tags/tags_get.md b/content/en/api/tags/tags_get.md index 9b2b0d7c3d4e7..2a3806bda3cd9 100644 --- a/content/en/api/tags/tags_get.md +++ b/content/en/api/tags/tags_get.md @@ -1,7 +1,7 @@ --- title: Get tags type: apicontent -order: 30.1 +order: 31.1 external_redirect: /api/#get-tags --- diff --git a/content/en/api/tags/tags_get_code.md b/content/en/api/tags/tags_get_code.md index 10826aec89c5a..414c5479db1ce 100644 --- a/content/en/api/tags/tags_get_code.md +++ b/content/en/api/tags/tags_get_code.md @@ -1,7 +1,7 @@ --- title: Get tags type: apicode -order: 30.1 +order: 31.1 external_redirect: /api/#get-tags --- diff --git a/content/en/api/tags/tags_get_host.md b/content/en/api/tags/tags_get_host.md index eb07db05d8c56..665c21bd0f47d 100644 --- a/content/en/api/tags/tags_get_host.md +++ b/content/en/api/tags/tags_get_host.md @@ -1,7 +1,7 @@ --- title: Get host tags type: apicontent -order: 30.2 +order: 31.2 external_redirect: /api/#get-host-tags --- diff --git a/content/en/api/tags/tags_get_host_code.md b/content/en/api/tags/tags_get_host_code.md index d3e2073035589..47e4191874f99 100644 --- a/content/en/api/tags/tags_get_host_code.md +++ b/content/en/api/tags/tags_get_host_code.md @@ -1,7 +1,7 @@ --- title: Get host tags type: apicode -order: 30.2 +order: 31.2 external_redirect: /api/#get-host-tags --- diff --git a/content/en/api/tags/tags_update.md b/content/en/api/tags/tags_update.md index 29510bf1c84a4..465e0e18e0955 100644 --- a/content/en/api/tags/tags_update.md +++ b/content/en/api/tags/tags_update.md @@ -1,7 +1,7 @@ --- title: Update host tags type: apicontent -order: 30.4 +order: 31.4 external_redirect: /api/#update-host-tags --- diff --git a/content/en/api/tags/tags_update_code.md b/content/en/api/tags/tags_update_code.md index 0067adf7234ee..a1a519be07325 100644 --- a/content/en/api/tags/tags_update_code.md +++ b/content/en/api/tags/tags_update_code.md @@ -1,7 +1,7 @@ --- title: Update host tags type: apicode -order: 30.4 +order: 31.4 external_redirect: /api/#update-host-tags --- diff --git a/content/en/api/timeboards/timeboards.md b/content/en/api/timeboards/timeboards.md index b8a68a3dd503b..8508ea746b877 100644 --- a/content/en/api/timeboards/timeboards.md +++ b/content/en/api/timeboards/timeboards.md @@ -1,7 +1,7 @@ --- title: Timeboards type: apicontent -order: 31 +order: 32 external_redirect: /api/#timeboards --- ## Timeboards diff --git a/content/en/api/timeboards/timeboards_code.md b/content/en/api/timeboards/timeboards_code.md index e10c6b7eb2728..0ecafa6472830 100644 --- a/content/en/api/timeboards/timeboards_code.md +++ b/content/en/api/timeboards/timeboards_code.md @@ -1,6 +1,6 @@ --- title: Timeboards type: apicode -order: 31 +order: 32 external_redirect: /api/#timeboards --- diff --git a/content/en/api/tracing/send_trace.md b/content/en/api/tracing/send_trace.md index 05f53a3ddb509..c1e429e892e5a 100644 --- a/content/en/api/tracing/send_trace.md +++ b/content/en/api/tracing/send_trace.md @@ -1,7 +1,7 @@ --- title: Send traces type: apicontent -order: 32.1 +order: 33.1 external_redirect: /api/#send-traces --- diff --git a/content/en/api/tracing/send_trace_code.md b/content/en/api/tracing/send_trace_code.md index 3ce79cd05f065..48ec014350f14 100644 --- a/content/en/api/tracing/send_trace_code.md +++ b/content/en/api/tracing/send_trace_code.md @@ -1,7 +1,7 @@ --- title: Send traces type: apicode -order: 32.1 +order: 33.1 external_redirect: /api/#send-traces --- diff --git a/content/en/api/tracing/tracing.md b/content/en/api/tracing/tracing.md index a059b1833c1f6..b7a9578392680 100644 --- a/content/en/api/tracing/tracing.md +++ b/content/en/api/tracing/tracing.md @@ -1,7 +1,7 @@ --- title: Tracing type: apicontent -order: 32 +order: 33 external_redirect: /api/#tracing --- diff --git a/content/en/api/tracing/tracing_code.md b/content/en/api/tracing/tracing_code.md index 8e771433ebe50..5833c5fb7e850 100644 --- a/content/en/api/tracing/tracing_code.md +++ b/content/en/api/tracing/tracing_code.md @@ -1,6 +1,6 @@ --- title: Tracing type: apicode -order: 32 +order: 33 external_redirect: /api/#tracing --- diff --git a/content/en/api/usage/usage.md b/content/en/api/usage/usage.md index 4f545394fb106..d2b2601277bf0 100644 --- a/content/en/api/usage/usage.md +++ b/content/en/api/usage/usage.md @@ -1,7 +1,7 @@ --- title: Usage metering type: apicontent -order: 33 +order: 34 external_redirect: /api/#usage-metering --- diff --git a/content/en/api/usage/usage_code.md b/content/en/api/usage/usage_code.md index d20954ed2d1d9..0b64b6b68610e 100644 --- a/content/en/api/usage/usage_code.md +++ b/content/en/api/usage/usage_code.md @@ -1,6 +1,6 @@ --- title: Usage metering type: apicode -order: 33 +order: 34 external_redirect: /api/#usage-metering --- diff --git a/content/en/api/usage/usage_fargate.md b/content/en/api/usage/usage_fargate.md index 282aa1dc5135f..dccccf4387461 100644 --- a/content/en/api/usage/usage_fargate.md +++ b/content/en/api/usage/usage_fargate.md @@ -1,7 +1,7 @@ --- title: Get hourly usage for Fargate type: apicontent -order: 33.7 +order: 34.7 external_redirect: /api/#get-hourly-usage-for-fargate --- diff --git a/content/en/api/usage/usage_fargate_code.md b/content/en/api/usage/usage_fargate_code.md index 6253bd1c5f013..357b803bb419b 100644 --- a/content/en/api/usage/usage_fargate_code.md +++ b/content/en/api/usage/usage_fargate_code.md @@ -1,7 +1,7 @@ --- title: Get hourly usage for Fargate type: apicode -order: 33.7 +order: 34.7 external_redirect: /api/#get-hourly-usage-for-fargate --- diff --git a/content/en/api/usage/usage_hosts.md b/content/en/api/usage/usage_hosts.md index 22a65a555eb88..aaaa6813b6cb0 100644 --- a/content/en/api/usage/usage_hosts.md +++ b/content/en/api/usage/usage_hosts.md @@ -1,7 +1,7 @@ --- title: Get hourly usage for hosts and containers type: apicontent -order: 33.1 +order: 34.1 external_redirect: /api/#get-hourly-usage-for-hosts-and-containers --- diff --git a/content/en/api/usage/usage_hosts_code.md b/content/en/api/usage/usage_hosts_code.md index a0f9b787977aa..44e3e7176f595 100644 --- a/content/en/api/usage/usage_hosts_code.md +++ b/content/en/api/usage/usage_hosts_code.md @@ -1,7 +1,7 @@ --- title: Get hourly usage for hosts and containers type: apicode -order: 33.1 +order: 34.1 external_redirect: /api/#get-hourly-usage-for-hosts-and-containers --- diff --git a/content/en/api/usage/usage_logs.md b/content/en/api/usage/usage_logs.md index 9a9d2aa60b442..db27ab499271d 100644 --- a/content/en/api/usage/usage_logs.md +++ b/content/en/api/usage/usage_logs.md @@ -1,7 +1,7 @@ --- title: Get hourly usage for logs type: apicontent -order: 33.2 +order: 34.2 external_redirect: /api/#get-hourly-usage-for-logs --- diff --git a/content/en/api/usage/usage_logs_code.md b/content/en/api/usage/usage_logs_code.md index 324ac0e8ecd86..467bc4d50f50b 100644 --- a/content/en/api/usage/usage_logs_code.md +++ b/content/en/api/usage/usage_logs_code.md @@ -1,7 +1,7 @@ --- title: Get hourly usage for logs type: apicode -order: 33.2 +order: 34.2 external_redirect: /api/#get-hourly-usage-for-logs --- diff --git a/content/en/api/usage/usage_multi_org.md b/content/en/api/usage/usage_multi_org.md index 935db635349e0..15d29ee2bda92 100644 --- a/content/en/api/usage/usage_multi_org.md +++ b/content/en/api/usage/usage_multi_org.md @@ -1,7 +1,7 @@ --- title: Get usage across your multi-org account type: apicontent -order: 33.8 +order: 34.8 external_redirect: /api/#get-usage-across-your-multi-org-account --- diff --git a/content/en/api/usage/usage_multi_org_code.md b/content/en/api/usage/usage_multi_org_code.md index 5873ceadea676..f01c0b25bfcf4 100644 --- a/content/en/api/usage/usage_multi_org_code.md +++ b/content/en/api/usage/usage_multi_org_code.md @@ -1,7 +1,7 @@ --- title: Get usage across your multi-org account type: apicode -order: 33.8 +order: 34.8 external_redirect: /api/#get-usage-across-your-multi-org-account --- diff --git a/content/en/api/usage/usage_synthetics.md b/content/en/api/usage/usage_synthetics.md index fbe282c83ded0..7f0656e462650 100644 --- a/content/en/api/usage/usage_synthetics.md +++ b/content/en/api/usage/usage_synthetics.md @@ -1,7 +1,7 @@ --- title: Get hourly usage for Synthetics type: apicontent -order: 33.6 +order: 34.6 external_redirect: /api/#get-hourly-usage-for-synthetics --- diff --git a/content/en/api/usage/usage_synthetics_code.md b/content/en/api/usage/usage_synthetics_code.md index 49511c0065386..9b4a358ae8634 100644 --- a/content/en/api/usage/usage_synthetics_code.md +++ b/content/en/api/usage/usage_synthetics_code.md @@ -1,7 +1,7 @@ --- title: Get hourly usage for Synthetics type: apicode -order: 33.6 +order: 34.6 external_redirect: /api/#get-hourly-usage-for-synthetics --- diff --git a/content/en/api/usage/usage_timeseries.md b/content/en/api/usage/usage_timeseries.md index 3cd8064c22040..2786b42653ee8 100644 --- a/content/en/api/usage/usage_timeseries.md +++ b/content/en/api/usage/usage_timeseries.md @@ -1,7 +1,7 @@ --- title: Get hourly usage for custom metrics type: apicontent -order: 33.3 +order: 34.3 external_redirect: /api/#get-hourly-usage-for-custom-metrics --- diff --git a/content/en/api/usage/usage_timeseries_code.md b/content/en/api/usage/usage_timeseries_code.md index b4ebc03fb60ff..639a87f550299 100644 --- a/content/en/api/usage/usage_timeseries_code.md +++ b/content/en/api/usage/usage_timeseries_code.md @@ -1,7 +1,7 @@ --- title: Get hourly usage for custom metrics type: apicode -order: 33.3 +order: 34.3 external_redirect: /api/#get-hourly-usage-for-custom-metrics --- diff --git a/content/en/api/usage/usage_top_avg_metrics.md b/content/en/api/usage/usage_top_avg_metrics.md index 9714e44d5b61f..edc3d3717324a 100644 --- a/content/en/api/usage/usage_top_avg_metrics.md +++ b/content/en/api/usage/usage_top_avg_metrics.md @@ -1,7 +1,7 @@ --- title: Get top 500 custom metrics by hourly average type: apicontent -order: 33.4 +order: 34.4 external_redirect: /api/#get-top-500-custom-metrics-by-hourly-average --- diff --git a/content/en/api/usage/usage_top_avg_metrics_code.md b/content/en/api/usage/usage_top_avg_metrics_code.md index 9c5227fd8aa64..9e84b4df4fe16 100644 --- a/content/en/api/usage/usage_top_avg_metrics_code.md +++ b/content/en/api/usage/usage_top_avg_metrics_code.md @@ -1,7 +1,7 @@ --- title: Get top 500 custom metrics by hourly average type: apicode -order: 33.4 +order: 34.4 external_redirect: /api/#get-top-500-custom-metrics-by-hourly-average --- diff --git a/content/en/api/usage/usage_trace_search.md b/content/en/api/usage/usage_trace_search.md index 77f4b523a53e9..3f2ebf75a3e9a 100644 --- a/content/en/api/usage/usage_trace_search.md +++ b/content/en/api/usage/usage_trace_search.md @@ -1,7 +1,7 @@ --- title: Get hourly usage for Trace Search type: apicontent -order: 33.5 +order: 34.5 external_redirect: /api/#get-hourly-usage-for-trace-search --- diff --git a/content/en/api/usage/usage_trace_search_code.md b/content/en/api/usage/usage_trace_search_code.md index 2d3403cf71ec3..2d69b7707e14b 100644 --- a/content/en/api/usage/usage_trace_search_code.md +++ b/content/en/api/usage/usage_trace_search_code.md @@ -1,7 +1,7 @@ --- title: Get hourly usage for Trace Search type: apicode -order: 33.5 +order: 34.5 external_redirect: /api/#get-hourly-usage-for-trace-search --- diff --git a/content/en/api/users/users.md b/content/en/api/users/users.md index c34fd0ab8ccb5..c786dcad4ba2d 100644 --- a/content/en/api/users/users.md +++ b/content/en/api/users/users.md @@ -1,7 +1,7 @@ --- title: Users type: apicontent -order: 34 +order: 35 external_redirect: /api/#users --- diff --git a/content/en/api/users/users_code.md b/content/en/api/users/users_code.md index a1bd0a9f36c7e..dee18585b1bd3 100644 --- a/content/en/api/users/users_code.md +++ b/content/en/api/users/users_code.md @@ -1,6 +1,6 @@ --- title: Users type: apicode -order: 34 +order: 35 external_redirect: /api/#users --- diff --git a/content/en/api/users/users_create.md b/content/en/api/users/users_create.md index 45f5866bc8084..e6cb74792ebfb 100644 --- a/content/en/api/users/users_create.md +++ b/content/en/api/users/users_create.md @@ -1,7 +1,7 @@ --- title: Create user type: apicontent -order: 34.1 +order: 35.1 external_redirect: /api/#create-user --- diff --git a/content/en/api/users/users_create_code.md b/content/en/api/users/users_create_code.md index e308e5e5a7080..96799f76fe32a 100644 --- a/content/en/api/users/users_create_code.md +++ b/content/en/api/users/users_create_code.md @@ -1,7 +1,7 @@ --- title: Create user type: apicode -order: 34.1 +order: 35.1 external_redirect: /api/#create-user --- diff --git a/content/en/api/users/users_delete.md b/content/en/api/users/users_delete.md index 540de9b66a19b..b0fa59971b302 100644 --- a/content/en/api/users/users_delete.md +++ b/content/en/api/users/users_delete.md @@ -1,7 +1,7 @@ --- title: Disable user type: apicontent -order: 34.5 +order: 35.5 external_redirect: /api/#disable-user --- diff --git a/content/en/api/users/users_delete_code.md b/content/en/api/users/users_delete_code.md index c231cf733347a..29883715242d4 100644 --- a/content/en/api/users/users_delete_code.md +++ b/content/en/api/users/users_delete_code.md @@ -1,7 +1,7 @@ --- title: Disable user type: apicode -order: 34.5 +order: 35.5 external_redirect: /api/#disable-user --- diff --git a/content/en/api/users/users_get.md b/content/en/api/users/users_get.md index 0096da5629738..f80d6ac8a8368 100644 --- a/content/en/api/users/users_get.md +++ b/content/en/api/users/users_get.md @@ -1,7 +1,7 @@ --- title: Get user type: apicontent -order: 34.2 +order: 35.2 external_redirect: /api/#get-user --- diff --git a/content/en/api/users/users_get_code.md b/content/en/api/users/users_get_code.md index 2784ee0b6b005..f3e7c18663638 100644 --- a/content/en/api/users/users_get_code.md +++ b/content/en/api/users/users_get_code.md @@ -1,7 +1,7 @@ --- title: Get user type: apicode -order: 34.2 +order: 35.2 external_redirect: /api/#get-user --- diff --git a/content/en/api/users/users_getall.md b/content/en/api/users/users_getall.md index 5482f00b879f6..bb1a89377c514 100644 --- a/content/en/api/users/users_getall.md +++ b/content/en/api/users/users_getall.md @@ -1,7 +1,7 @@ --- title: Get all users type: apicontent -order: 34.3 +order: 35.3 external_redirect: /api/#get-all-users --- diff --git a/content/en/api/users/users_getall_code.md b/content/en/api/users/users_getall_code.md index c383c27b92772..ce1679e6d7445 100644 --- a/content/en/api/users/users_getall_code.md +++ b/content/en/api/users/users_getall_code.md @@ -1,7 +1,7 @@ --- title: Get all users type: apicode -order: 34.3 +order: 35.3 external_redirect: /api/#get-all-users --- diff --git a/content/en/api/users/users_update.md b/content/en/api/users/users_update.md index a8aa347e9b0d6..ad0d73b28c7cb 100644 --- a/content/en/api/users/users_update.md +++ b/content/en/api/users/users_update.md @@ -1,7 +1,7 @@ --- title: Update user type: apicontent -order: 34.4 +order: 35.4 external_redirect: /api/#update-user --- diff --git a/content/en/api/users/users_update_code.md b/content/en/api/users/users_update_code.md index 7121f55c1ecbd..bfaba679bd743 100644 --- a/content/en/api/users/users_update_code.md +++ b/content/en/api/users/users_update_code.md @@ -1,7 +1,7 @@ --- title: Update user type: apicode -order: 34.4 +order: 35.4 external_redirect: /api/#update-user --- diff --git a/content/en/service_level_objectives/widget.md b/content/en/service_level_objectives/widget.md index 46c6cc0f79e4b..70d55f90f0d5a 100644 --- a/content/en/service_level_objectives/widget.md +++ b/content/en/service_level_objectives/widget.md @@ -11,7 +11,8 @@ further_reading: {{< img src="service_level_objectives/slo_widget/slo_widget.png" alt="slo status page" responsive="true" >}} ## Overview + After [creating your SLO][1], you can use these SLOs in the SLO dashboard widget to visualize the status of your SLOs for along with your dashboard metrics, logs and APM data. -[1]: +[1]: /service_level_objectives From 929480e6d463c0faa397f9decaaa5a73581109cf Mon Sep 17 00:00:00 2001 From: Cody Lee Date: Tue, 1 Oct 2019 11:01:32 -0500 Subject: [PATCH 04/14] add python and ruby examples --- .../code_snippets/api-slo-bulk-delete.py | 20 +++++++++++-- .../code_snippets/api-slo-bulk-delete.rb | 19 ++++++++++-- .../code_snippets/api-slo-create.py | 26 ++++++++++++++-- .../code_snippets/api-slo-create.rb | 25 ++++++++++++++-- .../code_snippets/api-slo-delete-many.py | 14 +++++++-- .../code_snippets/api-slo-delete-many.rb | 14 +++++++-- .../code_snippets/api-slo-delete.py | 14 +++++++-- .../code_snippets/api-slo-delete.rb | 12 ++++++-- .../code_snippets/api-slo-edit.py | 30 +++++++++++++++++-- .../code_snippets/api-slo-edit.rb | 28 +++++++++++++++-- .../code_snippets/api-slo-get.py | 14 +++++++-- .../code_snippets/api-slo-get.rb | 12 ++++++-- .../code_snippets/api-slo-search.py | 20 +++++++++++-- .../code_snippets/api-slo-search.rb | 19 ++++++++++-- .../result.api-slo-bulk-delete.py | 9 ++++-- .../result.api-slo-bulk-delete.rb | 9 ++++-- .../code_snippets/result.api-slo-create.py | 30 +++++++++++++++++-- .../code_snippets/result.api-slo-create.rb | 30 +++++++++++++++++-- .../result.api-slo-delete-many.py | 6 ++-- .../result.api-slo-delete-many.rb | 6 ++-- .../code_snippets/result.api-slo-delete.py | 6 ++-- .../code_snippets/result.api-slo-delete.rb | 6 ++-- .../code_snippets/result.api-slo-edit.py | 30 +++++++++++++++++-- .../code_snippets/result.api-slo-edit.rb | 30 +++++++++++++++++-- .../code_snippets/result.api-slo-get.py | 28 +++++++++++++++-- .../code_snippets/result.api-slo-get.rb | 28 +++++++++++++++-- .../code_snippets/result.api-slo-search.py | 30 +++++++++++++++++-- .../code_snippets/result.api-slo-search.rb | 30 +++++++++++++++++-- 28 files changed, 489 insertions(+), 56 deletions(-) diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.py b/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.py index 959b75c5f402a..9c4e1e0203b46 100644 --- a/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.py +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.py @@ -1,2 +1,18 @@ -# This is not yet supported by the Python Client for Datadog API -# Consult the curl example +from datadog import initialize, api + +options = { + 'api_key': '', + 'app_key': '' +} + +slo_id_1 = '' +slo_id_2 = '' + +initialize(**options) + +delete_timeframes = { + slo_id_1: ["7d"] + slo_id_2: ["7d", "30d"] +} + +api.ServiceLevelObjective.bulk_delete(delete_timeframes) diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.rb b/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.rb index b767e4a3c1817..d2f12825a2f3e 100644 --- a/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.rb +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-bulk-delete.rb @@ -1,2 +1,17 @@ -# This is not yet supported by the Ruby Client for Datadog API -# Consult the curl example +require 'rubygems' +require 'dogapi' + +api_key = '' +app_key = '' + +slo_id_1 = ''.freeze +slo_id_2 = ''.freeze + +dog = Dogapi::Client.new(api_key, app_key) + +# Delete multiple timeframes +thresholds = { + slo_id_1: ["7d"] + slo_id_2: ["7d", "30d"] +} +dog.delete_timeframes_service_level_objective(thresholds) diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-create.py b/content/en/api/service_level_objectives/code_snippets/api-slo-create.py index 959b75c5f402a..1393c8fa1cd6b 100644 --- a/content/en/api/service_level_objectives/code_snippets/api-slo-create.py +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-create.py @@ -1,2 +1,24 @@ -# This is not yet supported by the Python Client for Datadog API -# Consult the curl example +from datadog import initialize, api + +options = { + 'api_key': '', + 'app_key': '' +} + +initialize(**options) + +# Create a new SLO +thresholds = [ + {"timeframe": "7d", "target": 95}, + {"timeframe": "30d", "target": 95, "warning": 97}, +] +tags = ["app:webserver", "frontend"] +api.ServiceLevelObjective.create( + type="metric", + name="Custom Metric SLO", + description="SLO tracking custom service SLO", + numerator="sum:my.custom.metric{type:good}.as_count()", + denominator="sum:my.custom.metric{*}.as_count()", + tags=tags, + thresholds=thresholds +) diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-create.rb b/content/en/api/service_level_objectives/code_snippets/api-slo-create.rb index b767e4a3c1817..a2053799a833a 100644 --- a/content/en/api/service_level_objectives/code_snippets/api-slo-create.rb +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-create.rb @@ -1,2 +1,23 @@ -# This is not yet supported by the Ruby Client for Datadog API -# Consult the curl example +require 'rubygems' +require 'dogapi' + +api_key = '' +app_key = '' + +dog = Dogapi::Client.new(api_key, app_key) + +# Create a new SLO +thresholds = [ + {:timeframe => "7d", :target => 95}, + {:timeframe => "30d", :target => 95, :warning => 97}, +] +tags = ['app:webserver', 'frontend'] +dog.create_service_level_objective( + :type => "metric", + :name => "Custom Metric SLO", + :description => "SLO tracking custom service SLO", + :numerator => "sum:my.custom.metric{type:good}.as_count()", + :denominator => "sum:my.custom.metric{*}.as_count()", + :tags => tags, + :thresholds => thresholds +) diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-delete-many.py b/content/en/api/service_level_objectives/code_snippets/api-slo-delete-many.py index 959b75c5f402a..dbb4e15bf376d 100644 --- a/content/en/api/service_level_objectives/code_snippets/api-slo-delete-many.py +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-delete-many.py @@ -1,2 +1,12 @@ -# This is not yet supported by the Python Client for Datadog API -# Consult the curl example +from datadog import initialize, api + +options = { + 'api_key': '', + 'app_key': '' +} + +slo_ids = ["", ""] + +initialize(**options) + +api.ServiceLevelObjective.delete_many(slo_ids) diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-delete-many.rb b/content/en/api/service_level_objectives/code_snippets/api-slo-delete-many.rb index b767e4a3c1817..c08347e95db22 100644 --- a/content/en/api/service_level_objectives/code_snippets/api-slo-delete-many.rb +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-delete-many.rb @@ -1,2 +1,12 @@ -# This is not yet supported by the Ruby Client for Datadog API -# Consult the curl example +require 'rubygems' +require 'dogapi' + +api_key = '' +app_key = '' +slo_ids = ['', ''] + +dog = Dogapi::Client.new(api_key, app_key) + +# Delete multiple timeframes + +dog.delete_many_service_level_objective(thresholds) diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-delete.py b/content/en/api/service_level_objectives/code_snippets/api-slo-delete.py index 959b75c5f402a..a6306a49b58b6 100644 --- a/content/en/api/service_level_objectives/code_snippets/api-slo-delete.py +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-delete.py @@ -1,2 +1,12 @@ -# This is not yet supported by the Python Client for Datadog API -# Consult the curl example +from datadog import initialize, api + +options = { + 'api_key': '', + 'app_key': '' +} + +slo_id = '' + +initialize(**options) + +api.ServiceLevelObjective.delete(slo_id) diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-delete.rb b/content/en/api/service_level_objectives/code_snippets/api-slo-delete.rb index b767e4a3c1817..3873b4fdafaf0 100644 --- a/content/en/api/service_level_objectives/code_snippets/api-slo-delete.rb +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-delete.rb @@ -1,2 +1,10 @@ -# This is not yet supported by the Ruby Client for Datadog API -# Consult the curl example +require 'rubygems' +require 'dogapi' + +api_key = '' +app_key = '' +slo_id = '' + +dog = Dogapi::Client.new(api_key, app_key) + +dog.delete_service_level_objective(slo_id) diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-edit.py b/content/en/api/service_level_objectives/code_snippets/api-slo-edit.py index 959b75c5f402a..408b6b3a3f2b5 100644 --- a/content/en/api/service_level_objectives/code_snippets/api-slo-edit.py +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-edit.py @@ -1,2 +1,28 @@ -# This is not yet supported by the Python Client for Datadog API -# Consult the curl example +from datadog import initialize, api + +options = { + 'api_key': '', + 'app_key': '' +} + +slo_id = "" + +initialize(**options) + +# Update an existing SLO (cannot change the 'type') + +thresholds = [ + {"timeframe": "7d", "target": 95}, + {"timeframe": "30d", "target": 95, "warning": 97}, +] +tags = ["app:webserver", "frontend"] +api.ServiceLevelObjective.update( + id=slo_id, + type="metric", + name="Custom Metric SLO", + description="SLO tracking custom service SLO", + numerator="sum:my.custom.metric{type:good}.as_count()", + denominator="sum:my.custom.metric{*}.as_count()", + tags=tags, + thresholds=thresholds +) diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-edit.rb b/content/en/api/service_level_objectives/code_snippets/api-slo-edit.rb index b767e4a3c1817..9962d75d8b486 100644 --- a/content/en/api/service_level_objectives/code_snippets/api-slo-edit.rb +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-edit.rb @@ -1,2 +1,26 @@ -# This is not yet supported by the Ruby Client for Datadog API -# Consult the curl example +require 'rubygems' +require 'dogapi' + +api_key = '' +app_key = '' +slo_id = '' + +dog = Dogapi::Client.new(api_key, app_key) + +# Update an existing SLO (cannot change the 'type') +thresholds = [ + {:timeframe => "7d", :target => 95}, + {:timeframe => "30d", :target => 95, :warning => 97}, +] +tags = ['app:webserver', 'frontend'] + +dog.update_service_level_objective( + slo_id, + :type => "metric", + :name => "Custom Metric SLO", + :description => "SLO tracking custom service SLO", + :numerator => "sum:my.custom.metric{type:good}.as_count()", + :denominator => "sum:my.custom.metric{*}.as_count()", + :tags => tags, + :thresholds => thresholds +) diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-get.py b/content/en/api/service_level_objectives/code_snippets/api-slo-get.py index 959b75c5f402a..bbebb2f5a6ff8 100644 --- a/content/en/api/service_level_objectives/code_snippets/api-slo-get.py +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-get.py @@ -1,2 +1,12 @@ -# This is not yet supported by the Python Client for Datadog API -# Consult the curl example +from datadog import initialize, api + +options = { + 'api_key': '', + 'app_key': '' +} + +slo_id = '' + +initialize(**options) + +api.ServiceLevelObjective.get(slo_id) diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-get.rb b/content/en/api/service_level_objectives/code_snippets/api-slo-get.rb index b767e4a3c1817..ee2f6b031d64e 100644 --- a/content/en/api/service_level_objectives/code_snippets/api-slo-get.rb +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-get.rb @@ -1,2 +1,10 @@ -# This is not yet supported by the Ruby Client for Datadog API -# Consult the curl example +require 'rubygems' +require 'dogapi' + +api_key = '' +app_key = '' +slo_id = '' + +dog = Dogapi::Client.new(api_key, app_key) + +dog.get_service_level_objective(slo_id) diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-search.py b/content/en/api/service_level_objectives/code_snippets/api-slo-search.py index 959b75c5f402a..da271577b0aff 100644 --- a/content/en/api/service_level_objectives/code_snippets/api-slo-search.py +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-search.py @@ -1,2 +1,18 @@ -# This is not yet supported by the Python Client for Datadog API -# Consult the curl example +from datadog import initialize, api + +options = { + 'api_key': '', + 'app_key': '' +} + +initialize(**options) + + +# search with a list of IDs +slo_ids = ["", ""] + +api.ServiceLevelObjective.get_all(ids=slo_ids, offset=0) + +# search with a query +query = "tags:app:frontend" +api.ServiceLevelObjective.get_all(query=query, offset=0) diff --git a/content/en/api/service_level_objectives/code_snippets/api-slo-search.rb b/content/en/api/service_level_objectives/code_snippets/api-slo-search.rb index b767e4a3c1817..756ff85409d7a 100644 --- a/content/en/api/service_level_objectives/code_snippets/api-slo-search.rb +++ b/content/en/api/service_level_objectives/code_snippets/api-slo-search.rb @@ -1,2 +1,17 @@ -# This is not yet supported by the Ruby Client for Datadog API -# Consult the curl example +require 'rubygems' +require 'dogapi' + +api_key = '' +app_key = '' + +dog = Dogapi::Client.new(api_key, app_key) + +# search with a list of IDs +slo_ids = ["", ""] + +api.search_service_level_objective(:slo_ids => slo_ids, :offset => 0) + +# search with a query +query = "tags:app:frontend" + +dog.search_service_level_objective(:query => query, :offset => 0) diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-bulk-delete.py b/content/en/api/service_level_objectives/code_snippets/result.api-slo-bulk-delete.py index 959b75c5f402a..d34de92e5e550 100644 --- a/content/en/api/service_level_objectives/code_snippets/result.api-slo-bulk-delete.py +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-bulk-delete.py @@ -1,2 +1,7 @@ -# This is not yet supported by the Python Client for Datadog API -# Consult the curl example +{ + "data": { + "deleted": ["43210000432100004321000043210000"], + "updated": ["12341234123412341234123412341234"], + }, + "errors": null +} diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-bulk-delete.rb b/content/en/api/service_level_objectives/code_snippets/result.api-slo-bulk-delete.rb index b767e4a3c1817..d34de92e5e550 100644 --- a/content/en/api/service_level_objectives/code_snippets/result.api-slo-bulk-delete.rb +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-bulk-delete.rb @@ -1,2 +1,7 @@ -# This is not yet supported by the Ruby Client for Datadog API -# Consult the curl example +{ + "data": { + "deleted": ["43210000432100004321000043210000"], + "updated": ["12341234123412341234123412341234"], + }, + "errors": null +} diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-create.py b/content/en/api/service_level_objectives/code_snippets/result.api-slo-create.py index 959b75c5f402a..39a5d8f24a00b 100644 --- a/content/en/api/service_level_objectives/code_snippets/result.api-slo-create.py +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-create.py @@ -1,2 +1,28 @@ -# This is not yet supported by the Python Client for Datadog API -# Consult the curl example +{ + "data": [ + { + "id": "12341234123412341234123412341234", + "description": "Track the uptime of host foo which is critical to the core business.", + "name": "Critical Foo Host Uptime", + "tags": ["app:core", "kpi"], + "type": "monitor", + "type_id": 0, + "monitor_ids": [42], + "thresholds": [ + { + "timeframe": "30d", + "target": 95, + "warning": 98 + } + ], + "creator": { + "handle": "foo", + "email": "foo@foo.example.com", + "id": 42, + }, + "created": "2015-12-18T16:34:14.014039+00:00", + "modified": "2015-12-18T16:34:14.014039+00:00" + } + ], + "error": null +} diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-create.rb b/content/en/api/service_level_objectives/code_snippets/result.api-slo-create.rb index b767e4a3c1817..39a5d8f24a00b 100644 --- a/content/en/api/service_level_objectives/code_snippets/result.api-slo-create.rb +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-create.rb @@ -1,2 +1,28 @@ -# This is not yet supported by the Ruby Client for Datadog API -# Consult the curl example +{ + "data": [ + { + "id": "12341234123412341234123412341234", + "description": "Track the uptime of host foo which is critical to the core business.", + "name": "Critical Foo Host Uptime", + "tags": ["app:core", "kpi"], + "type": "monitor", + "type_id": 0, + "monitor_ids": [42], + "thresholds": [ + { + "timeframe": "30d", + "target": 95, + "warning": 98 + } + ], + "creator": { + "handle": "foo", + "email": "foo@foo.example.com", + "id": 42, + }, + "created": "2015-12-18T16:34:14.014039+00:00", + "modified": "2015-12-18T16:34:14.014039+00:00" + } + ], + "error": null +} diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete-many.py b/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete-many.py index 959b75c5f402a..47d323287659c 100644 --- a/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete-many.py +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete-many.py @@ -1,2 +1,4 @@ -# This is not yet supported by the Python Client for Datadog API -# Consult the curl example +{ + "data": ["12341234123412341234123412341234"], + "error": null +} diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete-many.rb b/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete-many.rb index b767e4a3c1817..47d323287659c 100644 --- a/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete-many.rb +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete-many.rb @@ -1,2 +1,4 @@ -# This is not yet supported by the Ruby Client for Datadog API -# Consult the curl example +{ + "data": ["12341234123412341234123412341234"], + "error": null +} diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete.py b/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete.py index 959b75c5f402a..47d323287659c 100644 --- a/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete.py +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete.py @@ -1,2 +1,4 @@ -# This is not yet supported by the Python Client for Datadog API -# Consult the curl example +{ + "data": ["12341234123412341234123412341234"], + "error": null +} diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete.rb b/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete.rb index b767e4a3c1817..47d323287659c 100644 --- a/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete.rb +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-delete.rb @@ -1,2 +1,4 @@ -# This is not yet supported by the Ruby Client for Datadog API -# Consult the curl example +{ + "data": ["12341234123412341234123412341234"], + "error": null +} diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-edit.py b/content/en/api/service_level_objectives/code_snippets/result.api-slo-edit.py index 959b75c5f402a..aad0ec759aaa6 100644 --- a/content/en/api/service_level_objectives/code_snippets/result.api-slo-edit.py +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-edit.py @@ -1,2 +1,28 @@ -# This is not yet supported by the Python Client for Datadog API -# Consult the curl example +{ + "data": [ + { + "id": "12341234123412341234123412341234", + "description": "Track the uptime of host foo which is critical to the core business.", + "name": "Critical Foo Host Uptime", + "tags": ["app:core", "kpi"], + "type": "monitor", + "type_id": 0, + "monitor_ids": [42], + "thresholds": [ + { + "timeframe": "30d", + "target": 95, + "warning": 98 + } + ], + "creator": { + "handle": "foo", + "email": "foo@foo.example.com", + "id": 42, + }, + "created": "2015-12-18T16:34:14.014039+00:00", + "modified": "2015-12-18T18:34:14.014039+00:00" + } + ], + "error": null +} diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-edit.rb b/content/en/api/service_level_objectives/code_snippets/result.api-slo-edit.rb index b767e4a3c1817..aad0ec759aaa6 100644 --- a/content/en/api/service_level_objectives/code_snippets/result.api-slo-edit.rb +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-edit.rb @@ -1,2 +1,28 @@ -# This is not yet supported by the Ruby Client for Datadog API -# Consult the curl example +{ + "data": [ + { + "id": "12341234123412341234123412341234", + "description": "Track the uptime of host foo which is critical to the core business.", + "name": "Critical Foo Host Uptime", + "tags": ["app:core", "kpi"], + "type": "monitor", + "type_id": 0, + "monitor_ids": [42], + "thresholds": [ + { + "timeframe": "30d", + "target": 95, + "warning": 98 + } + ], + "creator": { + "handle": "foo", + "email": "foo@foo.example.com", + "id": 42, + }, + "created": "2015-12-18T16:34:14.014039+00:00", + "modified": "2015-12-18T18:34:14.014039+00:00" + } + ], + "error": null +} diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-get.py b/content/en/api/service_level_objectives/code_snippets/result.api-slo-get.py index 959b75c5f402a..19a85f86cb476 100644 --- a/content/en/api/service_level_objectives/code_snippets/result.api-slo-get.py +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-get.py @@ -1,2 +1,26 @@ -# This is not yet supported by the Python Client for Datadog API -# Consult the curl example +{ + "data": { + "id": "12341234123412341234123412341234", + "description": "Track the uptime of host foo which is critical to the core business.", + "name": "Critical Foo Host Uptime", + "tags": ["app:core", "kpi"], + "type": "monitor", + "type_id": 0, + "monitor_ids": [42], + "thresholds": [ + { + "timeframe": "30d", + "target": 95, + "warning": 98 + } + ], + "creator": { + "handle": "foo", + "email": "foo@foo.example.com", + "id": 42, + }, + "created": "2015-12-18T16:34:14.014039+00:00", + "modified": "2015-12-18T16:34:14.014039+00:00" + }, + "error": null +} diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-get.rb b/content/en/api/service_level_objectives/code_snippets/result.api-slo-get.rb index b767e4a3c1817..19a85f86cb476 100644 --- a/content/en/api/service_level_objectives/code_snippets/result.api-slo-get.rb +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-get.rb @@ -1,2 +1,26 @@ -# This is not yet supported by the Ruby Client for Datadog API -# Consult the curl example +{ + "data": { + "id": "12341234123412341234123412341234", + "description": "Track the uptime of host foo which is critical to the core business.", + "name": "Critical Foo Host Uptime", + "tags": ["app:core", "kpi"], + "type": "monitor", + "type_id": 0, + "monitor_ids": [42], + "thresholds": [ + { + "timeframe": "30d", + "target": 95, + "warning": 98 + } + ], + "creator": { + "handle": "foo", + "email": "foo@foo.example.com", + "id": 42, + }, + "created": "2015-12-18T16:34:14.014039+00:00", + "modified": "2015-12-18T16:34:14.014039+00:00" + }, + "error": null +} diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-search.py b/content/en/api/service_level_objectives/code_snippets/result.api-slo-search.py index 959b75c5f402a..39a5d8f24a00b 100644 --- a/content/en/api/service_level_objectives/code_snippets/result.api-slo-search.py +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-search.py @@ -1,2 +1,28 @@ -# This is not yet supported by the Python Client for Datadog API -# Consult the curl example +{ + "data": [ + { + "id": "12341234123412341234123412341234", + "description": "Track the uptime of host foo which is critical to the core business.", + "name": "Critical Foo Host Uptime", + "tags": ["app:core", "kpi"], + "type": "monitor", + "type_id": 0, + "monitor_ids": [42], + "thresholds": [ + { + "timeframe": "30d", + "target": 95, + "warning": 98 + } + ], + "creator": { + "handle": "foo", + "email": "foo@foo.example.com", + "id": 42, + }, + "created": "2015-12-18T16:34:14.014039+00:00", + "modified": "2015-12-18T16:34:14.014039+00:00" + } + ], + "error": null +} diff --git a/content/en/api/service_level_objectives/code_snippets/result.api-slo-search.rb b/content/en/api/service_level_objectives/code_snippets/result.api-slo-search.rb index b767e4a3c1817..39a5d8f24a00b 100644 --- a/content/en/api/service_level_objectives/code_snippets/result.api-slo-search.rb +++ b/content/en/api/service_level_objectives/code_snippets/result.api-slo-search.rb @@ -1,2 +1,28 @@ -# This is not yet supported by the Ruby Client for Datadog API -# Consult the curl example +{ + "data": [ + { + "id": "12341234123412341234123412341234", + "description": "Track the uptime of host foo which is critical to the core business.", + "name": "Critical Foo Host Uptime", + "tags": ["app:core", "kpi"], + "type": "monitor", + "type_id": 0, + "monitor_ids": [42], + "thresholds": [ + { + "timeframe": "30d", + "target": 95, + "warning": 98 + } + ], + "creator": { + "handle": "foo", + "email": "foo@foo.example.com", + "id": 42, + }, + "created": "2015-12-18T16:34:14.014039+00:00", + "modified": "2015-12-18T16:34:14.014039+00:00" + } + ], + "error": null +} From cb948963ed8da8ddc47bb7bf45d3992395a8aa41 Mon Sep 17 00:00:00 2001 From: Cody Lee Date: Tue, 1 Oct 2019 11:04:04 -0500 Subject: [PATCH 05/14] add some additional description to api endpionts; --- .../service_level_objectives_delete.md | 2 ++ .../service_level_objectives_get.md | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/content/en/api/service_level_objectives/service_level_objectives_delete.md b/content/en/api/service_level_objectives/service_level_objectives_delete.md index 0586a671f8d93..e2a216706e683 100644 --- a/content/en/api/service_level_objectives/service_level_objectives_delete.md +++ b/content/en/api/service_level_objectives/service_level_objectives_delete.md @@ -7,6 +7,8 @@ external_redirect: /api/#delete-a-service-level-objective ## Delete a Service Level Objective +Permanently delete a SLO. + **ARGUMENTS**: This endpoint takes no JSON arguments. diff --git a/content/en/api/service_level_objectives/service_level_objectives_get.md b/content/en/api/service_level_objectives/service_level_objectives_get.md index 7f881b888d569..c787243c34cd7 100644 --- a/content/en/api/service_level_objectives/service_level_objectives_get.md +++ b/content/en/api/service_level_objectives/service_level_objectives_get.md @@ -6,3 +6,9 @@ external_redirect: /api/#get-a-service-level-objective-s-details --- ## Get a service level objective's details + +Get a specific SLO's details + +**ARGUMENTS**: + +This endpoint takes no JSON arguments. From f647f958b7d68a8ec49a700098ac6cd94eefaad6 Mon Sep 17 00:00:00 2001 From: Kaylyn Sigler Date: Wed, 2 Oct 2019 19:33:55 -0600 Subject: [PATCH 06/14] reorging SLO docs to fit datadog template and style --- config/_default/menus/menus.en.yaml | 62 ++++-------- .../service_level_objectives/_index.md | 96 +++++++++++++++++++ content/en/service_level_objectives/_index.md | 35 ------- .../en/service_level_objectives/list_slos.md | 47 --------- .../en/service_level_objectives/slo_status.md | 59 ------------ .../slo_types/_index.md | 29 ------ .../slo_types/metric.md | 59 ------------ .../slo_types/monitor.md | 56 ----------- content/en/service_level_objectives/widget.md | 18 ---- 9 files changed, 114 insertions(+), 347 deletions(-) create mode 100644 content/en/monitors/service_level_objectives/_index.md delete mode 100644 content/en/service_level_objectives/_index.md delete mode 100644 content/en/service_level_objectives/list_slos.md delete mode 100644 content/en/service_level_objectives/slo_status.md delete mode 100644 content/en/service_level_objectives/slo_types/_index.md delete mode 100644 content/en/service_level_objectives/slo_types/metric.md delete mode 100644 content/en/service_level_objectives/slo_types/monitor.md delete mode 100644 content/en/service_level_objectives/widget.md diff --git a/config/_default/menus/menus.en.yaml b/config/_default/menus/menus.en.yaml index 11a1483cc2828..d1b181b77cdba 100644 --- a/config/_default/menus/menus.en.yaml +++ b/config/_default/menus/menus.en.yaml @@ -664,6 +664,24 @@ main: weight: 6 parent: "alerting" + ## MONITORS - SLOs + + - name: "Service Level Objectives" + url: "monitors/service_level_objectives/" + weight: 7 + parent: "alerting" + identifier: "slos" + + - name: "Monitor SLO" + url: "monitors/service_level_objectives/monitor/" + parent: "slos" + weight: 7.1 + + - name: "Event SLO" + url: "monitors/service_level_objectives/event/" + parent: "slos" + weight: 7.2 + ## MONITORS - Guides - name: "Guides" @@ -671,50 +689,6 @@ main: weight: 100 parent: "alerting" - -############################## -## SERVICE LEVEL OBJECTIVES ## -############################## - - - name: "Service Level Objectives" - url: "service_level_objectives/" - pre: "nav_slo" - identifier: "slo" - weight: 75000 - - ## SLO - Monitor Types - - - name: "Service Level Objectives" - url: "service_level_objectives/slo_types/" - parent: "slo" - identifier: "slo_types" - weight: 1 - - name: "Monitor" - url: "service_level_objectives/slo_types/monitor/" - parent: "slo_types" - weight: 101 - - name: "Metric" - url: "service_level_objectives/slo_types/metric/" - parent: "slo_types" - weight: 102 - - ## SLO - - name: "List Service Level Objectives" - url: "service_level_objectives/list_slos/" - weight: 2 - parent: "slo" - - - name: "Service Level Objective Status" - url: "service_level_objectives/slo_status/" - weight: 3 - parent: "slo" - - - name: "Service Level Objective Dashboard Widget" - url: "service_level_objectives/widget/" - weight: 4 - parent: "slo" - - ################# ## TRACING/APM ## ################# diff --git a/content/en/monitors/service_level_objectives/_index.md b/content/en/monitors/service_level_objectives/_index.md new file mode 100644 index 0000000000000..0b633d05375b2 --- /dev/null +++ b/content/en/monitors/service_level_objectives/_index.md @@ -0,0 +1,96 @@ +--- +title: Service Level Objectives +kind: documentation +description: "Track the status of your SLOs" +disable_toc: true +aliases: + - /monitors/monitor_uptime_widget/ + - /monitors/slos/ +further_reading: +- link: "https://www.datadoghq.com/blog/slo-monitoring-widget/" + tag: "Blog" + text: "Track the status of your SLOs with the new monitor uptime widget" +--- + +## Overview + +Service Level Objectives, or SLOs, are a key part of the site reliability engineering toolkit. SLOs provide a +framework for defining clear targets around application performance, which ultimately help teams provide a consistent +customer experience, balance feature development with platform stability, and improve communication with internal and +external users. + +## Setup + +Use the SLO and uptime widget to track your SLOs (Service Level Objectives) and uptime on screenboards and timeboards. You can use SLO by adding a widget to a dashboard, or by going to Datadog’s [Service Level Objectives page][1] to create new SLOs and view all existing ones. Select an existing SLO from the dropdown and display it on any dashboard. + +*Uptime* is defined as the amount of time a monitor was in an *up* state (OK) compared to *down* state (non-OK). The status is represented in bars as green (up) and red (down). Example: ’99 % of the time latency is less than 200ms.` + +You can also track success rate and event-based SLIs (Service Level Indicators). Example: `99 % of requests are successful.` + +{{< img src="monitors/slo/create-slo.png" alt="create a slo" responsive="true" >}} + +### Configuration + +1. On the [SLO page][1], select **New SLO +**. +2. Define the source for your monitors. Monitor types are [Event based][6] and [Monitor based][5]. +3. Set your target uptime. Available windows are: 7 days, month-to-date, 30 days (rolling), Previous Month, and 90 days (rolling). For 7 days, the widget is restricted to two decimal places. For 30 days and up, it’s restricted to two to three decimal places. +4. Finally, give the SLO a title and save it. + +Once you have monitors set up, on the [main Service Level Objectives page][1], you can view the overall uptime percentage only—or the overall percentage, plus the uptime for each monitor. + +{{< img src="monitors/slo/slo-overview.png" alt="slo main page" responsive="true" >}} + +## Edit an SLO + +To edit an SLO, hover over the SLO on the right, and click the edit pencil icon. + +## Searching SLOs + +The [List Service Level Objectives][1] page lets you run an advanced search of all SLOs so you can view, delete or edit service tags for selected SLOs in bulk. You can also clone or fully edit any individual SLO in the search results. + +{{< img src="service_level_objectives/edit_slo/edit_slo_page.png" alt="edit slo page" responsive="true" >}} + +Advanced search lets you query SLOs by any combination of SLO attributes: + +* `name` and `description` - text search +* `time window` - *, 7d, 30d, 90d +* `type` - metric, monitor +* `creator` +* `id` +* `service` - tags +* `team` - tags +* `env` - tags + +To run a search, use the checkboxes on the left and the search bar. When you check the boxes, the search bar updates with the equivalent query. Likewise, when you modify the search bar query (or write one from scratch), the checkboxes update to reflect the change. Query results update in real-time as you edit the query; there's no 'Search' button to click. + +To edit an individual SLO, hover over it and use the buttons to the far right in its row: Edit, Clone, Delete. To see more detail on a SLO, click its table row to visit its status page. + +{{< img src="service_level_objectives/edit_slo/edit-slo-hover-clone.png" alt="edit-slo-hover-clone" responsive="true" style="width:80%;" >}} + +### SLO Tags + +{{< img src="service_level_objectives/edit_slo/slo-tags.png" alt="Monitor tags" responsive="true" style="width:30%;" >}} + +You can add tags directly to your SLOs for filtering on the [list SLOs][4] pages. + +## View your SLOs + +You can view, edit your SLO and its properties and see the status over time and the history of your SLO from the [SLO status page][4]. + +{{< img src="service_level_objectives/slo_status/status_slo_history.mp4" alt="status slo history" video="true" responsive="true" width="80%" >}} + +## SLO Widgets + +After creating your SLO, you can use the SLO dashboard widget to visualize the status of your SLOs along with your dashboard metrics, logs and APM data. For more information about SLO Widgets, see the [SLO Widgets documentation][7] page. + +## Further Reading + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/slo/new +[2]: /api/#servicelevelobjectives +[3]: /developers/libraries/#managing-service-level-objectives +[4]: https://app.datadoghq.com/slo +[5]: /monitors/service_level_objectives/monitor/ +[6]: /monitors/service_level_objectives/event/ +[7]: /graphing/widgets/slo/ \ No newline at end of file diff --git a/content/en/service_level_objectives/_index.md b/content/en/service_level_objectives/_index.md deleted file mode 100644 index 39341314875a6..0000000000000 --- a/content/en/service_level_objectives/_index.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: Service Level Objectives -kind: documentation -aliases: - - /guides/service_level_objectives/ - - /guides/service_level_objective/ - - /guides/slos/ - - /guides/slo/ - - /monitors/monitor_uptime_widget/ -description: Create & manage your Service Level Objectives -further_reading: - - link: "https://www.datadoghq.com/blog/slo-monitoring-tracking/" - tag: "Blog" - text: "Track the status of all your SLOs in Datadog" - - link: "/api/#service-level-objectives" - tag: "Documentation" - text: "Datadog Service Level Objectives API" ---- - -Service Level Objectives, or SLOs, are a key part of the site reliability engineering toolkit. SLOs provide a -framework for defining clear targets around application performance, which ultimately help teams provide a consistent -customer experience, balance feature development with platform stability, and improve communication with internal and -external users. - -## Overview - -{{< whatsnext desc="This section includes the following topics:">}} - {{< nextlink href="/service_level_objectives/slo_types" >}}Service Level Objective Types: Create, edit, or audit your SLOs.{{< /nextlink >}} - {{< nextlink href="/service_level_objectives/list_slos" >}}List SLOs: See all your SLOs in one place. Search, delete or edit service tags for selected SLOs in bulk.{{< /nextlink >}} - {{< nextlink href="/service_level_objectives/slo_status" >}}SLO Status: See the status of a specific SLO over time.{{< /nextlink >}} - {{< nextlink href="/service_level_objectives/widget" >}}SLO Widget: Track service level objectives (SLOs) with the SLO widget on dashboards.{{< /nextlink >}} -{{< /whatsnext >}} - -## Further Reading -{{< partial name="whats-next/whats-next.html" >}} diff --git a/content/en/service_level_objectives/list_slos.md b/content/en/service_level_objectives/list_slos.md deleted file mode 100644 index 1d12893ad574a..0000000000000 --- a/content/en/service_level_objectives/list_slos.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: List Service Level Objectives -kind: documentation -further_reading: -- link: "service_level_objectives/slo_types" - tag: "Documentation" - text: "Learn how to create a SLO" ---- - -The [List Service Level Objectives][1] page lets you run an advanced search of all SLOs so you can view, delete or edit service tags for selected SLOs in bulk. You can also clone or fully edit any individual SLO in the search results. - -{{< img src="service_level_objectives/edit_slo/edit_slo_page.png" alt="edit slo page" responsive="true" >}} - -## Find the Service Level Objectives - -Advanced search lets you query SLOs by any combination of SLO attributes: - -* `name` and `description` - text search -* `time window` - *, 7d, 30d, 90d -* `type` - metric, monitor -* `creator` -* `id` -* `service` - tags -* `team` - tags -* `env` - tags - -To run a search, construct your query using the checkboxes on the left and/or the search bar along the top. When you check the boxes, the search bar updates with the equivalent query. Likewise, when you modify the search bar query (or write one from scratch), the checkboxes update to reflect the change. In any case, query results update in real-time as you edit the query; there's no 'Search' button to click. - -## Manage chosen Service Level Objectives - -When you have found the SLOs you were looking for, select one or more that you wish to update using the checkboxes next to each result. You can select all results by ticking the topmost checkbox next to the STATUS column heading. Modify the SLOs in bulk using the buttons at the top right of the search results: Delete is currently the only supported operation. - -To edit an individual SLO, hover over it and use the buttons to the far right in its row: Edit, Clone, Delete. To see more detail on a SLO, click its table row to visit its status page. - -{{< img src="service_level_objectives/edit_slo/edit-slo-hover-clone.png" alt="edit-slo-hover-clone" responsive="true" style="width:80%;" >}} - -### Service Level Objective Tags - -{{< img src="service_level_objectives/edit_slo/slo-tags.png" alt="Monitor tags" responsive="true" style="width:30%;" >}} - -You can choose to add tags directly to your SLos that you can use for filtering on the [list SLOs][1] pages. - -## Further Reading - -{{< partial name="whats-next/whats-next.html" >}} - -[1]: https://app.datadoghq.com/slo diff --git a/content/en/service_level_objectives/slo_status.md b/content/en/service_level_objectives/slo_status.md deleted file mode 100644 index d7b9af05ad997..0000000000000 --- a/content/en/service_level_objectives/slo_status.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Service Level Objective Status -kind: documentation -description: "Get an overview of your SLO status over time" -further_reading: -- link: "service_level_objectives/slo_types" - tag: "Documentation" - text: "Learn how to create a Service Level Objective" ---- - -{{< img src="service_level_objectives/slo_status/slo_status_page.png" alt="slo status page" responsive="true" >}} - -## Overview -After [creating your SLO][1], use the SLO status page to view the status over time. This page contains the following sections: - -* [Header](#header) -* [Status and History](#status-and-history) - - -## Header -On the left, the header contains the SLO's name, description, creator, query and tags. - -On the right, the header contains the **Settings** cog. - - -### Settings -Click the settings cog to display the options available: - -| Option | Description | -|--------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Edit | Edit the current SLO. More information is available in [Service Level Objective Types][1]. | -| Clone | Make a copy of the current SLO. | -| Delete | Delete the current SLO. You will be prompted to confirm the deletion. | - -## Properties - -{{< img src="service_level_objectives/slo_status/status_slo_properties.png" alt="status slo properties" responsive="true" style="width:80%;" >}} - -The *Properties* section is the overview of your SLO: - -* The status of your SLO -* The SLO creator -* Tags attached to your SLO. *Edit the tag list by clicking on the pencil icon*. -* The SLO query -* The SLO description - -Use the *cog* icon in the upper right corner of the page to [edit][1] your SLO properties. - -## Status and History - -The *Status and History* section reflect the query and SLO status over time over the selected time frame: - -{{< img src="service_level_objectives/slo_status/status_slo_history.mp4" alt="status slo history" video="true" responsive="true" width="80%" >}} - -## Further Reading - -{{< partial name="whats-next/whats-next.html" >}} - -[1]: /service_level_objectives/slo_types diff --git a/content/en/service_level_objectives/slo_types/_index.md b/content/en/service_level_objectives/slo_types/_index.md deleted file mode 100644 index 95c2752122921..0000000000000 --- a/content/en/service_level_objectives/slo_types/_index.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: Service Level Objectives -kind: documentation -aliases: - - /slos ---- - -## Setup - -Use the SLO and uptime widget to track your SLOs (Service Level Objectives) and uptime on screenboards and timeboards. You can use SLO by adding a widget to a dashboard, or by going to Datadog’s [Service Level Objectives page][1] to create new SLOs and view all existing ones. Select an existing SLO from the dropdown and display it on any dashboard. - -*Uptime* is defined as the amount of time a monitor was in an *up* state (OK) compared to *down* state (non-OK). The status is represented in bars as green (up) and red (down). Example: ’99 % of the time latency is less than 200ms.` - -You can also track success rate and event-based SLIs (Service Level Indicators). Example: `99 % of requests are successful.` - -{{< img src="monitors/slo/create-slo.png" alt="create a slo" responsive="true" >}} - -{{< whatsnext desc="Select a SLO type:">}} - {{< nextlink href="/service_level_objectives/slo_types/monitor" >}}Monitor{{< /nextlink >}} - {{< nextlink href="/service_level_objectives/slo_types/metric" >}}Metric{{< /nextlink >}} -{{< /whatsnext >}} - -{{< whatsnext desc="Additional Docs:">}} - {{< nextlink href="/api/#service-level-objectives" >}}API Usage{{< /nextlink >}} -{{< /whatsnext >}} - -[1]: https://app.datadoghq.com/slo/new -[2]: /api/#servicelevelobjectives -[3]: /developers/libraries/#managing-service-level-objectives diff --git a/content/en/service_level_objectives/slo_types/metric.md b/content/en/service_level_objectives/slo_types/metric.md deleted file mode 100644 index 8797772ec6110..0000000000000 --- a/content/en/service_level_objectives/slo_types/metric.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Metric based SLO -kind: documentation -description: "Use Metrics to define the Service Level Objective" -further_reading: -- link: "metrics" - tag: "Documentation" - text: "More information about metrics" ---- - -## Overview - -Metric based SLOs are useful for a count-based stream of data where you are differentiating good and/or bad events. -Using the sum of the good events divided by the sum of total events over time provides a Service Level Indicator (or SLI). - -## Service Level Objective creation - -To create a [metric SLO][1] in Datadog, use the main navigation: *Monitors --> New Service Level Objective --> Event Based*. - -### Define the source (SLI) - -{{< tabs >}} -{{% tab "Event Based" %}} - -There are 2 queries to define. The first query defines the sum of the good events, while the second query defines the sum of -the total events. - -It is only recommended to use the `sum by` aggregator and to add all events. - -Example: If tracking HTTP return codes, and your metric includes a tag like `code:2xx` || `code:3xx` || `code:4xx`. -The sum of good events would be `sum:httpservice.hits{code:2xx} + sum:httpservice.hits{code:4xx}`. And the `total` events -would be `sum:httpservice.hits{!code:3xx}`. - -Why did we exclude `HTTP 3xx`? - These are typically redirects and should not count for or against the SLI, but other non 3xx -based error codes should. In the `total` case we want all types minus `HTTP 3xx`, in the `numerator` we only want `OK` type -status codes. - -{{% /tab %}} -{{% tab "Set your targets" %}} - -Setting your targets for your SLI's is an important step, this is the value that you are aiming for or better. - -First select your target value, example: `95% of all HTTP requests should be "good" over the last 7 days`. - -You can optionally include a warning value that is greater than the target value to indicate when you are approaching -an SLO breach. - - -{{% /tab %}} -{{% tab "Identify this indicator" %}} - -Here we add contextual information about the purpose of the SLO, including any related information -in the description and tags you would like to associate with the SLO. - -## Further Reading - -{{< partial name="whats-next/whats-next.html" >}} - -[1]: https://app.datadoghq.com/slo/new/event diff --git a/content/en/service_level_objectives/slo_types/monitor.md b/content/en/service_level_objectives/slo_types/monitor.md deleted file mode 100644 index b8243d7d08fc2..0000000000000 --- a/content/en/service_level_objectives/slo_types/monitor.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: Monitor based SLO -kind: documentation -description: "Use Monitors to define the Service Level Objective" -further_reading: -- link: "monitors" - tag: "Documentation" - text: "More information about Monitors" ---- - -## Overview - -Monitor based SLOs are useful for a time-based stream of data where you are differentiating time of good behavior vs bad behavior. -Using the sum of the good time divided by the sum of total time provides a Service Level Indicator (or SLI). - -## Service Level Objective creation - -To create a [monitor SLO][1] in Datadog, use the main navigation: *Monitors --> New Service Level Objective --> Monitor Based*. - -### Define the source (SLI) - -{{< tabs >}} -{{% tab "Monitor Based" %}} - -Use the input area to search for monitors that should apply using the same search syntax as in the Manage Monitors page. - -You can select up to 20 monitors to include in the SLO. - -Example: You might be tracking the uptime of a physical device. You have already configured a metric monitor on `host:foo` using -a custom metric. This monitor might also ping your on-call team if it's no longer reachable. To avoid burnout you want to -track how often this host is down. - -Search for this monitor by name and click on it to add it to the source list. - -{{% /tab %}} -{{% tab "Set your targets" %}} - -Setting your targets for your SLI's is an important step, this is the value that you are aiming for or better. - -First select your target value, example: `95% of the time I expect the host to be up over the last 30 days`. - -You can optionally include a warning value that is greater than the target value to indicate when you are approaching -an SLO breach. - - -{{% /tab %}} -{{% tab "Identify this indicator" %}} - -Here we add contextual information about the purpose of the SLO, including any related information -in the description and tags you would like to associate with the SLO. - -## Further Reading - -{{< partial name="whats-next/whats-next.html" >}} - -[1]: https://app.datadoghq.com/slo/new/monitor diff --git a/content/en/service_level_objectives/widget.md b/content/en/service_level_objectives/widget.md deleted file mode 100644 index 70d55f90f0d5a..0000000000000 --- a/content/en/service_level_objectives/widget.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Service Level Objective Dashboard Widget -kind: documentation -description: "Visualize a SLO in a dashboard" -further_reading: -- link: "service_level_objectives/slo_types" - tag: "Documentation" - text: "Learn how to create a Service Level Objective" ---- - -{{< img src="service_level_objectives/slo_widget/slo_widget.png" alt="slo status page" responsive="true" >}} - -## Overview - -After [creating your SLO][1], you can use these SLOs in the SLO dashboard widget to visualize -the status of your SLOs for along with your dashboard metrics, logs and APM data. - -[1]: /service_level_objectives From cf4b9c930ea58fd1a7b27ef5544a59e23d4d1f0b Mon Sep 17 00:00:00 2001 From: Kaylyn Sigler Date: Wed, 2 Oct 2019 19:34:37 -0600 Subject: [PATCH 07/14] forgot to git add --- .../service_level_objectives/event.md | 55 +++++++++++++++++ .../service_level_objectives/monitor.md | 60 +++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 content/en/monitors/service_level_objectives/event.md create mode 100644 content/en/monitors/service_level_objectives/monitor.md diff --git a/content/en/monitors/service_level_objectives/event.md b/content/en/monitors/service_level_objectives/event.md new file mode 100644 index 0000000000000..04263eb83a8eb --- /dev/null +++ b/content/en/monitors/service_level_objectives/event.md @@ -0,0 +1,55 @@ +--- +title: Event based SLO +kind: documentation +description: "Use metrics to define Service Level Objective" +further_reading: +- link: "metrics" + tag: "Documentation" + text: "More information about metrics" +--- + +## Overview + +Event or metric based SLOs are useful for a count-based stream of data where you are differentiating good and bad events. +Using the sum of the good events divided by the sum of total events over time to calculate a Service Level Indicator (or SLI). + +## Setup + +On the [SLO page][1], select **New SLO +**. Then select **Event**. + +### Configuration + +#### Define queries + +There are two queries to define. The first query defines the sum of the good events, while the second query defines the sum of +the total events. + +Datadog reccomends the `sum by` aggregator and to add all events. + +**Example:** If you are tracking HTTP return codes, and your metric includes a tag like `code:2xx` || `code:3xx` || `code:4xx`. +The sum of good events would be `sum:httpservice.hits{code:2xx} + sum:httpservice.hits{code:4xx}`. And the `total` events +would be `sum:httpservice.hits{!code:3xx}`. + +Why did we exclude `HTTP 3xx`? - These are typically redirects and should not count for or against the SLI, but other non 3xx +based error codes should. In the `total` case we want all types minus `HTTP 3xx`, in the `numerator` we only want `OK` type +status codes. + +#### Set your targets + +SLO targets are the stat you use to measure uptime success. + +First select your target value, example: `95% of all HTTP requests should be "good" over the last 7 days`. + +You can optionally include a warning value that is greater than the target value to indicate when you are approaching +an SLO breach. + +#### Identify the indicator + +Here we add contextual information about the purpose of the SLO, including any related information +in the description and tags you would like to associate with the SLO. + +## Further Reading + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: https://app.datadoghq.com/slo/new/event diff --git a/content/en/monitors/service_level_objectives/monitor.md b/content/en/monitors/service_level_objectives/monitor.md new file mode 100644 index 0000000000000..950de8b2af687 --- /dev/null +++ b/content/en/monitors/service_level_objectives/monitor.md @@ -0,0 +1,60 @@ +--- +title: Monitor SLO +kind: documentation +description: "Use Monitors to define the Service Level Objective" +further_reading: +- link: "monitors" + tag: "Documentation" + text: "More information about Monitors" +--- + +## Overview + +Select a monitor based source if you want to build your SLO based on existing or new Datadog monitors. For more information about monitors, see the [Monitor documentation][1]. Monitor based SLOs are useful for a time-based stream of data where you are differentiating time of good behavior vs bad behavior. +Using the sum of the good time divided by the sum of total time provides a Service Level Indicator (or SLI). + +## Setup + +On the [SLO page][2], select **New SLO +**. Then select **Monitor**. + +### Configuration + +#### Define queries + +To start, you need to be using Datadog monitors. To set up a new SLO monitor, go to the [monitor page][3]. Search for monitors by name and click on it to add it to the source list. An example SLO on a monitor is if the latency of all user requests should be less than 250ms 99% of the time in any 30 day window. To set this up, you would: + +1. Select a single monitor or, +2. Select multiple monitors (up to 20) or, +3. Select a single multi-alert monitor and select specific monitor groups (up to 20) to be included in SLO calculation. + +**Supported monitor types**: + +- metric monitor types - including metric, anomaly, APM, forecast, outlier, and integration metrics +- service checks +- synthetics + +**Example:** You might be tracking the uptime of a physical device. You have already configured a metric monitor on `host:foo` using +a custom metric. This monitor might also ping your on-call team if it's no longer reachable. To avoid burnout you want to +track how often this host is down. + +#### Set your targets + +SLO targets are the stat you use to measure uptime success. + +First select your target value, example: `95% of all HTTP requests should be "good" over the last 7 days`. + +You can optionally include a warning value that is greater than the target value to indicate when you are approaching +an SLO breach. + +#### Identify this indicator + +Here we add contextual information about the purpose of the SLO, including any related information +in the description and tags you would like to associate with the SLO. + +## Further Reading + +{{< partial name="whats-next/whats-next.html" >}} + +[1]: /monitors +[2]: https://app.datadoghq.com/slo/new/monitor +[3]: https://app.datadoghq.com/monitors#create/metric From 8f42016d01a3973fd2104e2962b725525cbc293a Mon Sep 17 00:00:00 2001 From: Cody Lee Date: Tue, 8 Oct 2019 13:54:33 -0500 Subject: [PATCH 08/14] fix small issues; --- content/en/monitors/service_level_objectives/_index.md | 4 ++-- content/en/monitors/service_level_objectives/event.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/content/en/monitors/service_level_objectives/_index.md b/content/en/monitors/service_level_objectives/_index.md index 0b633d05375b2..ba71c9c42bcf0 100644 --- a/content/en/monitors/service_level_objectives/_index.md +++ b/content/en/monitors/service_level_objectives/_index.md @@ -46,7 +46,7 @@ To edit an SLO, hover over the SLO on the right, and click the edit pencil icon. ## Searching SLOs -The [List Service Level Objectives][1] page lets you run an advanced search of all SLOs so you can view, delete or edit service tags for selected SLOs in bulk. You can also clone or fully edit any individual SLO in the search results. +The [List Service Level Objectives][4] page lets you run an advanced search of all SLOs so you can view, delete or edit service tags for selected SLOs in bulk. You can also clone or fully edit any individual SLO in the search results. {{< img src="service_level_objectives/edit_slo/edit_slo_page.png" alt="edit slo page" responsive="true" >}} @@ -93,4 +93,4 @@ After creating your SLO, you can use the SLO dashboard widget to visualize the s [4]: https://app.datadoghq.com/slo [5]: /monitors/service_level_objectives/monitor/ [6]: /monitors/service_level_objectives/event/ -[7]: /graphing/widgets/slo/ \ No newline at end of file +[7]: /graphing/widgets/slo/ diff --git a/content/en/monitors/service_level_objectives/event.md b/content/en/monitors/service_level_objectives/event.md index 04263eb83a8eb..8d20b9ac795ed 100644 --- a/content/en/monitors/service_level_objectives/event.md +++ b/content/en/monitors/service_level_objectives/event.md @@ -1,7 +1,7 @@ --- title: Event based SLO kind: documentation -description: "Use metrics to define Service Level Objective" +description: "Use metrics to define a Service Level Objective" further_reading: - link: "metrics" tag: "Documentation" From daa60cc1b5315023298610691df2b131210324a1 Mon Sep 17 00:00:00 2001 From: Kaylyn Sigler Date: Wed, 9 Oct 2019 18:14:03 -0600 Subject: [PATCH 09/14] fixing links --- .../service_level_objectives/_index.md | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/content/en/monitors/service_level_objectives/_index.md b/content/en/monitors/service_level_objectives/_index.md index 3af57047d10c4..84b30c5ff3baa 100644 --- a/content/en/monitors/service_level_objectives/_index.md +++ b/content/en/monitors/service_level_objectives/_index.md @@ -27,7 +27,7 @@ Use the SLO and uptime widget to track your SLOs (Service Level Objectives) and You can also track success rate and event-based SLIs (Service Level Indicators). Example: `99 % of requests are successful.` -{{< img src="monitors/slo/create-slo.png" alt="create a slo" responsive="true" >}} +{{< img src="monitors/service_level_objectives/create-slo.png" alt="create a slo" responsive="true" >}} ### Configuration @@ -38,7 +38,7 @@ You can also track success rate and event-based SLIs (Service Level Indicators). Once you have monitors set up, on the [main Service Level Objectives page][1], you can view the overall uptime percentage only—or the overall percentage, plus the uptime for each monitor. -{{< img src="monitors/slo/slo-overview.png" alt="slo main page" responsive="true" >}} +{{< img src="monitors/service_level_objectives//slo-overview.png" alt="slo main page" responsive="true" >}} ## Edit an SLO @@ -75,7 +75,7 @@ You can add tags directly to your SLOs for filtering on the [list SLOs][4] pages ### Overall Uptime Calculation -{{< img src="monitors/slo/overall_uptime_calculation.png" alt="overall uptime calculation" responsive="true" >}} +{{< img src="monitors/service_level_objectives/overall_uptime_calculation.png" alt="overall uptime calculation" responsive="true" >}} The overall uptime result calculated for a time `T_x` can be expressed using boolean logic as the logical conjunction (the `AND` conjunction) of all of the monitor states at time `T_x`. @@ -92,22 +92,18 @@ Consider the following example: ## View your SLOs -You can view, edit your SLO and its properties and see the status over time and the history of your SLO from the [SLO status page][4]. +You can view, edit your SLO and its properties and see the status over time and the history of your SLO from the [SLO status page][2]. {{< img src="service_level_objectives/slo_status/status_slo_history.mp4" alt="status slo history" video="true" responsive="true" width="80%" >}} ## SLO Widgets -After creating your SLO, you can use the SLO dashboard widget to visualize the status of your SLOs along with your dashboard metrics, logs and APM data. For more information about SLO Widgets, see the [SLO Widgets documentation][7] page. +After creating your SLO, you can use the SLO dashboard widget to visualize the status of your SLOs along with your dashboard metrics, logs and APM data. For more information about SLO Widgets, see the [SLO Widgets documentation][3] page. ## Further Reading {{< partial name="whats-next/whats-next.html" >}} [1]: https://app.datadoghq.com/slo/new -[2]: /api/#servicelevelobjectives -[3]: /developers/libraries/#managing-service-level-objectives -[4]: https://app.datadoghq.com/slo -[5]: /monitors/service_level_objectives/monitor/ -[6]: /monitors/service_level_objectives/event/ -[7]: /graphing/widgets/slo/ +[2]: https://app.datadoghq.com/slo +[3]: /graphing/widgets/slo From 257c915959cfedb39c04f33dad774092a4be82eb Mon Sep 17 00:00:00 2001 From: Kaylyn Sigler Date: Wed, 9 Oct 2019 18:29:12 -0600 Subject: [PATCH 10/14] fixing images and more links --- .../service_level_objectives/_index.md | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/content/en/monitors/service_level_objectives/_index.md b/content/en/monitors/service_level_objectives/_index.md index 84b30c5ff3baa..ee763d17bdc7f 100644 --- a/content/en/monitors/service_level_objectives/_index.md +++ b/content/en/monitors/service_level_objectives/_index.md @@ -32,9 +32,9 @@ You can also track success rate and event-based SLIs (Service Level Indicators). ### Configuration 1. On the [SLO page][1], select **New SLO +**. -2. Define the source for your monitors. Monitor types are [Event based][6] and [Monitor based][5]. +2. Define the source for your monitors. Monitor types are [Event based][5] and [Monitor based][4]. 3. Set your target uptime. Available windows are: 7 days, month-to-date, 30 days (rolling), Previous Month, and 90 days (rolling). For 7 days, the widget is restricted to two decimal places. For 30 days and up, it’s restricted to two to three decimal places. -4. Finally, give the SLO a title and save it. +4. Finally, give the SLO a title, describe it in more detail, add tags, and save it. Once you have monitors set up, on the [main Service Level Objectives page][1], you can view the overall uptime percentage only—or the overall percentage, plus the uptime for each monitor. @@ -46,9 +46,7 @@ To edit an SLO, hover over the SLO on the right, and click the edit pencil icon. ## Searching SLOs -The [List Service Level Objectives][4] page lets you run an advanced search of all SLOs so you can view, delete or edit service tags for selected SLOs in bulk. You can also clone or fully edit any individual SLO in the search results. - -{{< img src="service_level_objectives/edit_slo/edit_slo_page.png" alt="edit slo page" responsive="true" >}} +The [List Service Level Objectives][2] page lets you run an advanced search of all SLOs so you can view, delete or edit service tags for selected SLOs in bulk. You can also clone or fully edit any individual SLO in the search results. Advanced search lets you query SLOs by any combination of SLO attributes: @@ -63,15 +61,11 @@ Advanced search lets you query SLOs by any combination of SLO attributes: To run a search, use the checkboxes on the left and the search bar. When you check the boxes, the search bar updates with the equivalent query. Likewise, when you modify the search bar query (or write one from scratch), the checkboxes update to reflect the change. Query results update in real-time as you edit the query; there's no 'Search' button to click. -To edit an individual SLO, hover over it and use the buttons to the far right in its row: Edit, Clone, Delete. To see more detail on a SLO, click its table row to visit its status page. - -{{< img src="service_level_objectives/edit_slo/edit-slo-hover-clone.png" alt="edit-slo-hover-clone" responsive="true" style="width:80%;" >}} +To edit an individual SLO, hover over it and use the buttons to the far right in its row: **Edit**, **Clone**, **Delete**. To see more detail on a SLO, click its table row to visit its status page. ### SLO Tags -{{< img src="service_level_objectives/edit_slo/slo-tags.png" alt="Monitor tags" responsive="true" style="width:30%;" >}} - -You can add tags directly to your SLOs for filtering on the [list SLOs][4] pages. +When you create or edit an SLO, you can add tags for filtering on the [list SLOs][2] pages. ### Overall Uptime Calculation @@ -94,8 +88,6 @@ Consider the following example: You can view, edit your SLO and its properties and see the status over time and the history of your SLO from the [SLO status page][2]. -{{< img src="service_level_objectives/slo_status/status_slo_history.mp4" alt="status slo history" video="true" responsive="true" width="80%" >}} - ## SLO Widgets After creating your SLO, you can use the SLO dashboard widget to visualize the status of your SLOs along with your dashboard metrics, logs and APM data. For more information about SLO Widgets, see the [SLO Widgets documentation][3] page. From 6a95c299865b76eec4840433127d58015c60f4f4 Mon Sep 17 00:00:00 2001 From: Kaylyn Sigler Date: Wed, 9 Oct 2019 18:30:29 -0600 Subject: [PATCH 11/14] more link fixes --- content/en/monitors/service_level_objectives/_index.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/content/en/monitors/service_level_objectives/_index.md b/content/en/monitors/service_level_objectives/_index.md index ee763d17bdc7f..cc918639f8ba6 100644 --- a/content/en/monitors/service_level_objectives/_index.md +++ b/content/en/monitors/service_level_objectives/_index.md @@ -99,3 +99,5 @@ After creating your SLO, you can use the SLO dashboard widget to visualize the s [1]: https://app.datadoghq.com/slo/new [2]: https://app.datadoghq.com/slo [3]: /graphing/widgets/slo +[5]: /monitors/service_level_objectives/monitor/ +[6]: /monitors/service_level_objectives/event/ \ No newline at end of file From d6db5772bbef3650fd43574e02fa0faca3161826 Mon Sep 17 00:00:00 2001 From: Kaylyn Sigler Date: Wed, 9 Oct 2019 19:17:04 -0600 Subject: [PATCH 12/14] api docs edits --- .../service_level_objectives.md | 6 +++--- .../service_level_objectives_create.md | 13 ++++++++----- .../service_level_objectives_edit.md | 9 ++++++--- .../service_level_objectives_search.md | 6 +++--- 4 files changed, 20 insertions(+), 14 deletions(-) diff --git a/content/en/api/service_level_objectives/service_level_objectives.md b/content/en/api/service_level_objectives/service_level_objectives.md index 4e5fd602a262a..f457dee28ef78 100644 --- a/content/en/api/service_level_objectives/service_level_objectives.md +++ b/content/en/api/service_level_objectives/service_level_objectives.md @@ -11,7 +11,7 @@ framework for defining clear targets around application performance, which ultim customer experience, balance feature development with platform stability, and improve communication with internal and external users. -Refer to the [Creating Service Level Objectives page][2] for more information on creating SLOs. +For more information on creating SLOs, see the [Configuring Service Level Objectives info][2]. -[1]: /service_level_objectives -[2]: /service_level_objectives/slo_types +[1]: /monitors/service_level_objectives +[2]: /monitors/service_level_objectives/#configuration diff --git a/content/en/api/service_level_objectives/service_level_objectives_create.md b/content/en/api/service_level_objectives/service_level_objectives_create.md index b96664e1fff42..d9fc3c309f130 100644 --- a/content/en/api/service_level_objectives/service_level_objectives_create.md +++ b/content/en/api/service_level_objectives/service_level_objectives_create.md @@ -12,12 +12,12 @@ If you manage and deploy SLOs programmatically, it's easier to define the SLO in **ARGUMENTS**: * **`type`** [*required*]: - The [type of the SLO][2], chosen from: + The type of the SLO, chosen from: | SLO Type | type attribute value | |:-------------|:---------------------------------| -| metric | `metric` | -| monitor | `monitor` | +| [event][2] | `metric` | +| [monitor][3] | `monitor` | * **`name`** [*required*, *default* = **dynamic, based on query**]: The name of the SLO. @@ -41,6 +41,8 @@ If you manage and deploy SLOs programmatically, it's easier to define the SLO in ##### Monitor Based SLO +For more information, see [Monitor SLOs][3]. + * **`monitor_ids`** [*required*, *default* = **empty list**]: Specify up to 20 monitor IDs directly for a monitor-based SLO. You can optionally on-create-dynamically select monitor IDs using the following option instead: @@ -52,7 +54,7 @@ If you manage and deploy SLOs programmatically, it's easier to define the SLO in ##### Metric Based SLO * **`query`** [*required*]: - The query defines the metric-based SLO query. It requires two arguments: + The query defines the metric-based SLO query. For more information, see [Event SLOs][2]. It requires two arguments: * **`numerator`** [*required*]: Defines the sum of the `good` events @@ -61,4 +63,5 @@ If you manage and deploy SLOs programmatically, it's easier to define the SLO in [1]: /service_level_objectives/#export-your-service-level-objective -[2]: /service_level_objectives/slo_types +[2]: /monitors/service_level_objectives/event +[3]: /monitors/service_level_objectives/monitor diff --git a/content/en/api/service_level_objectives/service_level_objectives_edit.md b/content/en/api/service_level_objectives/service_level_objectives_edit.md index 49626cb420530..a7767d4c108da 100644 --- a/content/en/api/service_level_objectives/service_level_objectives_edit.md +++ b/content/en/api/service_level_objectives/service_level_objectives_edit.md @@ -31,6 +31,7 @@ external_redirect: /api/#edit-a-service-level-objective #### Monitor Based SLO +For more information, see [Monitor SLOs][1]. * **`monitor_ids`** [*required*, *default* = **empty list**]: Specify up to 20 monitor IDs directly for a monitor-based SLO. You can optionally on-create-dynamically select monitor IDs using the following option instead: @@ -40,12 +41,14 @@ external_redirect: /api/#edit-a-service-level-objective * **`groups`** [*optional*, *default* = **empty list**]: **Note: Only valid on single monitor SLOs** Specify the selected groups as a sub query of the selected monitor. -##### Metric Based SLO +##### Event Based SLO * **`query`** [*required*]: - The query defines the metric-based SLO query. It requires two arguments: + The query defines the event-based SLO query. For more information, see [Event SLOs][2]. It requires two arguments: * **`numerator`** [*required*]: - Defines the sum of the `good` events + Defines the sum of the `good` events. * **`denominator`** [*required*]: Defines the sum of the `total` events. **Note: this should always be >= `good` events** +[1]: /monitors/service_level_objectives/monitor +[2]: /monitors/service_level_objectives/event diff --git a/content/en/api/service_level_objectives/service_level_objectives_search.md b/content/en/api/service_level_objectives/service_level_objectives_search.md index e185e3c272945..5b9c9c62276c3 100644 --- a/content/en/api/service_level_objectives/service_level_objectives_search.md +++ b/content/en/api/service_level_objectives/service_level_objectives_search.md @@ -7,7 +7,7 @@ external_redirect: /api/#search-service-level-objectives ## Search Service Level Objectives -Search and filter your service level objectives details. +Search and filter your service level objectives. **ARGUMENTS**: @@ -17,7 +17,7 @@ Search and filter your service level objectives details. * **`query`** [*optional*]: - After entering a search query in your [List Service Level Objectives page][1] use the query parameter value in the URL of the page as value for this parameter. Consult the dedicated [list service level objectives documentation][2] page to learn more. + After entering a search query in your [List Service Level Objectives page][1], use the query parameter value in the URL of the page as value for this parameter. For more information on building a query, see [Searching SLOs][2]. The query can contain any number of space-separated monitor attributes, for instance `query="type:metric foo"`. @@ -32,4 +32,4 @@ Search and filter your service level objectives details. [1]: https://app.datadoghq.com/slo -[2]: /service_level_objectives/list_slo +[2]: /monitors/service_level_objectives/#searching-slos From ce7d4f83688fa08dcffa314caa3a421a693ce406 Mon Sep 17 00:00:00 2001 From: Kaylyn Sigler Date: Wed, 16 Oct 2019 15:52:04 -0600 Subject: [PATCH 13/14] updates based on latest feedback --- .../service_level_objectives_create.md | 21 +++++++++++-------- .../service_level_objectives_edit.md | 7 +++++-- .../service_level_objectives/event.md | 4 ++-- 3 files changed, 19 insertions(+), 13 deletions(-) diff --git a/content/en/api/service_level_objectives/service_level_objectives_create.md b/content/en/api/service_level_objectives/service_level_objectives_create.md index d9fc3c309f130..8f7829d1337e1 100644 --- a/content/en/api/service_level_objectives/service_level_objectives_create.md +++ b/content/en/api/service_level_objectives/service_level_objectives_create.md @@ -7,7 +7,7 @@ external_redirect: /api/#create-a-service-level-objective ## Create a service level objective -If you manage and deploy SLOs programmatically, it's easier to define the SLO in the Datadog UI and [export its valid JSON][1]. +Create a JSON to define your SLO. **ARGUMENTS**: @@ -16,8 +16,8 @@ If you manage and deploy SLOs programmatically, it's easier to define the SLO in | SLO Type | type attribute value | |:-------------|:---------------------------------| -| [event][2] | `metric` | -| [monitor][3] | `monitor` | +| [event][1] | `metric` | +| [monitor][2] | `monitor` | * **`name`** [*required*, *default* = **dynamic, based on query**]: The name of the SLO. @@ -41,7 +41,7 @@ If you manage and deploy SLOs programmatically, it's easier to define the SLO in ##### Monitor Based SLO -For more information, see [Monitor SLOs][3]. +For more information, see [Monitor SLOs][1]. * **`monitor_ids`** [*required*, *default* = **empty list**]: Specify up to 20 monitor IDs directly for a monitor-based SLO. You can optionally on-create-dynamically select @@ -52,9 +52,12 @@ For more information, see [Monitor SLOs][3]. * **`groups`** [*optional*, *default* = **empty list**]: **Note: Only valid on single monitor SLOs** Specify the selected groups as a sub query of the selected monitor. -##### Metric Based SLO +##### Event Based SLOs + +There is one type of event based SLO, a metric query. For more information, see [Event SLOs][3]. + * **`query`** [*required*]: - The query defines the metric-based SLO query. For more information, see [Event SLOs][2]. It requires two arguments: + The query defines the metric-based SLO query. It requires two arguments: * **`numerator`** [*required*]: Defines the sum of the `good` events @@ -62,6 +65,6 @@ For more information, see [Monitor SLOs][3]. Defines the sum of the `total` events. **Note: this should always be >= `good` events** -[1]: /service_level_objectives/#export-your-service-level-objective -[2]: /monitors/service_level_objectives/event -[3]: /monitors/service_level_objectives/monitor +[1]: /monitors/service_level_objectives/monitor +[2]: +[3]: /monitors/service_level_objectives/event diff --git a/content/en/api/service_level_objectives/service_level_objectives_edit.md b/content/en/api/service_level_objectives/service_level_objectives_edit.md index a7767d4c108da..4dd4f969088e9 100644 --- a/content/en/api/service_level_objectives/service_level_objectives_edit.md +++ b/content/en/api/service_level_objectives/service_level_objectives_edit.md @@ -41,9 +41,12 @@ For more information, see [Monitor SLOs][1]. * **`groups`** [*optional*, *default* = **empty list**]: **Note: Only valid on single monitor SLOs** Specify the selected groups as a sub query of the selected monitor. -##### Event Based SLO +##### Event Based SLO + +There is one type of event based SLO, a metric query. For more information, see [Event SLOs][2]. + * **`query`** [*required*]: - The query defines the event-based SLO query. For more information, see [Event SLOs][2]. It requires two arguments: + The query defines the event-based SLO query. It requires two arguments: * **`numerator`** [*required*]: Defines the sum of the `good` events. diff --git a/content/en/monitors/service_level_objectives/event.md b/content/en/monitors/service_level_objectives/event.md index 8d20b9ac795ed..9b1ba69ab55d7 100644 --- a/content/en/monitors/service_level_objectives/event.md +++ b/content/en/monitors/service_level_objectives/event.md @@ -10,8 +10,8 @@ further_reading: ## Overview -Event or metric based SLOs are useful for a count-based stream of data where you are differentiating good and bad events. -Using the sum of the good events divided by the sum of total events over time to calculate a Service Level Indicator (or SLI). +Event based SLOs are useful for a count-based stream of data where you are differentiating good and bad events. +There is one type of event based SLO - a metric query SLO. A metric query uses the sum of the good events divided by the sum of total events over time to calculate a Service Level Indicator (or SLI). ## Setup From f3a4bec52cea5ea8e2ef5292e8dbd58c39762b96 Mon Sep 17 00:00:00 2001 From: Kaylyn Sigler Date: Wed, 16 Oct 2019 15:59:56 -0600 Subject: [PATCH 14/14] updates based on feedback --- .../service_level_objectives_create.md | 13 +++++++------ .../service_level_objectives_edit.md | 6 ++++-- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/content/en/api/service_level_objectives/service_level_objectives_create.md b/content/en/api/service_level_objectives/service_level_objectives_create.md index 8f7829d1337e1..681cffb8b2739 100644 --- a/content/en/api/service_level_objectives/service_level_objectives_create.md +++ b/content/en/api/service_level_objectives/service_level_objectives_create.md @@ -14,7 +14,7 @@ Create a JSON to define your SLO. * **`type`** [*required*]: The type of the SLO, chosen from: -| SLO Type | type attribute value | +| SLO Type | supported value | |:-------------|:---------------------------------| | [event][1] | `metric` | | [monitor][2] | `monitor` | @@ -39,7 +39,7 @@ Create a JSON to define your SLO. * **`warning_display`** [*optional*, *default* = **dynamic, based on query**]: A warning target display value that includes the requires level of precision. -##### Monitor Based SLO +### Monitor Based SLO For more information, see [Monitor SLOs][1]. @@ -52,9 +52,11 @@ For more information, see [Monitor SLOs][1]. * **`groups`** [*optional*, *default* = **empty list**]: **Note: Only valid on single monitor SLOs** Specify the selected groups as a sub query of the selected monitor. -##### Event Based SLOs +### Event Based SLOs -There is one type of event based SLO, a metric query. For more information, see [Event SLOs][3]. +There is one type of event based SLO, a metric query. For more information, see [Event SLOs][2]. + +#### Metric Query * **`query`** [*required*]: The query defines the metric-based SLO query. It requires two arguments: @@ -66,5 +68,4 @@ There is one type of event based SLO, a metric query. For more information, see [1]: /monitors/service_level_objectives/monitor -[2]: -[3]: /monitors/service_level_objectives/event +[2]: /monitors/service_level_objectives/event diff --git a/content/en/api/service_level_objectives/service_level_objectives_edit.md b/content/en/api/service_level_objectives/service_level_objectives_edit.md index 4dd4f969088e9..6658ddecfa82f 100644 --- a/content/en/api/service_level_objectives/service_level_objectives_edit.md +++ b/content/en/api/service_level_objectives/service_level_objectives_edit.md @@ -29,7 +29,7 @@ external_redirect: /api/#edit-a-service-level-objective * **`warning_display`** [*optional*, *default* = **dynamic, based on query**]: A warning target display value that includes the requires level of precision. -#### Monitor Based SLO +## Monitor Based SLO For more information, see [Monitor SLOs][1]. * **`monitor_ids`** [*required*, *default* = **empty list**]: @@ -41,10 +41,12 @@ For more information, see [Monitor SLOs][1]. * **`groups`** [*optional*, *default* = **empty list**]: **Note: Only valid on single monitor SLOs** Specify the selected groups as a sub query of the selected monitor. -##### Event Based SLO +## Event Based SLO There is one type of event based SLO, a metric query. For more information, see [Event SLOs][2]. +### Metric Query + * **`query`** [*required*]: The query defines the event-based SLO query. It requires two arguments: