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) 計算結果を返します。

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

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

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

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

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