すべてのプロダクト
Search
ドキュメントセンター

Alibaba Cloud Service Mesh:SLO CRDフィールドの説明

最終更新日:Jan 13, 2025

Service Mesh (ASM) では、カスタムリソース定義 (CRD) を作成することで、サービスレベル目標 (SLO) とアラートルールを構成できます。 これにより、構成プロセスが簡素化されます。 このトピックでは、SLO CRD のフィールドについて説明します。

サンプルファイル

次のサンプルファイルは、デフォルトの名前空間の httpbin アプリケーションサービスの SLO を構成して、サービスの可用性を指定する方法を示しています。 このファイルでは、目標は 99.9% で、SLO が有効になる期間は 30 日です。 pageAlert と ticketAlert の 2 つの重大度レベルのアラートが構成されています。 カスタムラベルとアノテーションがアラートに追加されます。

apiVersion: istio.alibabacloud.com/v1beta1
kind: ServiceLevelObjective
metadata:
  name: asm-slo-default-httpbin
  namespace: default # カスタムリソースが属する名前空間
spec:
  service: httpbin # SLO を構成するアプリケーションの名前
  period: 30d # SLO が有効になる期間
  labels:
    owner: "finance-team"
  slos:
  - name: asm-slo2 # SLO の名前
    objective: "99.9" # 目標
    labels:
      description: "サービス可用性の説明"
    sli:
      plugin:
        id: availability # プラグインのタイプ
        options: # プラグインのオプション
          filter: request_protocol="http"
    alerting:
      name: asm-alert # アラートルール名
      labels:
        category: "availability"
      annotations:
        summary: "リクエストのエラー率が高い"
      pageAlert:
        labels:
          severity: "10"
      ticketAlert:
        labels:
          channel: "channel - call"

次の表に、YAML ファイルの一部のフィールドを示します。 詳細については、CRD フィールドの説明をご参照ください。

フィールド

説明

namespace

カスタムリソースが属する名前空間。これは、SLO を構成するアプリケーションが存在する名前空間でもあります。

service

アプリケーションの名前。

period

SLO が有効になる期間。単位は d で、日数を示します。有効な値:30d28d14d7d

objective

目標。

plugin

  • id: プラグインのタイプ。

  • options: プラグインのオプション。オプションがない場合は、このフィールドをスキップします。

このフィールドの詳細については、このトピックのplugin フィールドをご参照ください。

CRD フィールドの説明

metadata フィールド

フィールド

タイプ

必須

説明

name

String

はい

カスタムリソースの名前。形式:asm-slo-{SLO を構成するアプリケーションが存在する名前空間}-{アプリケーションの名前}。

asm-slo-default-httpbin

namespace

String

はい

カスタムリソースが属する名前空間。値は、SLO を構成するアプリケーションが存在する名前空間と同じである必要があります。

default

labels

Object

いいえ

このフィールドを指定する必要はありません。バックエンドは、ラベルセレクターが使用する 2 つの値を自動的に入力します。

  • asm-target-namespace: アプリケーションが存在する名前空間。

  • asm-target-service: アプリケーションの名前。spec フィールドの service の値と同じ名前です。

labels: asm-target-namespace: default asm-target-service: httpbin

spec フィールド

フィールド

タイプ

必須

説明

service

String

はい

アプリケーションの名前。

httpbin

period

String

はい

SLO が有効になる期間。有効な値:30d28d14d7d30d は 30 日を示します。

30d

labels

Object

いいえ

グローバルラベル。slos フィールドの SLO によって生成された各 Recording Rules の labels フィールドには、このラベルが含まれます。

labels: global: "some-label"

slos

Array [SLO の定義]

はい

構成する SLO。少なくとも 1 つの SLO を構成する必要があります。

-

slos フィールド

フィールド

タイプ

必須

説明

name

String

はい

SLO の名前。

asm-slo

objective

String

はい

目標。値は、0 より大きく 100 以下の浮動小数点数として解析できる文字列である必要があります。

"99.9"

labels

Object

いいえ

SLO ラベル。ラベルは、SLO によって生成された各 Recording Rules の labels フィールドに添付されます。

labels: recordlabel: aaa

sli

Object [SLI の定義]

はい

サービスレベル指標 (SLI) の構成。

-

alerting

Object [アラートルールの定義]

はい

アラートルールの構成。

-

sli フィールド

フィールド

タイプ

必須

説明

plugin

Object [プラグインの定義]

はい

プラグイン構成。

-

plugin フィールド

フィールド

タイプ

必須

説明

id

String

はい

プラグインの ID。有効な値:

  • availability: サービスの可用性を指定する SLO プラグイン。

  • latency: サービスレイテンシを指定する SLO プラグイン。

latency

options

Map

いいえ

説明

options に必須フィールドが含まれている場合は必須です。

プラグインのオプション。プラグインオプションは、プラグイン ID によって異なります。

options: bucket: "300"

異なるプラグイン ID は、異なるプラグインオプションに対応します。

  • 次の表は、idavailability の場合の options フィールドについて説明しています。

    フィールド

    タイプ

    必須

    説明

    filter

    String

    いいえ

    ラベルフィルター。Prometheus は、指定されたラベルを含むアプリケーションのメトリックのみを計算します。このフィールドの使い方は promQL と同じです。

    request_protocol="http"

  • 次の表は、idlatency の場合の options フィールドについて説明しています。

    フィールド

    タイプ

    必須

    説明

    bucket

    String

    はい

    レイテンシ目標。値は、整数に直接変換できる文字列です。

    "300"

    filter

    String

    いいえ

    ラベルフィルター。Prometheus は、指定されたラベルを含むアプリケーションのメトリックのみを計算します。このパラメーターの使い方は promQL と同じです。

    request_protocol="http"

    exclude_errors

    Bool

    いいえ

    エラーリクエストを除外するかどうかを指定します。デフォルト値:false

    • true: Prometheus は、レスポンスコードが 5XX のリクエストを除くリクエストに基づいてレイテンシを計算します。

    • false: Prometheus は、エラーを含むすべてのリクエストに基づいてレイテンシを計算します。

    false

alerting フィールド

フィールド

タイプ

必須

説明

name

String

はい

アラートルール名。

asm-alert

labels

Map

いいえ

アラートルールのラベル。

labels: alertlabel: bbb

annotations

Map

いいえ

アラートアノテーション。

annotations: alertanno: ccc

pageAlert

Object

いいえ

ページレベルの高重大度アラートの構成。

-

ticketAlert

Object

いいえ

チケットレベルの低重大度アラートの構成。

-

pageAlert フィールド

フィールド

タイプ

必須

説明

disable

Bool

いいえ

このアラートルールを有効にするかどうかを指定します。デフォルト値は true で、アラートルールが有効になっていることを示します。

false

labels

Map

いいえ

アラートルールのラベル。

labels: pagelabel: ddd

annotations

Map

いいえ

アラートアノテーション。

annotations: pageanno: eee

ticketAlert フィールド

フィールド

タイプ

必須

説明

disable

Bool

いいえ

このアラートルールを有効にするかどうかを指定します。デフォルト値は true で、アラートルールが有効になっていることを示します。

false

labels

Map

いいえ

アラートルールのラベル。

labels: pagelabel: ddd

annotations

Map

いいえ

アラートアノテーション。

annotations: pageanno: eee