[comment]: # ({d1387fc4-f9178426})
# sla.getsli

[comment]: # ({/d1387fc4-f9178426})

[comment]: # ({3fde2eb3-531f7cc6})
### 説明

`object sla.getsli(object parameters)`

このメソッドを使用すると、サービスレベルアグリーメント (SLA) のサービスレベル指標 (SLI) データを計算できます。

::: noteclassic
このメソッドは、あらゆるタイプのユーザーが利用できます。このメソッドを呼び出す権限は、ユーザーロール設定で取り消すことができます。詳しくは、[ユーザーの役割](/manual/web_interface/frontend_sections/users/user_roles) をご覧ください。
:::

[comment]: # ({/3fde2eb3-531f7cc6})

[comment]: # ({880cf558-bcbf1cf2})
### パラメータ

`(object)` SLA ID、レポート期間、およびオプションでSLIの計算対象となるサービスのIDを含むパラメータ。

|パラメータ|[型](/manual/api/reference_commentary#data-types)|説明|
|--|--|------|
|slaid|ID|可用性情報を返すSLAのID。<br><br>[パラメータの動作](/manual/api/reference_commentary#parameter-behavior):<br>- *必須*|
|period\_from|timestamp|SLIをレポートする開始タイムスタンプ（この値を含む）。<br><br>指定可能な値: Unixタイムスタンプ。|
|period\_to|timestamp|SLIをレポートする終了タイムスタンプ（この値を含む）。<br><br>指定可能な値: Unixタイムスタンプ。|
|periods|integer|レポートする期間の数。<br><br>指定可能な値: 1-100|
|serviceids|ID/array|SLIを返すサービスのID。|

[comment]: # ({/880cf558-bcbf1cf2})

[comment]: # ({d1b5c39b-31bc72e4})
#### 期間の分割

次の表は、パラメータの組み合わせに基づく返される期間スライスの配置を示しています。

::: noteclassic
返される期間は、最初に利用可能な期間（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期間。|

[comment]: # ({/d1b5c39b-31bc72e4})

[comment]: # ({26e4fdd7-b46f1257})
### 戻り値

`(object)` 計算結果を返します。

|プロパティ|[Type](/manual/api/reference_commentary#data-types)|説明|
|--|--|------|
|periods|array|報告対象期間のリスト。<br><br>各報告対象期間は、以下で構成されるオブジェクトとして表されます。<br>- `period_from` - `(timestamp)` 報告対象期間の開始タイムスタンプ（含む）。<br>- `period_to` - `(timestamp)` 報告対象期間の終了タイムスタンプ（含まない）。<br><br>期間は `period_from` でソートされ、最も早い期間が先頭に表示されます。|
|serviceids|array|報告対象期間内のサービスIDのリスト。<br><br>リストの並び順は定義されていません。`serviceids` パラメータが `sla.getsli` メソッドに渡された場合でも同様です。|
|sli|array|各報告対象期間およびサービスのSLIデータ（**二次元配列**として）。<br><br>`periods` プロパティのインデックスは、`sli` プロパティの**第1**次元として使用されます。<br><br>`serviceids` プロパティのインデックスは、`sli` プロパティの**第2**次元として使用されます。|

[comment]: # ({/26e4fdd7-b46f1257})

[comment]: # ({1b312b3d-ba0b5441})
#### SLIデータ

報告された各期間およびサービスについて返されるSLIデータは、以下で構成されます。

|Property|[Type](/manual/api/reference_commentary#data-types)|Description|
|--|--|------|
|uptime|integer|スケジュールされた稼働時間中にサービスが _OK_ 状態であった時間から、除外されたダウンタイムを差し引いた時間。|
|downtime|integer|スケジュールされた稼働時間中にサービスが _not OK_ 状態であった時間から、除外されたダウンタイムを差し引いた時間。|
|sli|float|稼働時間と停止時間に基づくSLI（総稼働時間に対する割合）。|
|error\_budget|integer|SLIおよびSLOに基づくエラーバジェット（秒単位）。|
|excluded\_downtimes|array|この報告期間における除外されたダウンタイムの配列。<br><br>各オブジェクトには以下のパラメータが含まれます。<br>- `name` - `(string)` 除外されたダウンタイムの名前。<br>- `period_from` - `(timestamp)` 除外されたダウンタイムの開始タイムスタンプ（この時刻を含む）。<br>- `period_to` - `(timestamp)` 除外されたダウンタイムの終了タイムスタンプ（この時刻を含まない）。<br><br>除外されたダウンタイムは `period_from` でソートされ、最も早い期間が先に表示されます。|

[comment]: # ({/1b312b3d-ba0b5441})

[comment]: # ({b41637d2-b41637d2})
### 例

[comment]: # ({/b41637d2-b41637d2})

[comment]: # ({b67c0708-610cd288})
#### 日次SLAのSLI計算

ID「1」のSLAにリンクされているサービスID「1」と「4」のSLIデータを取得します。
「1761861599」（2025年10月30日23:59:59 GMT+0200）までの単一期間のデータを取得します。
SLAの[レポート期間](/manual/it_services/sla)が日次であるため、SLIデータは「1761775200」（2025年10月30日00:00:00 GMT+0200）から「1761861600」（2025年10月31日00:00:00 GMT+0200）まで取得されます。

[リクエスト](/manual/api#performing-requests):

```json
{
    "jsonrpc": "2.0",
    "method": "sla.getsli",
    "params": {
        "slaid": "1",
        "serviceids": [
            1,
            4
        ],
        "periods": 1,
        "period_to": 1761861599,
    },
    "id": 1
}
```

レスポンス:

```json
{
    "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
}
```

[comment]: # ({/b67c0708-610cd288})

[comment]: # ({d21e6bab-c6c818e1})
#### 月次SLAのSLI計算

IDが"5"のSLAにリンクされているIDが"50"、"60"、"70"のサービスのSLIデータを取得します。
"1635724800"（2021年11月1日 00:00:00 UTC）から始まる3期間分のデータを取得します。
SLAの[レポート期間](/manual/it_services/sla)が月次であるため、以下の3か月分のSLIデータが取得されます。

-   "1635724800"（2021年11月1日 00:00:00 UTC）から"1638316800"（2021年12月1日 00:00:00 UTC）まで
-   "1638316800"（2021年12月1日 00:00:00 UTC）から"1640995200"（2022年1月1日 00:00:00 UTC）まで
-   "1640995200"（2022年1月1日 00:00:00 UTC）から"1643673600"（2022年2月1日 00:00:00 UTC）まで

[リクエスト](/manual/api#performing-requests):

```json
{
    "jsonrpc": "2.0",
    "method": "sla.getsli",
    "params": {
        "slaid": "5",
        "serviceids": [
            50,
            60,
            70
        ],
        "periods": 3,
        "period_from": 1635724800
    },
    "id": 1
}
```

レスポンス:

```json
{
    "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
}
```

[comment]: # ({/d21e6bab-c6c818e1})

[comment]: # ({13a91d62-a5414084})
### ソース

CSla::getSli() in *ui/include/classes/api/services/CSla.php*

[comment]: # ({/13a91d62-a5414084})
