全部產品
Search
文件中心

Alibaba Cloud Service Mesh:SLO CRD欄位說明

更新時間:Jun 30, 2024

阿里雲Service MeshASM提供了產生SLO以及配套的警示規則能力。通過自訂資源CRD配置的方式,簡化您的配置流程。本文介紹SLO CRD欄位的相關說明。

樣本檔案

以下樣本檔案將為default命名空間下的httpbin服務產生服務可用性SLO。以下範例程式碼中,目標值為99.9%,期間為30天,配置Page和Ticket兩個等級的警示,添加了自訂標籤和註解。

apiVersion: istio.alibabacloud.com/v1beta1
kind: ServiceLevelObjective
metadata:
  name: asm-slo-default-httpbin
  namespace: default # 自訂資源的命名空間。
spec:
  service: httpbin # 目標服務名。
  period: 30d # SLO期間。
  labels:
    owner: "finance-team"
  slos:
  - name: asm-slo2 # SLO名稱。
    objective: "99.9" # 目標值。
    labels:
      description: "service availability description"
    sli:
      plugin:
        id: availability # 使用的外掛程式類型。
        options: # 外掛程式選項。
          filter: request_protocol="http"
    alerting:
      name: asm-alert # 警示規則名稱。
      labels:
        category: "availability"
      annotations:
        summary: "High error rate on requests"
      pageAlert:
        labels:
          severity: "10"
      ticketAlert:
        labels:
          channel: "channel - call"

樣本檔案的重點欄位說明如下。關於欄位的詳細說明,請參見下文CRD定義說明

欄位

說明

namespace

自訂資源的命名空間,即目標服務的命名空間。

service

目標服務的名稱。

period

SLO期間,單位為d(天)。可取值為30d28d14d7d

objective

目標值。

plugin

  • id:填寫SLO對應的外掛程式類型。

  • options:填寫對應的外掛程式選項(若沒有可不填寫)。

關於參數的具體說明,請參見下文Plugin欄位定義

CRD定義說明

Metadata欄位定義

名稱

類型

是否必選

說明

樣本值

name

String

名稱,格式為asm-slo-{目標服務所在命名空間}-{目標服務名}。

asm-slo-default-httpbin

namespace

String

自訂資源的命名空間。需要與目標服務的命名空間相同。

default

labels

Object

無需您手動填寫。後端會自動填滿兩個欄位值供標籤選取器使用。

  • 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的labes欄位中,都會包含此處的標籤。

labels: global: "some-label"

slos

Array[Slo類型]

需要設定的SLO數組,至少配置一個SLO。

-

Slo欄位定義

名稱

類型

是否必選

描述

樣本值

name

String

SLO的名稱。

asm-slo

objective

String

SLO的目標值。格式為字串,且該字串能夠解析為一個(0,100]之間的浮點數。

"99.9"

labels

Object

SLO標籤。此處配置的標籤會附加到該SLO產生的每一條Recording Rules的labels欄位中。

labels: recordlabel: aaa

sli

Object[Sli類型]

選擇所需的SLI類型。

-

alerting

Object[Alerting類型]

配置警示規則。

-

Sli欄位定義

名稱

類型

是否必選

描述

樣本值

plugin

Object[Plugin類型]

SLI外掛程式配置。

-

Plugin欄位定義

名稱

類型

是否必選

說明

樣本值

id

String

外掛程式ID。取值如下:

  • availability:服務可用性SLO外掛程式。

  • latency:服務延遲SLO外掛程式。

latency

options

Map

說明

options中包含必選欄位則為必選。

外掛程式選項。不同外掛程式需要配置不同的外掛程式選項。

options: bucket: "300"

id欄位的取值不同,對應的options欄位也有所區別。

  • 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:響應碼為5XX的請求將不會納入延遲計算。

    • false:不過濾錯誤請求。

    false

Alerting欄位定義

名稱

類型

是否必選

說明

樣本值

name

String

警示規則名稱。

asm-alert

labels

Map

警示規則標籤。

labels: alertlabel: bbb

annotations

Map

警示的注釋資訊。

annotations: alertanno: ccc

pageAlert

Object

Page層級的警示配置,嚴重程度相對較高。

-

ticketAlert

Object

Ticket層級的警示配置,嚴重程度相對較輕。

-

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