In ODPS v4.0, Service Level Agreements (SLAs) can be assigned to specific pricing plans by referencing named SLA packages. This modular design helps define different levels of availability, response time, and data refresh frequency — directly tied to the chosen pricing tier.
Even if the Pricing Plans are not used, an SLA can still be defined for the Product using the SLA object. In that case, using default option is mandatory. It acts as the fallback or baseline SLA profile.
| SLA Dimension | Description |
|---|---|
| latency | minimal amount of time before getting any response. |
| uptime | Uptime is a measure of system reliability, expressed as the percentage of time a machine, typically a computer, has been working and available. See more https://uptime.is/. |
| responseTime | amount of time to process external request. |
| errorRate | Maximum tolerated errors in data, percentage. |
| endOfSupport | The date at which your product will not have support anymore. |
| endOfLife | The date at which your product will not be available anymore. No support, no access. |
| updateFrequency | how often data is updates. |
| timeToDetect | How fast can you detect a problem? |
| timeToNotify | Once you see a problem, how much time do you need to notify your users? |
| timeToRepair | How long do you need to fix the issue once it is detected? |
| emailResponseTime | How long do you need to respond to email support requests? |
Declare the SLA packages under the SLA object using unique keys like default and premium.
objectiveTarget level to be achieved for the dimension (e.g., 99).unitMeasurement unit for the SLA objective. If "date" is used, format should be dd/mm/yyyy.
SLA:
declarative:
default:
name:
en: The Basic SLA
description:
en: The basic SLA package
dimensions:
- dimension: uptime
displaytitle:
en: Uptime
objective: 90
unit: percent
- dimension: responseTime
objective: 200
unit: milliseconds
- dimension: updateFrequency
objective: 30
unit: minutes
premium:
name:
en: The Premium SLA
description:
en: The Premium SLA package
dimensions:
- dimension: uptime
displaytitle:
en: Uptime
objective: 99
unit: percent
- dimension: responseTime
objective: 100
unit: milliseconds
- dimension: updateFrequency
objective: 5
unit: minutesIn your pricingPlans, use the $ref to point to the appropriate SLA package.
pricingPlans:
declarative:
en:
- name: Basic Reader
priceCurrency: USD
price: 0
billingDuration: month
unit: recurring
maxTransactionQuantity: 100
offering:
- Standard access to event metadata
- Up to 100 SQL queries per month
- Shared SLA (best-effort availability)
- No prioritization in case of peaks
notes: >-
Shadow pricing only for internal visibility. No actual billing applied.
paymentGateway:
$ref: '#/paymentGateways/default'
dataQuality:
$ref: '#/dataQuality/default'
SLA:
$ref: '#/SLA/default'
access:
$ref: '#/dataAccess/API'- Define SLA sets under the
SLAsection. - Reference them by name (e.g.,
default,premium) using$reffrom within each pricing plan. - This approach provides clarity, reuse, and machine-readability in data product metadata.