object sla.getsli(object parameters)
このメソッドを使用すると、サービスレベルアグリーメント (SLA) のサービスレベル指標 (SLI) データを計算できます。
このメソッドは、あらゆるタイプのユーザーが利用できます。このメソッドを呼び出す権限は、ユーザーロール設定で取り消すことができます。詳しくは、ユーザーの役割 をご覧ください。
(object) SLA ID、レポート期間、およびオプションでSLIを計算するサービスのIDを含むパラメーター。
| パラメーター | タイプ | 説明 |
|---|---|---|
| slaid | ID | 可用性情報を返すSLAのID。 パラメーターの動作: - 必須 |
| period_from | timestamp | SLIをレポートする開始タイムスタンプ(含む)。 可能な値: Unixタイムスタンプ |
| period_to | timestamp | SLIをレポートする終了タイムスタンプ(含む)。 可能な値: Unixタイムスタンプ |
| periods | integer | レポートする期間数。 可能な値: 1-100 |
| serviceids | ID/array | SLIを返すサービスのID。 |
次の表は、パラメータの組み合わせに基づく返される期間スライスの配置を示しています。
返される期間は、最初に利用可能な期間(SLAの有効日付に基づく)より前にはならず、現在の期間を超えることもありません。
| パラメータ | 返される期間 | ||
|---|---|---|---|
| period_from | period_to | periods | |
| - | - | - | 現在の期間を含む直近20期間。 |
| - | - | N | 直近N期間。 |
| - | 指定 | - | period_toの直前の20期間。 |
| - | 指定 | N | period_toの直前のN期間。 |
| 指定 | - | - | period_fromから始まる最初の20期間。 |
| 指定 | - | N | period_fromから始まる最初のN期間。 |
| 指定 | 指定 | - | 指定範囲内の最大100期間。 |
| 指定 | 指定 | N | 指定範囲内のN期間。 |
(object) 計算結果を返します。
| プロパティ | タイプ | 説明 |
|---|---|---|
| periods | array | 報告された期間のリスト。 各報告期間は、以下で構成されるオブジェクトとして表されます。 - period_from - (timestamp) 報告期間の開始タイムスタンプ(含む)。- period_to - (timestamp) 報告期間の終了タイムスタンプ(含まない)。期間は period_fromでソートされ、最も早い期間が最初に表示されます。 |
| serviceids | array | 報告された期間内のサービスIDのリスト。 リストのソート順は定義されていません。 serviceidsパラメータがsla.getsliメソッドに渡された場合でも同様です。 |
| sli | array | 各報告期間およびサービスごとのSLIデータ(二次元配列として)。periodsプロパティのインデックスがsliプロパティの第一次元として使用されます。serviceidsプロパティのインデックスがsliプロパティの第二次元として使用されます。 |
報告された各期間およびサービスごとに返されるSLIデータは以下の通りです。
| プロパティ | タイプ | 説明 |
|---|---|---|
| uptime | integer | スケジュールされた稼働時間中にサービスが_OK_状態であった時間(除外されたダウンタイムを除く)。 |
| downtime | integer | スケジュールされた稼働時間中にサービスが_OKでない_状態であった時間(除外されたダウンタイムを除く)。 |
| sli | float | 稼働時間とダウンタイムに基づくSLI(総稼働時間のパーセント)。 |
| error_budget | integer | SLIとSLOに基づくエラーバジェット(秒単位)。 |
| excluded_downtimes | array | このレポート期間中の除外されたダウンタイムの配列。 各オブジェクトは以下のパラメータを含みます。 - name - (string) 除外されたダウンタイムの名前。- period_from - (timestamp) 除外されたダウンタイムの開始タイムスタンプ(含む)。- period_to - (timestamp) 除外されたダウンタイムの終了タイムスタンプ(含まない)。除外されたダウンタイムは period_fromでソートされ、最も早い期間が最初に表示されます。 |
ID「1」のSLAにリンクされているサービスID「1」と「4」のSLIデータを取得します。 「1761861599」(2025年10月30日23:59:59 GMT+0200)までの単一期間のデータを取得します。 SLAのレポート期間が日次であるため、SLIデータは「1761775200」(2025年10月30日00:00:00 GMT+0200)から「1761861600」(2025年10月31日00:00:00 GMT+0200)まで取得されます。
{
"jsonrpc": "2.0",
"method": "sla.getsli",
"params": {
"slaid": "1",
"serviceids": [
1,
4
],
"periods": 1,
"period_to": 1761861599,
},
"id": 1
}レスポンス:
{
"jsonrpc": "2.0",
"result": {
"periods": [
{
"period_from": 1761775200,
"period_to": 1761861600
}
],
"serviceids": [
1,
4
],
"sli": [
[
{
"uptime": 43843,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": [
{
"name": "Maintenance OCT",
"period_from": 1761825600,
"period_to": 1761829200
}
]
},
{
"uptime": 32225,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": []
}
]
]
},
"id": 1
}IDが"5"のSLAにリンクされているIDが"50"、"60"、"70"のサービスのSLIデータを取得します。 "1635724800"(2021年11月1日 00:00:00 UTC)から始まる3期間分のデータを取得します。 SLAのレポート期間が月次であるため、以下の3か月分のSLIデータが取得されます。
{
"jsonrpc": "2.0",
"method": "sla.getsli",
"params": {
"slaid": "5",
"serviceids": [
50,
60,
70
],
"periods": 3,
"period_from": "1635724800"
},
"id": 1
}レスポンス:
{
"jsonrpc": "2.0",
"result": {
"periods": [
{
"period_from": 1635724800,
"period_to": 1638316800
},
{
"period_from": 1638316800,
"period_to": 1640995200
},
{
"period_from": 1640995200,
"period_to": 1643673600
}
],
"serviceids": [
50,
60,
70
],
"sli": [
[
{
"uptime": 1186212,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": [
{
"name": "Maintenance Nov 25 - Dec 01",
"period_from": 1637836212,
"period_to": 1638316800
}
]
},
{
"uptime": 1186212,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": [
{
"name": "Maintenance Nov 25 - Dec 01",
"period_from": 1637836212,
"period_to": 1638316800
}
]
},
{
"uptime": 1186212,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": [
{
"name": "Maintenance Nov 25 - Dec 01",
"period_from": 1637836212,
"period_to": 1638316800
}
]
}
],
[
{
"uptime": 1147548,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": [
{
"name": "Maintenance Dec 02 - Dec 10",
"period_from": 1638439200,
"period_to": 1639109652
}
]
},
{
"uptime": 1147548,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": [
{
"name": "Maintenance Dec 02 - Dec 10",
"period_from": 1638439200,
"period_to": 1639109652
}
]
},
{
"uptime": 1147548,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": [
{
"name": "Maintenance Dec 02 - Dec 10",
"period_from": 1638439200,
"period_to": 1639109652
}
]
}
],
[
{
"uptime": 1674000,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": []
},
{
"uptime": 1674000,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": []
},
{
"uptime": 1674000,
"downtime": 0,
"sli": 100,
"error_budget": 0,
"excluded_downtimes": []
}
]
]
},
"id": 1
}CSla::getSli() in ui/include/classes/api/services/CSla.php