Service level objectives API

You can use the Instana API to retrieve and configure key data points. Among other things, this API enables automatic reaction to service level objective (SLO) changes, further analysis of identified incidents, and reporting capabilities.

The Instana API is specified using the OpenAPI v3 format. For more information about the current specification, see GitHub API documentation.

Authentication and authorization

You can authenticate and authorize in the following ways:

Using API key

The Instana API authenticates requests by using an API key in the HTTP Authorization request header.

Example: The following example uses the REST API with curl to retrieve all the available metrics with possible aggregations with a GET call.

curl --request GET \
  --url https://instana.rocks/api/application-monitoring/catalog/metrics \
  --header 'authorization: apiToken xxxxxxxxxxxxxxxx'
 

How to obtain an API key

Complete the following steps to obtain an API key:

  1. Sign in to Instana UI
  2. From the navigation sidebar, go to the Settings > Security & Access tab. Under Access Control, select API Tokens, and then click New API Token.
  3. Complete the required fields and enable the required permissions.
  4. Click Save.
Note: The “Configuration of service level indicators” permission is required to be authorized for SLO API access.

Using Instana web session cookies

You can access all Instana APIs directly from a web browser after you have signed in to the Instana UI. Enter the endpoint URL in the browser address field and then press Enter. A GET request is sent to the Instana backend with the existing signed-in user session cookies.

Limitation: Since browsers can send only GET requests directly, other HTTP methods are not feasible unless supported through integration with third‑party extensions.

SLO APIs permission requirement

To access any SLO API using API token, the permission of Configuration of service level indicators is required to the related API token.

SLO configuration APIs

The SLO configuration API is to manage SLO configurations. SLO configuration payload is the description of Instana SLO entity. Instana processes these configurations to generate various metrics and reports after they are created. These configurations can be updated and deleted by this API. After the configuration is deleted, Instana does not process it anymore, and any related SLO artifacts are not accessible. The behavior of the Instana API and web interface is synchronized.

SLO configuration payload, actions and endpoint

The payload represents the JSON body content for the SLO configuration object. The GET, POST, DELETE, and PUT actions are used to fetch, create, remove, and update the SLO configuration. For more information on these elements and interactions, see the SLO Configurations API doc.

Examples of SLO configurations

Example 1: Application time-based latency

The following SLO targets a service quality of 96.3818% indicated by the mean latency under 341 ms. The error budget is calculated in minutes over a rolling time window of 7 days. It is being measured from the backend application point of view. This SLO is bound to the UTC timezone by default.

Payload:

{
  "name": "Cupcake Vending Machine performance aggregation over time",
  "target": 0.963818,
  "lastUpdated": 1690357470848,
  "entity": {
    "type": "application",
    "applicationId": "LsEOORPeR0Gnt_kntZbosw",
    "serviceId": null,
    "endpointId": null,
    "boundaryScope": "ALL",
    "includeInternal": false,
    "includeSynthetic": false,
    "tagFilterExpression": null
  },
  "indicator": {
    "type": "timeBased",
    "blueprint": "latency",
    "threshold": 341,
    "aggregation": "MEAN"
  },
  "timeWindow": {
    "type": "rolling",
    "duration": 7,
    "durationUnit": "day"
  },
  "tags": [
    "food",
    "snacks",
    "timeBased",
    "latency",
    "demo"
  ]
}
 
Example 2: Website event-based availability

The following SLO targets a service quality of 71.38% indicated by the ratio of successful vs erroneous HTTP request beacons. The error budget is calculated in individual events over a rolling time window of 7 days. It is measured from the user point of view. This SLO is configured to use the America/New_York timezone.

Payload:

{
  "name": "Cupcake Shop reliability by event count",
  "target": 0.7138,
  "lastUpdated": 1690357470042,
  "entity": {
    "type": "website",
    "websiteId": "h_TxI-AGSZqVd5tVKjDXKw",
    "beaconType": "httpRequest",
    "tagFilterExpression": null
  },
  "indicator": {
    "type": "eventBased",
    "blueprint": "availability",
    "threshold": 0
  },
  "timeWindow": {
    "type": "rolling",
    "duration": 7,
    "durationUnit": "day",
    "timezone": "America/New_York"
  },
  "tags": [
    "food",
    "snacks",
    "eventBased",
    "availability",
    "demo"
  ]
}
 

Example 3: Synthetic tests event-based availability

The following SLO targets a service quality of 96.99%, calculated from the ratio of non‑erroneous to erroneous synthetic test results. The error budget is calculated based on individual events over a rolling time window of 7 days. It is being measured from the backend application point of view. By default, this SLO is aligned with the UTC timezone.

Payload:

    {
      "name": "Cupcake Shop Synthetic Availability",
      "target": 0.9699,
      "lastUpdated": 1742587582774,
      "entity": {
        "type": "synthetic",
        "syntheticTestIds": [
          "lLW0jCW8mZRmdrEZ1cno"
        ],
        "tagFilterExpression": {
          "type": "EXPRESSION",
          "logicalOperator": "AND",
          "elements": []
        }
      },
      "indicator": {
        "type": "eventBased",
        "threshold": 0,
        "operator": null,
        "aggregation": null,
        "badEventsFilter": {
          "type": "TAG_FILTER",
          "name": "call.erroneous",
          "stringValue": null,
          "numberValue": null,
          "booleanValue": true,
          "floatValue": null,
          "key": null,
          "value": null,
          "operator": "EQUALS",
          "entity": "NOT_APPLICABLE"
        },
        "goodEventsFilter": {
          "type": "TAG_FILTER",
          "name": "call.erroneous",
          "stringValue": null,
          "numberValue": null,
          "booleanValue": false,
          "floatValue": null,
          "key": null,
          "value": null,
          "operator": "EQUALS",
          "entity": "NOT_APPLICABLE"
        },
        "blueprint": "availability"
      },
      "timeWindow": {
        "type": "rolling",
        "duration": 1,
        "durationUnit": "week"
      },
      "tags": []
    }
 

Example 4: Synthetic tests time-based traffic

The following SLO targets a service quality of 90% based on the the total traffic count of synthetic test results. The error budget is calculated in minutes over a fixed time window of 1 day. It is being measured from the SUM of all traffic in the time window. The SLO is bound to the Europe/Dublin timezone.

Payload:

    {
      "name": "Cupcake Shop Synthetic Traffic",
      "target": 0.9,
      "lastUpdated": 1736873398635,
      "entity": {
        "type": "synthetic",
        "syntheticTestIds": [
          "zOj9zRK2142Fjo6SNc4r",
          "0Ir0TqQzEECdc05jiHHu"
        ],
        "tagFilterExpression": {
          "type": "EXPRESSION",
          "logicalOperator": "AND",
          "elements": []
        }
      },
      "indicator": {
        "threshold": 1,
        "operator": ">=",
        "aggregation": "SUM",
        "trafficType": "all",
        "type": "timeBased",
        "blueprint": "traffic"
      },
      "timeWindow": {
        "type": "fixed",
        "duration": 1,
        "durationUnit": "day",
        "timezone": "Europe/Dublin",
        "startTimestamp": 1736830800000
      },
      "tags": []
    }
 
Example 5: Synthetic tests availability using tag filter based test selection

The following SLO targets a service quality of 99%, calculated from the ratio of nonerroneous to erroneous synthetic test results. Instead of specifying individual synthetic test IDs, this SLO dynamically selects synthetic tests by using a tag filter expression. In this example, all synthetic tests whose name starts with checkout are included in the SLO calculation. The error budget is calculated based on individual events over a fixed time window of 1 day. By default, this SLO is aligned with the UTC time zone.

Payload:

{
  "name": "Cupcake Shop Checkout Synthetic Availability",
  "target": 0.99,
  "lastUpdated": 1742587582774,
  "entity": {
    "type": "synthetic",
    "syntheticTestIds": null,
    "tagFilterExpression": {
      "key": null,
      "name": "synthetic.testName",
      "type": "TAG_FILTER",
      "value": "checkout",
      "entity": "NOT_APPLICABLE",
      "operator": "STARTS_WITH",
      "floatValue": null,
      "numberValue": null,
      "stringValue": "checkout",
      "booleanValue": null
    }
  },
  "indicator": {
    "type": "eventBased",
    "threshold": 0,
    "operator": null,
    "aggregation": null,
    "badEventsFilter": {
      "type": "TAG_FILTER",
      "name": "call.erroneous",
      "stringValue": null,
      "numberValue": null,
      "booleanValue": true,
      "floatValue": null,
      "key": null,
      "value": null,
      "operator": "EQUALS",
      "entity": "NOT_APPLICABLE"
    },
    "goodEventsFilter": {
      "type": "TAG_FILTER",
      "name": "call.erroneous",
      "stringValue": null,
      "numberValue": null,
      "booleanValue": false,
      "floatValue": null,
      "key": null,
      "value": null,
      "operator": "EQUALS",
      "entity": "NOT_APPLICABLE"
    },
    "blueprint": "availability"
  },
  "timeWindow": {
    "type": "fixed",
    "duration": 1,
    "durationUnit": "day"
  },
  "tags": []
}
 
Example 6: Synthetic tests time-based traffic using tag filter based test selection

The following SLO targets a service quality of 95% based on the total traffic count of synthetic test results. Instead of specifying individual synthetic test IDs, this SLO dynamically selects synthetic tests by using a tag filter expression. In this example, only synthetic tests that run from the location with the ID wfVYynQmKVY9LglFuC33 are included in the SLO calculation. The error budget is calculated in minutes over a fixed time window of 4 weeks. The measurement is based on the SUM of all synthetic traffic within the time window. The SLO is bound to the America/New_York time zone.

Payload:

{
  "name": "Cupcake Shop New York Synthetic Traffic",
  "target": 0.95,
  "lastUpdated": 1736873398635,
  "entity": {
    "type": "synthetic",
    "syntheticTestIds": null,
    "tagFilterExpression": {
      "key": null,
      "name": "synthetic.locationId",
      "type": "TAG_FILTER",
      "value": "wfVYynQmKVY9LglFuC33",
      "entity": "NOT_APPLICABLE",
      "operator": "EQUALS",
      "floatValue": null,
      "numberValue": null,
      "stringValue": "wfVYynQmKVY9LglFuC33",
      "booleanValue": null
    }
  },
  "indicator": {
    "threshold": 1,
    "operator": ">=",
    "aggregation": "SUM",
    "trafficType": "all",
    "type": "timeBased",
    "blueprint": "traffic"
  },
  "timeWindow": {
    "type": "fixed",
    "duration": 4,
    "durationUnit": "week",
    "timezone": "America/New_York",
    "startTimestamp": 1736830800000
  },
  "tags": []
}
 

Example 7: Infrastructure host CPU saturation (time-based)

The following SLO monitors CPU saturation on production hosts, targeting 99% availability with mean CPU system usage less than 80%. The error budget is calculated in minutes over a rolling 7-day window. The error budget uses the saturation blueprint with a time-based indicator to help ensure that hosts maintain healthy CPU levels.

Payload:

  {
  "name": "Production Host CPU Saturation",
  "target": 0.99,
  "entity": {
    "type": "infrastructure",
    "infraType": "host",
    "tagFilterExpression": {
      "type": "TAG_FILTER",
      "name": "host.name",
      "stringValue": "prod-web-01",
      "numberValue": null,
      "booleanValue": null,
      "floatValue": null,
      "key": null,
      "value": "prod-web-01",
      "operator": "EQUALS",
      "entity": "NOT_APPLICABLE"
    }
  },
  "indicator": {
    "type": "timeBased",
    "metricName": "cpu.sys",
    "threshold": 0.8,
    "operator": ">=",
    "aggregation": "MEAN",
    "blueprint": "saturation"
  },
  "timeWindow": {
    "type": "rolling",
    "duration": 7,
    "durationUnit": "day",
    "timezone": "UTC"
  },
  "tags": [
    "infrastructure",
    "host",
    "cpu",
    "saturation"
  ]
}
 

Example 8: Kubernetes cluster memory saturation (event-based)

The following SLO monitors memory saturation in a Kubernetes cluster by using an event-based indicator, targeting 95% availability. Events are classified as good when memory ratio is less than the threshold and bad when it meets or exceeds the threshold. The error budget is calculated for individual events over a rolling 30-day window by using the saturation blueprint.

Payload:

 {
  "name": "K8s Cluster Memory Saturation",
  "target": 0.95,
  "entity": {
    "type": "infrastructure",
    "infraType": "kubernetesCluster",
    "tagFilterExpression": {
      "type": "TAG_FILTER",
      "name": "kubernetes.cluster.name",
      "stringValue": "production-cluster",
      "numberValue": null,
      "booleanValue": null,
      "floatValue": null,
      "key": null,
      "value": "production-cluster",
      "operator": "EQUALS",
      "entity": "NOT_APPLICABLE"
    }
  },
  "indicator": {
    "type": "eventBased",
    "metricName": "limitCapacityMemoryRatio",
    "threshold": 0.75,
    "operator": ">=",
    "aggregation": "MEAN",
    "blueprint": "saturation"
  },
  "timeWindow": {
    "type": "rolling",
    "duration": 30,
    "durationUnit": "day",
    "timezone": "UTC"
  },
  "tags": [
    "infrastructure",
    "kubernetes",
    "memory",
    "saturation"
  ]
}

Example 9: AWS ECS container custom health metric (event-based)

The following SLO uses a custom indicator to monitor AWS ECS container health based on custom metrics, targeting 99% availability. Events are classified as good when container CPU usage is less than 70% and bad when it exceeds this threshold. This demonstrates the flexibility of custom indicators in supporting infrastructure monitoring tailored to specific business requirements.

Payload:

 {
  "name": "ECS Container Custom Health",
  "target": 0.99,
  "entity": {
    "type": "infrastructure",
    "infraType": "awsEcsContainer",
    "tagFilterExpression": {
      "type": "TAG_FILTER",
      "name": "aws.ecs.cluster.name",
      "stringValue": "production-ecs-cluster",
      "numberValue": null,
      "booleanValue": null,
      "floatValue": null,
      "key": null,
      "value": "production-ecs-cluster",
      "operator": "EQUALS",
      "entity": "NOT_APPLICABLE"
    }
  },
  "indicator": {
    "type": "eventBased",
    "goodEventsFilter": {
      "type": "TAG_FILTER",
      "name": "cpu.usage",
      "stringValue": null,
      "numberValue": 0,
      "booleanValue": null,
      "floatValue": 0.7,
      "key": null,
      "value": 0.7,
      "operator": "LESS_THAN",
      "entity": "NOT_APPLICABLE"
    },
    "badEventsFilter": {
      "type": "TAG_FILTER",
      "name": "cpu.usage",
      "stringValue": null,
      "numberValue": 0,
      "booleanValue": null,
      "floatValue": 0.7,
      "key": null,
      "value": 0.7,
      "operator": "GREATER_OR_EQUAL_THAN",
      "entity": "NOT_APPLICABLE"
    },
    "goodEventInfraMetric": "cpu.usage",
    "badEventInfraMetric": "cpu.usage",
    "blueprint": "custom",
    "operator": null,
    "threshold": 0,
    "aggregation": "MEAN"
  },
  "timeWindow": {
    "type": "rolling",
    "duration": 1,
    "durationUnit": "week",
    "timezone": "America/New_York"
  },
  "tags": [
    "infrastructure",
    "aws",
    "ecs",
    "custom"
  ]
}

Example 10: Application latency with calendar month time window

The following SLO targets a service quality of 99%, indicated by the mean latency less than 200 ms. The error budget is calculated in minutes over a fixed calendar-month time window. It is measured from the backend application's point of view. This SLO is bound to the America/New_York time zone. Calendar-month time windows are supported only for fixed time windows and are limited to a single-month duration. If created mid-month, the initial measurement period begins on the creation date and extends through the last day of that month; subsequent periods follow complete calendar months.

Payload:

{
  "name": "Payment Service Monthly Latency",
  "target": 0.99,
  "lastUpdated": 1737561600000,
  "entity": {
    "type": "application",
    "applicationId": "PaymentApp123456",
    "serviceId": null,
    "endpointId": null,
    "boundaryScope": "INBOUND",
    "includeInternal": false,
    "includeSynthetic": false,
    "tagFilterExpression": null
  },
  "indicator": {
    "type": "timeBased",
    "blueprint": "latency",
    "threshold": 200,
    "aggregation": "MEAN"
  },
  "timeWindow": {
    "type": "fixed",
    "duration": 1,
    "durationUnit": "calendar_month",
    "timezone": "America/New_York",
    "startTimestamp": 1737561600000
  },
  "tags": [
    "payment",
    "production",
    "monthly",
    "latency"
  ]
}

Basic APIs to create/get/update/delete SLO configurations

The following basic APIs can create, get, update and delete SLO configuration without UI interactions. The API document can be found at Instana GitHub.

Create an SLO configuration

This API call creates a unique new SLO configuration based on the JSON payload that is included in the command.

curl example:

echo -e ' \
{
  "name": "my SLO no 1",
  "target": 0.96,
  "lastUpdated": 1690357470848,
  "entity": {
    "type": "application",
    "applicationId": "LsEOORPeR0Gnt_kntZbosw",
    "serviceId": null,
    "endpointId": null,
    "boundaryScope": "ALL",
    "includeInternal": false,
    "includeSynthetic": false,
    "tagFilterExpression": null
  },
  "indicator": {
    "type": "timeBased",
    "blueprint": "latency",
    "threshold": 341,
    "aggregation": "MEAN"
  },
  "timeWindow": {
    "type": "rolling",
    "duration": 7,
    "durationUnit": "day",
    "timezone": "America/Chicago"
  },
  "tags": [
    "food",
    "snacks",
    "timeBased",
    "latency",
    "demo"
  ]
}
' | curl -X POST -H "Content-Type: application/json" -H 'authorization: apiToken XXXXXXXXXXXXXX' https://instana.rocks/api/settings/slo -d @-
 
GET SLO configuration BY ID

This API call returns a unique SLO configuration and the key attributes pairs for it. Requires knowledge of the ID attribute for the particular configuration.

curl example:

curl -H 'authorization: apiToken XXXXXXXXXXXXXX' https://instana.rocks/api/settings/slo/SLOsmbQLI8ORcuhF_L-QquFWQ
 
Update existing SLO configuration

Equivalent to UPDATE, it updates only attributes that are permitted to be updated, of an existing SLO configuration. Requires knowledge of the ID attribute for the particular configuration.

The following fields can be updated (all other fields are not allowed):

  • name
  • target
  • timeWindow.type
  • timeWindow.duration
  • timeWindow.durationUnit
  • timeWindow.timezone
  • tags

curl example:

echo -e ' \
{
      "name": "My SLO no1 updated",
      "target": 90.1,
      "entity": {
        "type": "application",
        "applicationId": "6uWKK5izTFqo0bdioIr1PA",
        "serviceId": null,
        "endpointId": null,
        "boundaryScope": "ALL",
        "includeInternal": false,
        "includeSynthetic": false,
        "tagFilterExpression": {
          "type": "EXPRESSION",
          "logicalOperator": "AND",
          "elements": []
        }
      },
      "indicator": {
        "type": "timeBased",
        "threshold": 1234,
        "aggregation": "P95",
        "blueprint": "latency"
      },
      "timeWindow": {
        "type": "fixed",
        "duration": 1,
        "durationType": "day",
        "timezone": "Europe/Berlin",
        "startTimestamp": 1681311907374
      },
        "tags": ["tagA", "tagB"]
 }
' | curl -X PUT -H "Content-Type: application/json" -H 'authorization: apiToken XXXXXXXXXXXXXX' https://instana.rocks/api/settings/slo/SLOsmbQLI8ORcuhF_L-QquFWQ
 
GET all SLO configurations

This API call returns all the SLO configurations and the key attributes pairs for each.

curl example:

curl -H 'authorization: apiToken XXXXXXXXXXXXXX' https://instana.rocks/api/settings/slo
 
GET SLO configuration TAGS

This API call returns ALL existing SLO configuration TAGS.

curl example:

curl -H 'authorization: apiToken XXXXXXXXXXXXXX' https://instana.rocks/api/settings/slo/tags
 
DELETE SLO configuration

This API call removes an existing SLO configuration that is uniquely identified by its ID.

curl example:

curl -X DELETE -H 'authorization: apiToken XXXXXXXXXXXXXX' https://instana.rocks/api/settings/slo/SLOsmbQLI8ORcuhF_L-QquFWQ

 

Service level report API

The SLO Report REST API returns all metrics and charts in one single response according to the provided configuration ID and time window.

The following is an example of using the SLO report API to fetch a report between 2025-03-31 13:00 to 16:00:

curl example:

curl -H 'authorization: apiToken XXXXXXXXXXXXXX' https://instana.rocks/api/slo/report/SLO99DvvwekR3G0VDw-1m2KtA?to=1743451200000&from=1743444000000
 

Example response:

{
  "sli": 0.9895833333333334,
  "slo": 0.99,
  "totalErrorBudget": 14,
  "errorBudgetRemaining": -1,
  "errorBudgetSpent": 15,
  "errorBurnRate": 1,
  "fromTimestamp": 1743444000000,
  "toTimestamp": 1743451200000,
  "violationDistribution": {
    "0": 1,
    "1": 1,
    "2": 1
  },
  "errorChart": {
    "0": 0,
    "1": 0,
    "2": 0
  },
  "errorAccumulationChart": {
    "0": 7,
    "1": 7,
    "2": 7
  },
  "errorBudgetRemainChart": {
    "0": 7,
    "1": 7,
    "2": 7
  },
  "errorBurnRateChart": {
    "0": 0,
    "1": 0,
    "2": 0
  }
}
}
 

SLO Smart Alerts API

SLO Smart Alerts can be managed by Service levels Alert Configuration APIs. Similar to other Smart Alert APIs, this collection of APIs can read, create, update, delete, enable, disable, version and revise SLO alerts.

Here is an example of creating a SLO error budget burn Smart Alert:

  • Request:
echo -e ' \
{
  "alertChannelIds": [],
  "customPayloadFields": [],
  "description": "Consumed >= 80% of the error budget.",
  "name": "Remaining error budget is low",
  "rule": {
    "alertType": "ERROR_BUDGET",
    "metric": "BURNED_PERCENTAGE"
  },
  "severity": 5,
  "sloIds": [
    "SLO2XfFi3h7TiWk56MRbyiAOA",
    "SLOlVgz62GhQO6x0I-qUJnwZg"
  ],
  "threshold": {
    "type": "staticThreshold",
    "value": 0.8,
    "operator": ">=",
    "lastUpdated": 1743534460472
  },
  "timeThreshold": {
    "expiry": 300000,
    "timeWindow": 900000
  },
  "triggering": true
}
' | curl -X PUT -H "Content-Type: application/json" -H 'authorization: apiToken XXXXXXXXXXXXXX' https://instana.rocks/api/events/settings/global-alert-configs/service-levels
 
  • Response:
{
    "name": "Remaining error budget is low",
    "description": "Consumed >= 80% of the error budget.",
    "severity": 5,
    "burnRateTimeWindows": null,
    "triggering": true,
    "rule": {
        "alertType": "ERROR_BUDGET",
        "metric": "BURNED_PERCENTAGE"
    },
    "threshold": {
        "type": "staticThreshold",
        "operator": ">=",
        "value": 0.8,
        "lastUpdated": 1743534460472
    },
    "sloIds": [
        "SLO2XfFi3h7TiWk56MRbyiAOA",
        "SLOlVgz62GhQO6x0I-qUJnwZg"
    ],
    "alertChannelIds": [],
    "timeThreshold": {
        "expiry": 300000,
        "timeWindow": 900000
    },
    "customPayloadFields": [],
    "id": "o-xuzP6yT1u5UZNthAx6Rg",
    "created": 1743534461234,
    "initialCreated": 1743534461234,
    "readOnly": false,
    "enabled": true
}
 

Legacy and Lite SLO API

Manage Legacy and Lite SLIs through API

Legacy and Lite SLOs were implemented differently from the preceding SLO. The service level indicator (SLI) is the essential configuration. The SLO is part of the custom dashboard setting to display service level outcomes according to the business requirements.

  • SLI Configuration API provides endpoints to create, read, update, and delete SLI configurations for the legacy and Lite SLIs configurations.
  • Custom dashboard API are used to manage custom dashboard and SLO widgets.

As an example, the following curl command can be used to create a time-based SLI named My First SLI for an application with the ID appId that has a service with the ID serviceId and is limited to calls where the endpoint-id equals endpointId. The SLI is aggregated for the 90th percentile of the latency metric and a threshold value of 25 ms.

curl --location --request POST "{{base}}/api/settings/v2/sli" \
  --header "Authorization: apiToken {{apiToken}}" \
  --header "Content-Type: application/json" \
  --data '{
    "sliName": "My first SLI",
    "metricConfiguration": {
        "metricName": "latency",
        "metricAggregation": "P90",
        "threshold": 25
    },
    "sliEntity": {
        "sliType": "application",
        "applicationId": "appId",
        "serviceId": "serviceId",
        "endpointId": "endpointId",
        "boundaryScope": "ALL"
    }
  }'
 

Legacy and Lite SLI reports API

Similar to the SLO report API, SLI Report can be invoked to return Legacy and Lite SLI reports. Different from the SLO report API, the SLO target need to be provided in the request.

Here is an example:

  • Request
https://instana.rocks/api/sli/report/Ca_h3OGvT3iu5Kt6LVsJ7g?slo=0.9&to=1743451200000&from=1743444000000
 
  • Response
{
  "sli": 0.9166666666666666,
  "slo": 0.9,
  "totalErrorBudget": 12,
  "errorBudgetRemaining": 2,
  "fromTimestamp": 1743444000000,
  "toTimestamp": 1743451200000,
  "violationDistribution": {
    "0": 1,
    "1": 1,
    "2": 1,
    "3": 1,
    "4": 1,
    "5": 1,
    "6": 1,
 ... ...
    "99": 1,
    "100": 0
  }
}