ASMExtensionProvider CRD说明

更新时间:2025-02-06 09:32:30

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)CRD说明

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。

  • 本页导读 (1)
  • 配置示例
  • 配置Zipkin链路追踪
  • 配置Envoy访问日志格式
  • 为不同集群配置不同的Tracing上报方式
  • 在Telemetry资源中引用provider
  • 配置项说明
  • ASMExtensionProvider
  • ZipkinTracingProvider
  • LightstepTracingProvider
  • DatadogTracingProvider
  • StackdriverProvider
  • OpenCensusAgentTracingProvider
  • SkywalkingTracingProvider
  • OpenTelemetryProvider
  • EnvoyFileAccessLogProvider
  • AggregateProvider
  • UniqueProvider
  • StackdriverProvider_Logging
  • OpenTelemetryProvider_HttpService
  • OpenTelemetryProvider_GrpcService
  • HeaderValue
  • EnvoyFileAccessLogProvider_LogFormat
  • ProviderRef
  • ClusterRef
AI助理

点击开启售前

在线咨询服务

你好,我是AI助理

可以解答问题、推荐解决方案等