sla.getsli

説明

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データ

報告された各期間およびサービスごとに返される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でソートされ、最も早い期間が最初に表示されます。

日次SLAのSLI計算

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
}

月次SLAのSLI計算

IDが"5"のSLAにリンクされているIDが"50"、"60"、"70"のサービスのSLIデータを取得します。 "1635724800"(2021年11月1日 00:00:00 UTC)から始まる3期間分のデータを取得します。 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)まで

リクエスト:

{
    "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