全部產品
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

日誌格式配置,textlabels其中之一。

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。