Nobl9 SLO Status API 2.0 (2.0.0)
While we encourage transitioning to version 2.0, please note that the version 1.0 will remain supported for the foreseeable future.
With Nobl9 SLO Status API, you can easily access the most up-to-date metrics for any SLO you need.
This gives you the ability to use your SLO data in a variety of automated tools (CI/CD pipelines) or applications (external dashboards).
Leveraging SLO Status API can save you time and help streamline your workflow, giving you more time to focus on other important tasks.
Rate Limits for SLO Status API
All requests to the endpoint/api/v1/slos
are rate limited. An organization can make up to 10 requests per seconds. The API returns the 429
HTTP status code when this limit is exceeded.
Generate access token
To generate access token, you must provide Authorization header with the Basic
scheme.
The access token consists of your Client ID and Client Secret in the following format: clientId:clientSecret
.
Rate Limits for access token
All requests to the endpoint /api/accessToken
are rate limited. An organization can make 1 request per 3 seconds.
The API returns the 429 HTTP
status code when this limit is exceeded.
Your token will be valid for 1 hour. Minimize the usage of this endpoint and reuse the token until it expires.
We recommend downloading your token once and reusing it in your CI/CD pipeline. Generating multiple tokens may exceed your rate limits.
Authorizations:
header Parameters
Organization required | string ID of your organization. |
Responses
Request samples
- cURL
curl -X \ POST https://app.nobl9.com/api/accessToken -H 'Accept: application/json; version=v1alpha' \ -H 'Organization: nobl9-dev' \ -H 'Authorization: Basic ${encoded_access_keys}'
Response samples
- 200
{- "access_token": "string"
}
List SLOs
Return a SLO list for a specific organization
Authorizations:
query Parameters
limit | integer Specifies the number of returned results (maximum of 500 items). |
cursor | string Specifies the pagination cursor for the next page of results. You can get it through the |
header Parameters
Organization required | string ID of your organization. |
Responses
Response samples
- 200
{- "data": [
- {
- "name": "sample-latency-slo",
- "displayName": "Sample latency SLO",
- "description": "This is a sample latency SLO",
- "project": {
- "name": "sample-project",
- "displayName": "Sample project",
- "labels": {
- "type": [
- "service"
], - "team": [
- "foundations",
- "io"
]
}
}, - "service": {
- "name": "sample-service",
- "displayName": "Sample service",
- "labels": {
- "type": [
- "service"
], - "team": [
- "foundations",
- "io"
]
}
}, - "objectives": [
- {
- "name": "objective-1",
- "displayName": "Good",
- "target": 0.5,
- "burnRate": 0,
- "errorBudgetRemaining": 14397.305873435587,
- "errorBudgetRemainingPercentage": 0.5951267308794467,
- "reliability": 0.1888888888888888,
- "sliType": "Threshold",
- "counts": {
- "total": 59,
- "good": 1
}
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "composite": {
- "target": 0.9,
- "burnRate": 0,
- "errorBudgetRemaining": 14397.305873435587,
- "errorBudgetRemainingPercentage": 0.5951267308794467,
- "reliability": 0.1888888888888888,
- "burnRateCondition": {
- "value": 0.1,
- "operator": "gt"
}
}, - "labels": {
- "type": [
- "service"
], - "team": [
- "foundations",
- "io"
]
}, - "annotations": {
- "internal": "true",
- "registry": "docker.io"
}, - "budgetingMethod": "Occurrences"
}
], - "links": {
- "self": "string",
- "next": "string"
}
}
Find SLO by name
Returns a single SLO
Authorizations:
path Parameters
sloName required | string <= 63 characters Name of the SLO to return. |
query Parameters
fields | string Example: fields=counts Use to request for additional metrics, such as aggregated good and total counts. |
from | string <date-time> Example: from=2024-01-25T23:00:00Z Specifies the start date and time for the data range (in UTC). Required when using the |
to | string <date-time> Example: to=2024-01-25T23:59:00Z Specifies the end date and time for the data range (in UTC). Required when using the |
header Parameters
Organization required | string ID of your organization. |
project required | string Filters results by a specific project. |
Responses
Response samples
- 200
{- "name": "sample-latency-slo",
- "displayName": "Sample latency SLO",
- "description": "This is a sample latency SLO",
- "project": {
- "name": "sample-project",
- "displayName": "Sample project",
- "labels": {
- "type": [
- "service"
], - "team": [
- "foundations",
- "io"
]
}
}, - "service": {
- "name": "sample-service",
- "displayName": "Sample service",
- "labels": {
- "type": [
- "service"
], - "team": [
- "foundations",
- "io"
]
}
}, - "objectives": [
- {
- "name": "objective-1",
- "displayName": "Good",
- "target": 0.5,
- "burnRate": 0,
- "errorBudgetRemaining": 14397.305873435587,
- "errorBudgetRemainingPercentage": 0.5951267308794467,
- "reliability": 0.1888888888888888,
- "sliType": "Threshold",
- "counts": {
- "total": 59,
- "good": 1
}
}
], - "createdAt": "2019-08-24T14:15:22Z",
- "composite": {
- "target": 0.9,
- "burnRate": 0,
- "errorBudgetRemaining": 14397.305873435587,
- "errorBudgetRemainingPercentage": 0.5951267308794467,
- "reliability": 0.1888888888888888,
- "burnRateCondition": {
- "value": 0.1,
- "operator": "gt"
}
}, - "labels": {
- "type": [
- "service"
], - "team": [
- "foundations",
- "io"
]
}, - "annotations": {
- "internal": "true",
- "registry": "docker.io"
}, - "budgetingMethod": "Occurrences"
}