全部產品
Search
文件中心

Alibaba Cloud Service Mesh:ASMExtensionProvider CRD說明

更新時間:Feb 07, 2025

ASMExtensionProvider是用於擴充和配置網格功能的組件,支援鏈路追蹤、訪問日誌等關鍵特性的靈活整合與定製化配置。本文介紹ASMExtensionProvider的配置樣本和欄位說明。

配置樣本

配置Zipkin鏈路追蹤

以下展示了一個鏈路追蹤通過Zipkin進行上報的配置樣本。

apiVersion: istio.alibabacloud.com/v1
kind: ASMExtensionProvider
metadata:
  name: zipkin
spec:
  zipkin:
    port: 8090
    service: zipkin.istio-system.svc.cluster.local

配置Envoy訪問日誌格式

以下展示了一個配置Envoy訪問日誌格式的樣本。

apiVersion: istio.alibabacloud.com/v1
kind: ASMExtensionProvider
metadata:
  name: envoy
spec:
  envoyFileAccessLog:
    logFormat:
      text: '{"bytes_received":"%BYTES_RECEIVED%","bytes_sent":"%BYTES_SENT%","downstream_local_address":"%DOWNSTREAM_LOCAL_ADDRESS%","downstream_remote_address":"%DOWNSTREAM_REMOTE_ADDRESS%","duration":"%DURATION%","istio_policy_status":"%DYNAMIC_METADATA(istio.mixer:status)%","method":"%REQ(:METHOD)%","path":"%REQ(X-ENVOY-ORIGINAL-PATH?:PATH)%","protocol":"%PROTOCOL%","request_id":"%REQ(X-REQUEST-ID)%","requested_server_name":"%REQUESTED_SERVER_NAME%","response_code":"%RESPONSE_CODE%","response_flags":"%RESPONSE_FLAGS%","route_name":"%ROUTE_NAME%","start_time":"%START_TIME%","trace_id":"%REQ(X-B3-TRACEID)%","upstream_cluster":"%UPSTREAM_CLUSTER%","upstream_host":"%UPSTREAM_HOST%","upstream_local_address":"%UPSTREAM_LOCAL_ADDRESS%","upstream_service_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_response_time":"%RESP(X-ENVOY-UPSTREAM-SERVICE-TIME)%","upstream_transport_failure_reason":"%UPSTREAM_TRANSPORT_FAILURE_REASON%","user_agent":"%REQ(USER-AGENT)%","x_forwarded_for":"%REQ(X-FORWARDED-FOR)%","authority_for":"%REQ(:AUTHORITY)%"}'
    path: /dev/stdout

為不同叢集配置不同的Tracing上報方式

以下展示了一個彙總Provider的配置,該配置使叢集cluster-a通過Zipkin進行鏈路追蹤資料上報,其他叢集通過OpenTelemetry進行鏈路追蹤資料上報。

重要

僅支援ASM 1.22.6.89及以上版本。

apiVersion: istio.alibabacloud.com/v1
kind: ASMExtensionProvider
metadata:
  name: aggregate-provider
spec:
  aggregate:
    defaultProvider:
      name: opentelemetry
    uniqueProviders:
    - clusters:
      - id: cluster-a
        region: cn-hangzhou
      provider:
        name: zipkin
---
apiVersion: istio.alibabacloud.com/v1
kind: ASMExtensionProvider
metadata:
  name: zipkin
spec:
  zipkin:
    port: 8090
    service: zipkin.istio-system.svc.cluster.local
---
apiVersion: istio.alibabacloud.com/v1
kind: ASMExtensionProvider
metadata:
  name: opentelemetry
spec:
  opentelemetry:
    port: 8090
    service: otel.istio-system.svc.cluster.local

在Telemetry資源中引用provider

apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
  name: default
  namespace: istio-system
spec:
  accessLogging:
  - disabled: false
    providers:
    - name: envoy
  tracing:
  - providers:
    - name: zipkin

配置項說明

ASMExtensionProvider

配置項

類型

是否必選

說明

zipkin

ZipkinTracingProvider

否

Zipkin追蹤配置。

lightstep

LightstepTracingProvider

否

Lightstep追蹤配置。

datadog

DatadogTracingProvider

否

Datadog追蹤配置。

stackdriver

StackdriverProvider

否

Stackdriver 配置。

opencensus

OpenCensusAgentTracingProvider

否

OpenCensus追蹤配置。

skywalking

SkywalkingTracingProvider

否

Skywalking追蹤配置。

opentelemetry

OpenTelemetryProvider

否

OpenTelemetry配置。

envoyFileAccesslog

EnvoyFileAccessLogProvider

否

Envoy訪問日誌配置。

aggregate

AggregateProvider

否

彙總Provider,用於為不同叢集配置不同Provider。

重要

在配置鏈路追蹤Provider時,需要保證Provider的服務名稱為網格內服務,如果為網格外服務,需要通過ServiceEntry進行註冊。具體操作,請參見Service Entry。

ZipkinTracingProvider

配置項

類型

是否必選

說明

service

string

是

Zipkin服務名稱。

path

string

是

Zipkin服務要求路徑。

port

uint32

否

Zipkin服務連接埠。

maxTagLength

uint32

否

每個標籤的最大字元長度,預設值為256。

LightstepTracingProvider

配置項

類型

是否必選

說明

service

string

是

Lightstep服務名稱。

port

uint32

是

Lightstep服務連接埠。

accesstoken

string

否

Lightstep服務存取權杖。

maxTagLength

uint32

否

每個標籤的最大字元長度,預設值為256。

DatadogTracingProvider

配置項

類型

是否必選

說明

service

string

是

Datadog服務名稱。

port

uint32

是

Datadog服務連接埠。

maxTagLength

uint32

否

每個標籤的最大字元長度,預設值為256。

StackdriverProvider

配置項

類型

是否必選

說明

maxTagLength

uint32

否

每個標籤的最大字元長度,預設值為256。

logging

StackdriverProvider_Logging

否

Stackdriver日誌配置。

OpenCensusAgentTracingProvider

配置項

類型

是否必選

說明

service

string

是

OpenCensusAgent服務名稱。

port

uint32

是

OpenCensusAgent服務連接埠。

context

[]string

否

指定用於分布式追蹤的上下文傳播頭,預設為 ["W3C_TRACE_CONTEXT"]。

maxTagLength

uint32

否

每個標籤的最大字元長度,預設值為256。

SkywalkingTracingProvider

配置項

類型

是否必選

說明

service

string

是

Skywalking服務名稱。

port

uint32

是

Skywalking服務連接埠。

OpenTelemetryProvider

配置項

類型

是否必選

說明

service

string

是

OpenTelemetry服務名稱。

port

uint32

是

OpenTelemetry服務連接埠。

maxTagLength

uint32

否

每個標籤的最大字元長度,預設值為256。

grpc

OpenTelemetryProvider_GrpcService

否

gRPC協議上報配置。

http

OpenTelemetryProvider_HttpService

否

HTTP協議上報配置。未填寫的情況下預設採取gRPC協議進行上報。

EnvoyFileAccessLogProvider

配置項

類型

是否必選

說明

path

string

否

日誌輸出路徑。

logFormat

EnvoyFileAccessLogProvider_LogFormat

否

日誌格式配置,text或labels其中之一。

AggregateProvider

配置項

類型

是否必選

說明

defaultProvider

ProviderRef

是

預設使用的Provider。

uniqueProviders

[]UniqueProvider

否

為不同叢集分別配置Provider。

UniqueProvider

配置項

類型

是否必選

說明

provider

ProviderRef

否

Provider引用。

clusters

[]ClusterRef

否

叢集引用。

StackdriverProvider_Logging

配置項

類型

是否必選

說明

labels

map[string]string

否

要包含在日誌條目中的標籤名稱和標籤運算式。例:path: request.url_path。

OpenTelemetryProvider_HttpService

配置項

類型

是否必選

說明

path

string

是

設定服務的路徑。

timeout

string

否

HTTP請求的逾時時間。

headers

[]HeaderValue

否

每個HTTP請求中添加的自訂 HTTP要求標頭。

OpenTelemetryProvider_GrpcService

配置項

類型

是否必選

說明

timeout

string

否

gRPC請求的逾時時間。

initialMetaData

[]HeaderValue

否

每個gRPC請求中添加的自訂 gRPC頭。

HeaderValue

配置項

類型

是否必選

說明

name

string

是

要求標頭名稱。

value

string

是

要求標頭值。

EnvoyFileAccessLogProvider_LogFormat

配置項

類型

是否必選

說明

text

string

否

文本化輸出方式的日誌格式。例:text: "%LOCAL_REPLY_BODY%:%RESPONSE_CODE%:path=%REQ(:path)%"。

labels

map[string]string

否

配置JSON結構化輸出的Envoy日誌格式。例:

labels:
  status: "%RESPONSE_CODE%"
  message: "%LOCAL_REPLY_BODY%"

ProviderRef

配置項

類型

是否必選

說明

name

string

否

Provider名稱。

ClusterRef

配置項

類型

是否必選

說明

region

string

否

叢集所在的地區。

name

string

否

叢集的名稱。

id

string

是

叢集ID。