SLO (サービスレベル目標) とは、顧客の成功を最大限にするために、アクティビティ、機能、プロセスごとに達成すべき合意された目標です。SLO はサービスのパフォーマンスや健全性を表します。SLO ウィジェットは、既存の SLO のステータス、予算、残りのエラーバジェットを可視化します。ウィジェット内のタイムウィンドウに基づいてグループを並べ替えることができ、SLO のすべての基礎グループを表示します。このウィジェットを使用して、最も重要な SLO 情報を含む意味のあるダッシュボードを作成します。

  • ウィジェットですべての SLO グループを直接表示します: ウィジェットは SLO グループに関連する重要な情報を提供するため、多くのグループを含む SLO に役立ちます。
  • ウィジェットで SLO グループを並べ替える順序を設定します: すべての SLO タイプについて、ウィジェットの利用可能なタイムウィンドウに基づいてグループを並べ替えます。異なる期間で最もパフォーマンスの良い SLO グループと悪い SLO グループを迅速に特定します。
  • SLO のデータが欠落している期間を簡単に特定できます: すべての SLO タイプについて、SLO ウィジェットはデータが欠落している期間を「-」で表示します。ウィンドウ全体でデータが欠落している場合、そのタイムウィンドウには「-」が表示されます。

セットアップ

SLO ウィジェットを使用して、ダッシュボード上でサービスレベル目標 (SLO) を視覚化します。

メトリクスベースの SLO サマリーウィジェットグラフエディタ

構成

  1. ドロップダウンメニューから SLO を選択します。
  2. メトリクスベースおよび Time Slice SLO の場合: タグでクエリをフィルタリングし、テンプレート変数を活用して動的に結果をスコープすることができます。
    • テンプレート変数を活用するには、filter by フィールドを使用して、ウィジェットが表示する SLO ステータスをスコープします。たとえば、filter by $env は、ダッシュボードで env テンプレート変数に選択したすべての値に SLO クエリをスコープします。
    • タグが元の SLO 構成に含まれていない場合でも、SLO メトリクスクエリに追加のスコープとコンテキストを追加します。例えば、元の SLO クエリが sum:trace.flask.request.hits{*} by {resource_name}.as_count() で、ウィジェットで env:prod でフィルターした場合、データは prod 環境からのもののみにスコープされます。
  3. タイムウィンドウは 3 つまで設定できます。
  4. 表示設定を選択します。

オプション

タイムウィンドウを設定する

タイムウィンドウは以下から 3 つまで選択できます。

  • Rolling time windows: 7 日、30 日、90 日
  • Calendar time windows: 週から日、前の週、月から日、前の月
  • Global time: このオプションにより、任意の期間にわたって SLO のステータスとエラーバジェットを表示できます。モニターベースの SLO では、最大 3 か月の履歴情報を表示できます。 Time Slice およびメトリクスベースの SLO の場合、サポートされる履歴ビューはアカウントのメトリクス保持期間に一致します (デフォルトでは 15 か月) 。

: エラーバジェットを表示し、Global time SLO ステータス値を緑または赤に色分けするには、SLO ターゲットを指定する必要があります。SLO 入力ターゲットが指定されていない場合、SLO ステータスのみが表示され、フォントの色はグレーのままです。

表示設定

Show error budget オプションを切り替えて、残りのエラーバジェットを表示するか非表示にするかを選択します。

複数のグループを持つ SLO や複数のモニターを持つモニターベースの SLO を可視化している場合、View mode を選択します。

  • グループを持つ SLO (グループを持つメトリクスベースまたは Time Slice の SLO、または単一モニターをグループに分割したモニターベースの SLO) には、以下の 3 つの表示モードがあります。

    • Overall: 全体の SLO ステータスのパーセンテージとターゲットを表示します
    • Groups: 各グループのステータス割合を表形式で表示します
    • Both: 総合 SLO ステータスの割合と目標、各グループのステータス割合表の両方を表示します
  • 複数モニターでモニターベースの SLO を構成している場合は、以下の 3 つのビューモードが利用可能です。

    • Overall: 全体の SLO ステータスのパーセンテージとターゲットを表示します
    • Monitors: 各モニターのステータス割合を表形式で表示します
    • Both: 総合 SLO ステータスの割合と目標、各モニターのステータス割合表の両方を表示します

View modeGroupsMonitors、または Both に設定した場合

  • デフォルトでは、グループは最小のタイムウィンドウでステータスの昇順にソートされます。ダッシュボードにウィジェットを追加した後、ウィジェット UI から構成されたタイムウィンドウのステータスでソートできます。
  • ウィジェットには以下が表示されます。
    • メトリクスベースおよび Time Slice の SLO の場合、SLO のすべての基礎グループが表示されます。
    • 複数のモニターを持つモニターベースの SLO の場合、SLO のすべての基礎モニターが表示されます。
    • 単一モニターベースの SLO でグループがある場合、SLO で特定のグループが選択されていれば最大 20 グループが表示されます。特定のグループが選択されていない場合、SLO のすべての基礎グループが表示されます。

: グループがあるモニターベースの SLO では、最大 5,000 グループを含む SLO に対してすべてのグループを表示できます。5,000 を超えるグループを含む SLO の場合、SLO はすべてのグループに基づいて計算されますが、UI にはグループは表示されません。

API

このウィジェットは Dashboards API で使用できます。ウィジェット JSON スキーマ定義については、以下の表を参照してください。

Expand All

フィールド

種類

説明

additional_query_filters

string

Additional filters applied to the SLO query.

global_time_target

string

Defined global time target.

show_error_budget

boolean

Defined error budget.

slo_id

string

ID of the SLO displayed.

time_windows

[string]

Times being monitored.

title

string

Title of the widget.

title_align

enum

How to align the text on the widget. Allowed enum values: center,left,right

title_size

string

Size of the title.

type [required]

enum

Type of the SLO widget. Allowed enum values: slo

default: slo

view_mode

enum

Define how you want the SLO to be displayed. Allowed enum values: overall,component,both

view_type [required]

string

Type of view displayed by the widget.

default: detail

{
  "additional_query_filters": "string",
  "global_time_target": "string",
  "show_error_budget": false,
  "slo_id": "string",
  "time_windows": [],
  "title": "string",
  "title_align": "string",
  "title_size": "string",
  "type": "slo",
  "view_mode": "string",
  "view_type": "detail"
}

その他の参考資料

PREVIEWING: may/unit-testing