sla.getsli

説明

object sla.getsli(object parameters)

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

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

パラメータ

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

パラメータ タイプ 説明
slaid ID 可用性情報を返すSLAのID

パラメータの動作:
- 必須
period_from timestamp SLIレポートの対象開始日(開始日を含む)

指定可能な値: timestamp。
period_to timestamp SLIレポートの対象終了日(終了日を含まない)

指定可能な値: timestamp。
periods 配列 レポートする期間の推奨期間

可能な値: 1~100
serviceids ID/配列 SLIを返すサービスのID

期間の分割

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

返される期間は、SLA の発効日に基づいて最初に利用可能な期間より前ではなく、現在の期間を超えません。

パラメータ 説明
period_from period_to periods
- - - 最後の 20 期間を返します。
- - specified periods パラメータで指定された最後の期間を返します。
- specified - 指定された period_to 日付より前の最後の 20 期間を返します。
- specified specified 指定された period_to 日付より前の、periods パラメータで指定された最後の期間を返します。
指定 - - 指定された period_from 日付から始まる最初の 20 期間を返します。
指定 - 指定 指定された period_from 日付から始まる、periods パラメータで指定された最初の期間を返します。
指定 指定 - 指定された日付範囲内で最大 100 期間を返します。
指定 指定 指定 指定された日付範囲内で、periods パラメータで指定された期間を返します。

戻り値

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

プロパティ タイプ 説明
periods 配列 レポート対象期間のリスト

各レポート期間は、以下の要素で構成されるオブジェクトとして表されます。
- period_from - レポート対象期間の開始日(タイムスタンプ)
- period_to - レポート対象期間の終了日(タイムスタンプ)

期間は period_from フィールドで昇順にソートされます。
serviceids 配列 レポート対象期間のサービスIDのリスト

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

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

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

SLI データ

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

プロパティ タイプ 説明
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"
           },
           "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