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 00000000000..140f9c6bd82 --- /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 00000000000..7ba2dff1680 --- /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 00000000000..83f67f73910 --- /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 00000000000..e0263cf0e61 --- /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 00000000000..b5366d720c6 --- /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 00000000000..3d5ce0c2dc1 --- /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 00000000000..4521bffe78f --- /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 00000000000..ab403b03375 --- /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 00000000000..d34de92e5e5 --- /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 00000000000..39a5d8f24a0 --- /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 00000000000..47d32328765 --- /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 00000000000..47d32328765 --- /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 00000000000..aad0ec759aa --- /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 00000000000..19a85f86cb4 --- /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 00000000000..39a5d8f24a0 --- /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 00000000000..4e5fd602a26 --- /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 00000000000..8fa6da8577a --- /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 00000000000..8a9136c498d --- /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 00000000000..8f040e2fb1c --- /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 00000000000..b96664e1fff --- /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 00000000000..c585f5cd9de --- /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 00000000000..0586a671f8d --- /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 00000000000..32636b2cb39 --- /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 00000000000..cd31cc6dd78 --- /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 00000000000..cb412fd929f --- /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 00000000000..49626cb4205 --- /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 00000000000..217f4b720cb --- /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 00000000000..7f881b888d5 --- /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 00000000000..5f6d0bf97d1 --- /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 00000000000..5665a5058eb --- /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 00000000000..21f0957f1fb --- /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 00000000000..79f13e121c5 --- /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 00000000000..1d12893ad57 --- /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 00000000000..d7b9af05ad9 --- /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 00000000000..a35e099a99d --- /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 00000000000..8797772ec61 --- /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 00000000000..b8243d7d08f --- /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 00000000000..46c6cc0f79e --- /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 06a5454b803..80e6f1a34d2 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 3eac2a9ca80..f2943e3d085 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 8e11f9ea260..4b9a3b1a105 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 004011aaa11..62055923221 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 20df25bf2c0..00000000000 --- 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 79f13e121c5..39341314875 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 a35e099a99d..95c27521229 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 00000000000..959b75c5f40 --- /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 00000000000..b767e4a3c18 --- /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 7ba2dff1680..afd6b09c6cf 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 00000000000..959b75c5f40 --- /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 00000000000..b767e4a3c18 --- /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 00000000000..959b75c5f40 --- /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 00000000000..b767e4a3c18 --- /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 00000000000..959b75c5f40 --- /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 00000000000..b767e4a3c18 --- /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 00000000000..959b75c5f40 --- /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 00000000000..b767e4a3c18 --- /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 00000000000..959b75c5f40 --- /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 00000000000..b767e4a3c18 --- /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 00000000000..959b75c5f40 --- /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 00000000000..b767e4a3c18 --- /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 00000000000..959b75c5f40 --- /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 00000000000..b767e4a3c18 --- /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 00000000000..959b75c5f40 --- /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 00000000000..b767e4a3c18 --- /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 00000000000..959b75c5f40 --- /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 00000000000..b767e4a3c18 --- /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 00000000000..959b75c5f40 --- /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 00000000000..b767e4a3c18 --- /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 00000000000..959b75c5f40 --- /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 00000000000..b767e4a3c18 --- /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 00000000000..959b75c5f40 --- /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 00000000000..b767e4a3c18 --- /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 00000000000..959b75c5f40 --- /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 00000000000..b767e4a3c18 --- /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 8fa6da8577a..d0bcaff768a 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 8a9136c498d..a11278cd5e7 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 5665a5058eb..e185e3c2729 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 21f0957f1fb..d2cc1728728 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 925bcd51da6..aadc794686f 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 c507ee7d55c..edf3ed4e066 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 3adca7c94ad..bacf897e248 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 c604aeaa368..78c98828052 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 c9c0541e533..a5c73c30d2a 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 6ce8aff06ea..3666245b953 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 b6e87253472..00737b90dd6 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 1fc9bd86421..cc4f750bc3d 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 df36266a79a..dd4e40042a5 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 ad16b0303da..eed1c234217 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 c3d789ae4da..64cd34f9eb7 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 30b43817d53..be11f224450 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 efd511b65e8..7a6f9e44d4a 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 03fa4736091..347acb60692 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 d5c175b46ea..e7b1df7e3ce 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 513daedce0b..540db9283a1 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 87a5d954dd9..8509ffad1bb 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 ed7740e0457..6aa07b714df 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 3aacce00bbb..e0a0ba12310 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 ffea0129adc..d1028982696 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 5a91d419909..7d7a46f48ce 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 52396a2ae51..1a42df8b320 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 77fd55c0806..af27364e102 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 1188ae77f17..70f2c776e72 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 1504b108d96..7b4c72a350a 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 9ef27cf09af..0ee101a4add 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 4846eaa9a93..a2160852b51 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 ff5288e9554..01f720a3da8 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 9b2b0d7c3d4..2a3806bda3c 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 10826aec89c..414c5479db1 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 eb07db05d8c..665c21bd0f4 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 d3e20730355..47e4191874f 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 29510bf1c84..465e0e18e09 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 0067adf7234..a1a519be073 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 b8a68a3dd50..8508ea746b8 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 e10c6b7eb27..0ecafa64728 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 05f53a3ddb5..c1e429e892e 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 3ce79cd05f0..48ec014350f 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 a059b1833c1..b7a95783926 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 8e771433ebe..5833c5fb7e8 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 4f545394fb1..d2b2601277b 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 d20954ed2d1..0b64b6b6861 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 282aa1dc513..dccccf43874 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 6253bd1c5f0..357b803bb41 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 22a65a555eb..aaaa6813b6c 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 a0f9b787977..44e3e7176f5 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 9a9d2aa60b4..db27ab49927 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 324ac0e8ecd..467bc4d50f5 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 935db635349..15d29ee2bda 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 5873ceadea6..f01c0b25bfc 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 fbe282c83de..7f0656e4626 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 49511c00653..9b4a358ae86 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 3cd8064c220..2786b42653e 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 b4ebc03fb60..639a87f5502 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 9714e44d5b6..edc3d371732 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 9c5227fd8aa..9e84b4df4fe 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 77f4b523a53..3f2ebf75a3e 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 2d3403cf71e..2d69b7707e1 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 c34fd0ab8cc..c786dcad4ba 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 a1bd0a9f36c..dee18585b1b 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 45f5866bc80..e6cb74792eb 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 e308e5e5a70..96799f76fe3 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 540de9b66a1..b0fa59971b3 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 c231cf73334..29883715242 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 0096da56297..f80d6ac8a83 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 2784ee0b6b0..f3e7c186636 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 5482f00b879..bb1a89377c5 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 c383c27b927..ce1679e6d74 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 a8aa347e9b0..ad0d73b28c7 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 7121f55c1ec..bfaba679bd7 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 46c6cc0f79e..70d55f90f0d 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 959b75c5f40..9c4e1e0203b 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 b767e4a3c18..d2f12825a2f 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 959b75c5f40..1393c8fa1cd 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 b767e4a3c18..a2053799a83 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 959b75c5f40..dbb4e15bf37 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 b767e4a3c18..c08347e95db 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 959b75c5f40..a6306a49b58 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 b767e4a3c18..3873b4fdafa 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 959b75c5f40..408b6b3a3f2 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 b767e4a3c18..9962d75d8b4 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 959b75c5f40..bbebb2f5a6f 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 b767e4a3c18..ee2f6b031d6 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 959b75c5f40..da271577b0a 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 b767e4a3c18..756ff85409d 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 959b75c5f40..d34de92e5e5 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 b767e4a3c18..d34de92e5e5 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 959b75c5f40..39a5d8f24a0 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 b767e4a3c18..39a5d8f24a0 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 959b75c5f40..47d32328765 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 b767e4a3c18..47d32328765 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 959b75c5f40..47d32328765 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 b767e4a3c18..47d32328765 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 959b75c5f40..aad0ec759aa 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 b767e4a3c18..aad0ec759aa 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 959b75c5f40..19a85f86cb4 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 b767e4a3c18..19a85f86cb4 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 959b75c5f40..39a5d8f24a0 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 b767e4a3c18..39a5d8f24a0 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 0586a671f8d..e2a216706e6 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 7f881b888d5..c787243c34c 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 11a1483cc28..d1b181b77cd 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 00000000000..0b633d05375 --- /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 39341314875..00000000000 --- 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 1d12893ad57..00000000000 --- 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 d7b9af05ad9..00000000000 --- 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 95c27521229..00000000000 --- 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 8797772ec61..00000000000 --- 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 b8243d7d08f..00000000000 --- 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 70d55f90f0d..00000000000 --- 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 00000000000..04263eb83a8 --- /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 00000000000..950de8b2af6 --- /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 0b633d05375..ba71c9c42bc 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 04263eb83a8..8d20b9ac795 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 3af57047d10..84b30c5ff3b 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 84b30c5ff3b..ee763d17bdc 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 ee763d17bdc..cc918639f8b 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 4e5fd602a26..f457dee28ef 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 b96664e1fff..d9fc3c309f1 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 49626cb4205..a7767d4c108 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 e185e3c2729..5b9c9c62276 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 d9fc3c309f1..8f7829d1337 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 a7767d4c108..4dd4f969088 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 8d20b9ac795..9b1ba69ab55 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 8f7829d1337..681cffb8b27 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 4dd4f969088..6658ddecfa8 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: