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 | 否 | Zipkin追踪配置。 | |
lightstep | 否 | Lightstep追踪配置。 | |
datadog | 否 | Datadog追踪配置。 | |
stackdriver | 否 | Stackdriver 配置。 | |
opencensus | 否 | OpenCensus追踪配置。 | |
skywalking | 否 | Skywalking追踪配置。 | |
opentelemetry | 否 | OpenTelemetry配置。 | |
envoyFileAccesslog | 否 | Envoy访问日志配置。 | |
aggregate | 否 | 聚合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 | 否 | Stackdriver日志配置。 |
OpenCensusAgentTracingProvider
配置项 | 类型 | 是否必选 | 说明 |
配置项 | 类型 | 是否必选 | 说明 |
service | string | 是 | OpenCensusAgent服务名称。 |
port | uint32 | 是 | OpenCensusAgent服务端口。 |
context | []string | 否 | 指定用于分布式追踪的上下文传播头,默认为 |
maxTagLength | uint32 | 否 | 每个标签的最大字符长度,默认值为256。 |
SkywalkingTracingProvider
配置项 | 类型 | 是否必选 | 说明 |
配置项 | 类型 | 是否必选 | 说明 |
service | string | 是 | Skywalking服务名称。 |
port | uint32 | 是 | Skywalking服务端口。 |
OpenTelemetryProvider
配置项 | 类型 | 是否必选 | 说明 |
配置项 | 类型 | 是否必选 | 说明 |
service | string | 是 | OpenTelemetry服务名称。 |
port | uint32 | 是 | OpenTelemetry服务端口。 |
maxTagLength | uint32 | 否 | 每个标签的最大字符长度,默认值为256。 |
grpc | 否 | gRPC协议上报配置。 | |
http | 否 | HTTP协议上报配置。未填写的情况下默认采取gRPC协议进行上报。 |
EnvoyFileAccessLogProvider
配置项 | 类型 | 是否必选 | 说明 |
配置项 | 类型 | 是否必选 | 说明 |
path | string | 否 | 日志输出路径。 |
logFormat | 否 | 日志格式配置, |
AggregateProvider
配置项 | 类型 | 是否必选 | 说明 |
配置项 | 类型 | 是否必选 | 说明 |
defaultProvider | 是 | 默认使用的Provider。 | |
uniqueProviders | 否 | 为不同集群分别配置Provider。 |
UniqueProvider
配置项 | 类型 | 是否必选 | 说明 |
配置项 | 类型 | 是否必选 | 说明 |
provider | 否 | Provider引用。 | |
clusters | 否 | 集群引用。 |
StackdriverProvider_Logging
配置项 | 类型 | 是否必选 | 说明 |
配置项 | 类型 | 是否必选 | 说明 |
labels | map[string]string | 否 | 要包含在日志条目中的标签名称和标签表达式。例: |
OpenTelemetryProvider_HttpService
配置项 | 类型 | 是否必选 | 说明 |
配置项 | 类型 | 是否必选 | 说明 |
path | string | 是 | 设置服务的路径。 |
timeout | string | 否 | HTTP请求的超时时间。 |
headers | 否 | 每个HTTP请求中添加的自定义 HTTP请求头。 |
OpenTelemetryProvider_GrpcService
配置项 | 类型 | 是否必选 | 说明 |
配置项 | 类型 | 是否必选 | 说明 |
timeout | string | 否 | gRPC请求的超时时间。 |
initialMetaData | 否 | 每个gRPC请求中添加的自定义 gRPC头。 |
HeaderValue
配置项 | 类型 | 是否必选 | 说明 |
配置项 | 类型 | 是否必选 | 说明 |
name | string | 是 | 请求头名称。 |
value | string | 是 | 请求头值。 |
EnvoyFileAccessLogProvider_LogFormat
配置项 | 类型 | 是否必选 | 说明 |
配置项 | 类型 | 是否必选 | 说明 |
text | string | 否 | 文本化输出方式的日志格式。例: |
labels | map[string]string | 否 | 配置JSON结构化输出的Envoy日志格式。例:
|
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