sla.getsli

説明

object sla.getsli(object parameters)

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

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

パラメータ

(object) SLA ID、レポート期間、および必要に応じてSLIの計算対象となるサービスのIDを含むパラメータです。

パラメータ Type 説明
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) 計算結果を返します。

プロパティ Type 説明
periods array 報告対象期間の一覧。

各報告対象期間は、以下で構成されるオブジェクトとして表されます。
- period_from - (timestamp) 報告対象期間の開始タイムスタンプ(含む)。
- period_to - (timestamp) 報告対象期間の終了タイムスタンプ(含まない)。

期間は period_from でソートされ、最も早い期間が先頭に表示されます。
serviceids array 報告対象期間内のサービスIDの一覧。

一覧の並び順は定義されていません。sla.getsli メソッドに serviceids パラメータが渡された場合でも同様です。
sli array 各報告対象期間およびサービスのSLIデータ(二次元配列として)。

periods プロパティのインデックスが、sli プロパティの第1次元として使用されます。

serviceids プロパティのインデックスが、sli プロパティの第2次元として使用されます。

SLIデータ

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

プロパティ Type 説明
uptime integer スケジュールされた稼働時間内において、除外されたダウンタイムを差し引いた後に、サービスが OK 状態であった時間。
downtime integer スケジュールされた稼働時間内において、除外されたダウンタイムを差し引いた後に、サービスが not 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月01日 00:00:00 UTC)から開始する3期間分のデータを取得します。
SLAのレポート期間は月次であるため、SLIデータは次の3か月分について取得されます。

  • 「1635724800」(2021年11月01日 00:00:00 UTC)から「1638316800」(2021年12月01日 00:00:00 UTC)まで
  • 「1638316800」(2021年12月01日 00:00:00 UTC)から「1640995200」(2022年01月01日 00:00:00 UTC)まで
  • 「1640995200」(2022年01月01日 00:00:00 UTC)から「1643673600」(2022年02月01日 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