ASMExtensionProvider adalah komponen yang dirancang untuk meningkatkan dan mengonfigurasi fitur-fitur Alibaba Cloud Service Mesh (ASM), memungkinkan integrasi fleksibel serta konfigurasi kustom dari fitur utama seperti analisis tracing dan log akses. Topik ini menjelaskan cara mengonfigurasi ASMExtensionProvider serta memperkenalkan bidang-bidang spesifik.
Konfigurasi contoh
Konfigurasikan analisis tracing menggunakan Zipkin
Contoh kode berikut menunjukkan cara melaporkan analisis tracing menggunakan Zipkin.
apiVersion: istio.alibabacloud.com/v1
kind: ASMExtensionProvider
metadata:
name: zipkin
spec:
zipkin:
port: 8090
service: zipkin.istio-system.svc.cluster.localKonfigurasikan format log akses yang dihasilkan oleh proxy Envoy
Contoh kode berikut menunjukkan cara mengonfigurasi format log akses yang dihasilkan oleh proxy 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/stdoutKonfigurasikan metode pelaporan jejak untuk kluster yang berbeda
Contoh kode berikut menunjukkan konfigurasi untuk penyedia agregat, di mana cluster-a mengirimkan data tracing menggunakan Zipkin, sementara kluster lainnya menggunakan OpenTelemetry.
Hanya ASM versi 1.22.6.89 dan yang lebih baru yang didukung.
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.localImpor penyedia dalam Telemetry CRD
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
name: default
namespace: istio-system
spec:
accessLogging:
- disabled: false
providers:
- name: envoy
tracing:
- providers:
- name: zipkinItem konfigurasi
ASMExtensionProvider
Item konfigurasi | Tipe | Diperlukan | Deskripsi |
zipkin | Tidak | Mengonfigurasi analisis tracing untuk Zipkin. | |
lightstep | Tidak | Mengonfigurasi analisis tracing untuk Lightstep. | |
datadog | Tidak | Mengonfigurasi analisis tracing untuk Datadog. | |
stackdriver | Tidak | Mengonfigurasi analisis tracing untuk Stackdriver. | |
opencensus | Tidak | Mengonfigurasi analisis tracing untuk OpenCensus. | |
skywalking | Tidak | Mengonfigurasi analisis tracing untuk Skywalking. | |
opentelemetry | Tidak | Mengonfigurasi analisis tracing untuk OpenTelemetry. | |
envoyFileAccesslog | Tidak | Mengonfigurasi log akses proxy Envoy | |
aggregate | Tidak | Penyedia agregat untuk mengonfigurasi penyedia yang berbeda untuk kluster yang berbeda. |
Pastikan nama penyedia sesuai dengan layanan dalam ASM sebelum mengonfigurasi penyedia tracing. Untuk layanan eksternal, pendaftaran diperlukan melalui ServiceEntry. Untuk informasi lebih lanjut, lihat Service Entry.
ZipkinTracingProvider
Item konfigurasi | Tipe | Diperlukan | Deskripsi |
service | string | Ya | Nama layanan Zipkin. |
path | string | Ya | Path permintaan layanan Zipkin. |
port | uint32 | Tidak | Port layanan Zipkin. |
maxTagLength | uint32 | Tidak | Panjang karakter maksimum untuk setiap tag. Nilai default adalah 256. |
LightstepTracingProvider
Item konfigurasi | Tipe | Diperlukan | Deskripsi |
service | string | Ya | Nama layanan Lightstep. |
port | uint32 | Ya | Port layanan Lightstep. |
accesstoken | string | Tidak | Token akses layanan Lightstep. |
maxTagLength | uint32 | Tidak | Panjang karakter maksimum untuk setiap tag. Nilai default adalah 256. |
DatadogTracingProvider
Item konfigurasi | Tipe | Diperlukan | Deskripsi |
service | string | Ya | Nama layanan Datadog. |
port | uint32 | Ya | Port layanan Datadog. |
maxTagLength | uint32 | Tidak | Panjang karakter maksimum untuk setiap tag. Nilai default adalah 256. |
StackdriverProvider
Item konfigurasi | Tipe | Diperlukan | Deskripsi |
maxTagLength | uint32 | Tidak | Panjang karakter maksimum untuk setiap tag. Nilai default adalah 256. |
logging | Tidak | Logging Stackdriver. |
OpenCensusAgentTracingProvider
Item konfigurasi | Tipe | Diperlukan | Deskripsi |
service | string | Ya | Nama layanan OpenCensusAgent. |
port | uint32 | Ya | Port layanan OpenCensusAgent. |
context | []string | Tidak | Propagasi header yang digunakan untuk tracing terdistribusi. Nilai default: |
maxTagLength | uint32 | Tidak | Panjang karakter maksimum untuk setiap tag. Nilai default adalah 256. |
SkywalkingTracingProvider
Item konfigurasi | Tipe | Diperlukan | Deskripsi |
service | string | Ya | Nama layanan Skywalking. |
port | uint32 | Ya | Port layanan Skywalking. |
OpenTelemetryProvider
Item konfigurasi | Tipe | Diperlukan | Deskripsi |
service | string | Ya | Nama layanan OpenTelemetry. |
port | uint32 | Ya | Port layanan OpenTelemetry. |
maxTagLength | uint32 | Tidak | Panjang karakter maksimum untuk setiap tag. Nilai default adalah 256. |
grpc | Tidak | Protokol gRPC yang digunakan untuk melaporkan data. | |
http | Tidak | Protokol HTTP yang digunakan untuk melaporkan data. Jika tidak ditentukan, protokol gRPC digunakan secara default untuk pelaporan data. |
EnvoyFileAccessLogProvider
Item konfigurasi | Tipe | Diperlukan | Deskripsi |
path | string | Tidak | Path tempat log dikeluarkan. |
logFormat | Tidak | Format log. Bisa berupa |
AggregateProvider
Item konfigurasi | Tipe | Diperlukan | Deskripsi |
defaultProvider | Ya | Penyedia default yang digunakan. | |
uniqueProviders | Tidak | Penyedia yang dikonfigurasi untuk kluster yang berbeda. |
UniqueProvider
Item konfigurasi | Tipe | Diperlukan | Deskripsi |
provider | Tidak | Penyedia untuk referensi. | |
clusters | Tidak | Kluster untuk referensi. |
StackdriverProvider_Logging
Item konfigurasi | Tipe | Diperlukan | Deskripsi |
labels | map[string]string | Tidak | Nama label dan ekspresi yang akan disertakan dalam entri log. Contoh: |
OpenTelemetryProvider_HttpService
Item konfigurasi | Tipe | Diperlukan | Deskripsi |
path | string | Ya | Path layanan. |
timeout | string | Tidak | Periode timeout untuk permintaan HTTP. |
headers | Tidak | Header permintaan HTTP kustom yang ditambahkan ke setiap permintaan HTTP. |
OpenTelemetryProvider_GrpcService
Item konfigurasi | Tipe | Diperlukan | Deskripsi |
timeout | string | Tidak | Periode timeout selama permintaan gRPC direspons. |
initialMetaData | Tidak | Header permintaan kustom yang ditambahkan ke setiap permintaan gRPC. |
HeaderValue
Item konfigurasi | Tipe | Diperlukan | Deskripsi |
name | string | Ya | Nama header permintaan. |
value | string | Ya | Nilai header permintaan. |
EnvoyFileAccessLogProvider_LogFormat
Item konfigurasi | Tipe | Diperlukan | Deskripsi |
text | string | Tidak | Format log dari input teks. Contoh: |
labels | map[string]string | Tidak | Format log akses Envoy dalam format JSON. Contoh: |
ProviderRef
Item konfigurasi | Tipe | Diperlukan | Deskripsi |
name | string | Tidak | Nama penyedia. |
ClusterRef
Item konfigurasi | Tipe | Diperlukan | Deskripsi |
region | string | Tidak | Wilayah tempat kluster berada. |
name | string | Tidak | Nama kluster. |
id | string | Ya | ID kluster. |