Get a paginated list of SLOs

GET /s/{spaceId}/api/observability/slos

You must have the read privileges for the SLOs feature in the Observability section of the Kibana feature privileges.

Headers

  • kbn-xsrf string Required

    Cross-site request forgery protection

Path parameters

  • spaceId string Required

    An identifier for the space. If /s/ and the identifier are omitted from the path, the default space is used.

Query parameters

  • kqlQuery string

    A valid kql query to filter the SLO with

  • page integer

    The page to use for pagination, must be greater or equal than 1

    Default value is 1.

  • perPage integer

    Number of SLOs returned by page

    Maximum value is 5000. Default value is 25.

  • sortBy string

    Sort by field

    Values are sli_value, status, error_budget_consumed, or error_budget_remaining. Default value is status.

  • Sort order

    Values are asc or desc. Default value is asc.

  • hideStale boolean

    Hide stale SLOs from the list as defined by stale SLO threshold in SLO settings

Responses

  • 200 application/json; Elastic-Api-Version=2023-10-31

    Successful request

    Hide response attributes Show response attributes object
    • page number
    • perPage number
    • results array[object]
      Hide results attributes Show results attributes object
      • budgetingMethod string Required

        The budgeting method to use when computing the rollup data.

        Values are occurrences or timeslices.

      • createdAt string Required

        The creation date

      • description string Required

        The description of the SLO.

      • enabled boolean Required

        Indicate if the SLO is enabled

      • groupBy string | array[string] Required

        optional group by field or fields to use to generate an SLO per distinct value

      • id string Required

        The identifier of the SLO.

      • indicator object Required

        One of:
      • instanceId string Required

        the value derived from the groupBy field, if present, otherwise '*'

      • name string Required

        The name of the SLO.

      • objective object Required

        Defines properties for the SLO objective

        Additional properties are allowed.

        Hide objective attributes Show objective attributes object
        • target number Required

          the target objective between 0 and 1 excluded

          Minimum value is 0, maximum value is 100.

        • the target objective for each slice when using a timeslices budgeting method

          Minimum value is 0, maximum value is 100.

        • the duration of each slice when using a timeslices budgeting method, as {duraton}{unit}

      • revision number Required

        The SLO revision

      • settings object Required

        Defines properties for SLO settings.

        Additional properties are allowed.

        Hide settings attributes Show settings attributes object
        • The interval between checks for changes in the source data. The minimum value is 1m and the maximum is 59m. The default value is 1 minute.

          Default value is 1m.

        • Start aggregating data from the time the SLO is created, instead of backfilling data from the beginning of the time window.

          Default value is false.

        • The time delay in minutes between the current time and the latest source data time. Increasing the value will delay any alerting. The default value is 1 minute. The minimum value is 1m and the maximum is 359m. It should always be greater then source index refresh interval.

          Default value is 1m.

        • The date field that is used to identify new documents in the source. It is strongly recommended to use a field that contains the ingest timestamp. If you use a different field, you might need to set the delay such that it accounts for data transmission delays. When unspecified, we use the indicator timestamp field.

      • summary object Required

        The SLO computed data

        Additional properties are allowed.

        Hide summary attributes Show summary attributes object
        • errorBudget object Required

          Additional properties are allowed.

          Hide errorBudget attributes Show errorBudget attributes object
          • consumed number Required

            The error budget consummed, as a percentage of the initial value.

          • initial number Required

            The initial error budget, as 1 - objective

          • isEstimated boolean Required

            Only for SLO defined with occurrences budgeting method and calendar aligned time window.

          • remaining number Required

            The error budget remaining, as a percentage of the initial value.

        • sliValue number Required
        • status string Required

          Values are NO_DATA, HEALTHY, DEGRADING, or VIOLATED.

      • tags array[string] Required

        List of tags

      • timeWindow object Required

        Defines properties for the SLO time window

        Additional properties are allowed.

        Hide timeWindow attributes Show timeWindow attributes object
        • duration string Required

          the duration formatted as {duration}{unit}. Accepted values for rolling: 7d, 30d, 90d. Accepted values for calendar aligned: 1w (weekly) or 1M (monthly)

        • type string Required

          Indicates weither the time window is a rolling or a calendar aligned time window.

          Values are rolling or calendarAligned.

      • updatedAt string Required

        The last update date

      • version number Required

        The internal SLO version

    • total number
  • 400 application/json; Elastic-Api-Version=2023-10-31

    Bad request

    Hide response attributes Show response attributes object
  • 401 application/json; Elastic-Api-Version=2023-10-31

    Unauthorized response

    Hide response attributes Show response attributes object
  • 403 application/json; Elastic-Api-Version=2023-10-31

    Unauthorized response

    Hide response attributes Show response attributes object
  • 404 application/json; Elastic-Api-Version=2023-10-31

    Not found response

    Hide response attributes Show response attributes object
GET /s/{spaceId}/api/observability/slos
curl \
 -X GET https://localhost:5601/s/default/api/observability/slos \
 -H "kbn-xsrf: string"
Response examples (200)
{
  "page": 1,
  "perPage": 25,
  "results": [
    {
      "budgetingMethod": "occurrences",
      "createdAt": "2023-01-12T10:03:19.000Z",
      "description": "My SLO description",
      "enabled": true,
      "groupBy": [
        [
          "service.name"
        ],
        "service.name",
        [
          "service.name",
          "service.environment"
        ]
      ],
      "id": "8853df00-ae2e-11ed-90af-09bb6422b258",
      "indicator": {
        "params": {
          "dataViewId": "03b80ab3-003d-498b-881c-3beedbaf1162",
          "filter": "field.environment : \"production\" and service.name : \"my-service\"",
          "good": "request.latency <= 150 and request.status_code : \"2xx\"",
          "index": "my-service-*",
          "timestampField": "timestamp",
          "total": "field.environment : \"production\" and service.name : \"my-service\""
        },
        "type": "sli.kql.custom"
      },
      "instanceId": "host-abcde",
      "name": "My Service SLO",
      "objective": {
        "target": 0.99,
        "timesliceTarget": 0.995,
        "timesliceWindow": "5m"
      },
      "revision": 2,
      "settings": {
        "frequency": "5m",
        "preventInitialBackfill": true,
        "syncDelay": "5m",
        "syncField": "event.ingested"
      },
      "summary": {
        "errorBudget": {
          "consumed": 0.8,
          "initial": 0.02,
          "isEstimated": true,
          "remaining": 0.2
        },
        "sliValue": 0.9836,
        "status": "HEALTHY"
      },
      "tags": [
        "string"
      ],
      "timeWindow": {
        "duration": "30d",
        "type": "rolling"
      },
      "updatedAt": "2023-01-12T10:03:19.000Z",
      "version": 2
    }
  ],
  "total": 34
}
Response examples (400)
{
  "error": "Bad Request",
  "message": "Invalid value 'foo' supplied to: [...]",
  "statusCode": 400
}
Response examples (401)
{
  "error": "Unauthorized",
  "message": "[security_exception\n\tRoot causes:\n\t\tsecurity_exception: unable to authenticate user [elastics] for REST request [/_security/_authenticate]]: unable to authenticate user [elastics] for REST request [/_security/_authenticate]",
  "statusCode": 401
}
Response examples (403)
{
  "error": "Unauthorized",
  "message": "[security_exception\n\tRoot causes:\n\t\tsecurity_exception: unable to authenticate user [elastics] for REST request [/_security/_authenticate]]: unable to authenticate user [elastics] for REST request [/_security/_authenticate]",
  "statusCode": 403
}
Response examples (404)
{
  "error": "Not Found",
  "message": "SLO [3749f390-03a3-11ee-8139-c7ff60a1692d] not found",
  "statusCode": 404
}