sla.getsli

説明

object sla.getsli(object parameters)

このメソッドで、サービスレベルインジケーター(SLI)データを計算できます。

このメソッドはどのタイプのユーザーでも利用可能です。このメソッドを呼び出す権限は、ユーザーロール設定で取り消すことができます。詳しくはユーザーの役割を参照してください。

パラメータ

(object) SLIを計算するための、SLA ID,レポート期間,オプションでサービスのIDを含むパラメーター

パラメータ タイプ 説明
slaid
(必須)
string 可用性情報を返すサービスのID
period_from integer SLI報告開始日(指定日含む)

使用可能な値:タイムスタンプ
period_to integer SLI報告終了日(指定日含まない)

使用可能な値:タイムスタンプ
periods array 報告すべき望ましい期間数

使用可能な値:1-100
serviceids string/array SLIを返すサービスのID

期間の分割

以下は、パラメーターの組み合わせに基づいて返される period slices の配置を示しています。

パラメータ 説明
period_from period_to periods
- - - 過去 20 期間 (現在の期間を含む) で、SLA の発効日に基づいて利用可能な最初の期間を過ぎていないもの。
- - 指定 periods パラメータで指定された最後の期間。
- 指定 - 指定された日付より前の最後の 20 期間で、SLA の発効日に基づく最初の利用可能な期間を過ぎていないもの。
- 指定 指定 指定された日付より前の periods パラメーターで指定された最後の期間。
指定 - - 最初の 20 期間 (現在の期間を含む) であるが、現在の期間よりも前。
指定 - 指定 指定された日付から始まる periods パラメーターで指定された最初の期間。
指定 指定 - 指定された日付範囲内の期間のうち、100 を超えず、SLA の発効日に基づいて最初に利用可能な期間を過ぎていない期間。
指定 指定 指定 指定された日付範囲内の期間かつ、指定された期間数を超えず、SLA の発効日に基づいた最初の利用可能期間を過ぎていない

戻り値

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

プロパティ タイプ 説明
periods array 報告された期間のリスト

報告された各期間は、次で構成されるオブジェクトとして表されます。
- period_from - 報告された期間の開始日(タイムスタンプ)
- period_to - 終了報告された期間の日付(タイムスタンプ)

期間はperiod_fromフィールドの昇順で並べ替えられます。
serviceids array レポートされた期間のサービスIDのリスト。

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

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

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

SLI data

SLI data 報告された期間ごとに返され、サービスは次のもので構成されます。

プロパティ タイプ 説明
uptime integer スケジュールされた稼働時間中にサービスが_OK_状態だった時間から、除外されたダウンタイムを差し引いたもの。
downtime integer スケジュールされた稼働時間中にサービスが_not OK_状態だった時間から、除外されたダウンタイムを差し引いたもの。
sli float 稼働時間とダウンタイムに基づくSLI(総稼働時間のパーセンテージ)
error_budget integer SLIおよびSLOに基づくエラーバジェット(秒単位)
excluded_downtimes array このレポート期間で除外されたダウンタイムの配列。

各オブジェクトには、次のパラメータが含まれます。
- name - 除外されたダウンタイムの名前
- period_from - 開始日時(指定日含む)
- period_to - 除外されたダウンタイムの終了日時(指定日含まず)

除外されたダウンタイムは、period_fromフィールドの昇順で並べ替えられます。

SLIの計算

ID"5"のSLAにリンクされているID"50"、"60"、"70"のサービスのSLIデータを取得します。 2021年11月1日から3期間のデータを取得します。

リクエスト :

{
    "jsonrpc": "2.0",
    "method": "sla.getsli",
    "params": {
        "slaid": "5",
        "serviceids": [
            50,
            60,
            70
        ],
        "periods": 3,
        "period_from": "1635724800"
    },
    "auth": "038e1d7b1735c6a5436ee9eae095879e",
    "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": "Excluded Downtime - 1",
                            "period_from": 1637836212,
                            "period_to": 1638316800
                        }
                    ]
                },
                {
                    "uptime": 1186212,
                    "downtime": 0,
                    "sli": 100,
                    "error_budget": 0,
                    "excluded_downtimes": [
                        {
                            "name": "Excluded Downtime - 1",
                            "period_from": 1637836212,
                            "period_to": 1638316800
                        }
                    ]
                },
                {
                    "uptime": 1186212,
                    "downtime": 0,
                    "sli": 100,
                    "error_budget": 0,
                    "excluded_downtimes": [
                        {
                            "name": "Excluded Downtime - 1",
                            "period_from": 1637836212,
                            "period_to": 1638316800
                        }
                    ]
                }
            ],
            [
                {
                    "uptime": 1147548,
                    "downtime": 0,
                    "sli": 100,
                    "error_budget": 0,
                    "excluded_downtimes": [
                        {
                            "name": "Excluded Downtime - 1",
                            "period_from": 1638439200,
                            "period_to": 1639109652
                        }
                    ]
                },
                {
                    "uptime": 1147548,
                    "downtime": 0,
                    "sli": 100,
                    "error_budget": 0,
                    "excluded_downtimes": [
                        {
                            "name": "Excluded Downtime - 1",
                            "period_from": 1638439200,
                            "period_to": 1639109652
                        }
                    ]
                },
                {
                    "uptime": 1147548,
                    "downtime": 0,
                    "sli": 100,
                    "error_budget": 0,
                    "excluded_downtimes": [
                        {
                            "name": "Excluded Downtime - 1",
                            "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