CustomResourceDefinition (CRD) Telemetri digunakan untuk mendefinisikan dan mengonfigurasi kebijakan serta perilaku terkait observabilitas dan pengumpulan data dalam instance Service Mesh (ASM). Ini memungkinkan Anda mengelola fitur telemetri yang disediakan oleh Istio secara granular, seperti logging, metrik, dan tracing. Dengan Telemetry CRD, Anda dapat menyesuaikan metode pengumpulan dan pemrosesan data telemetri sesuai dengan kebutuhan bisnis Anda. Topik ini menjelaskan cara mengonfigurasi Telemetry CRD dan memberikan deskripsi bidang-bidang dalam CRD.
Contoh konfigurasi
Istio mendukung konfigurasi observabilitas di tiga tingkat berbeda, yang sesuai dengan konfigurasi observabilitas berikut di konsol ASM:
Konfigurasi global (tab Global di konsol ASM)
Konfigurasi spesifik namespace (tab Namespace di konsol ASM)
Konfigurasi spesifik workload (tab Kustom di konsol ASM)
Berikut adalah contoh file YAML Telemetri yang menunjukkan cara mengonfigurasi observabilitas di berbagai tingkat:
Konfigurasi global
Konfigurasi spesifik namespace
Konfigurasi spesifik workload
Deskripsi bidang
Telemetri
Bidang | Tipe | Diperlukan | Deskripsi |
selector | Tidak | Menentukan workload tempat kebijakan Telemetri akan dikonfigurasi. | |
tracing | Tracing[] | Tidak | Menentukan perilaku tracing untuk semua workload yang dipilih. |
metrics | Metrics[] | Tidak | Menentukan perilaku metrik untuk semua workload yang dipilih. |
accessLogging | Tidak | Menentukan perilaku pencatatan akses untuk semua workload yang dipilih. |
Tracing
Bidang | Tipe | Diperlukan | Deskripsi |
randomSamplingPercentage | double | Tidak | Menentukan laju pemilihan lalu lintas untuk tracing. Nilai 0 menunjukkan bahwa tidak ada sampling yang dilakukan. |
customTags | map<string, CustomTag> | Tidak | Menentukan tag kustom tambahan yang ditambahkan ke rentang jejak yang dihasilkan. |
Metrics
Bidang | Tipe | Diperlukan | Deskripsi |
overrides | Tidak | Mendefinisikan metode pembuatan kustom dan presentasi untuk metrik tertentu atau semua metrik standar preset. | |
providers | Tidak | Menentukan nama penyedia tempat konfigurasi berlaku. Nilainya harus disetel ke prometheus. |
AccessLogging
Bidang | Tipe | Diperlukan | Deskripsi |
disabled | bool | Tidak | Menentukan perilaku pencatatan. |
providers | Tidak | Menentukan nama penyedia tempat konfigurasi berlaku. Nilainya harus disetel ke envoy. |
WorkloadSelector
Bidang | Tipe | Diperlukan | Deskripsi |
matchLabels | map<string, string> | Tidak | Menentukan satu atau lebih label yang menunjukkan set pod atau mesin virtual (VM) tempat kebijakan berlaku. Ruang lingkup pencarian label dibatasi pada namespace konfigurasi tempat sumber daya tersebut berada. |
CustomTag
Bidang | Tipe | Diperlukan | Deskripsi |
literal | Tidak | Bidang ini menambahkan nilai hard-coded yang sama ke setiap rentang. | |
environment | Tidak | Bidang ini menambahkan nilai variabel lingkungan ke setiap rentang. | |
header | Tidak | Bidang ini menambahkan nilai header dari permintaan ke setiap rentang. |
MetricsOverrides
Bidang | Tipe | Diperlukan | Deskripsi |
match | Tidak | Memilih metrik yang akan diganti. Anda perlu menambahkan dan mengonfigurasi semua metrik klien dan server. | |
disabled | bool | Tidak | Menentukan apakah pelaporan metrik dinonaktifkan. Jika parameter ini disetel ke true, pelaporan metrik dinonaktifkan. |
tagOverrides | map<string, MetricsOverrides> | Tidak | Menentukan kumpulan nama tag dan ekspresi tag untuk mengganti dalam metrik yang dipilih. |
MetricSelector
Bidang | Tipe | Diperlukan | Deskripsi |
metric | Tidak | Menentukan metrik. | |
mode | Tidak | Menentukan mode pembuatan metrik. Nilai valid: CLIENT dan SERVER. |
ProviderRef
Bidang | Tipe | Diperlukan | Deskripsi |
name | string | Ya | Menentukan nama penyedia Telemetri di MeshConfig. |
Tracing.Literal
Bidang | Tipe | Diperlukan | Deskripsi |
value | string | Ya | Nilai tag yang akan digunakan. |
Tracing.Environment
Bidang | Tipe | Diperlukan | Deskripsi |
name | string | Ya | Menentukan nama variabel lingkungan tempat nilai tag diekstraksi. |
defaultValue | string | Tidak | Menentukan nilai default yang digunakan jika variabel lingkungan tidak ditemukan. |
Tracing.RequestHeader
Bidang | Tipe | Diperlukan | Deskripsi |
name | string | Ya | Menentukan nama header tempat nilai tag diekstraksi. |
defaultValue | string | Tidak | Menentukan nilai default yang digunakan jika header tidak ditemukan. |
MetricsOverrides.TagOverride
Bidang | Tipe | Diperlukan | Deskripsi |
operation | Tidak | Menentukan apakah akan memperbarui, menambahkan, atau menghapus tag. | |
value | string | Tidak | Menentukan nilai tag, yang hanya digunakan saat |
MetricSelector.IstioMetric
Nama | Deskripsi |
REQUEST_COUNT | Penghitung permintaan HTTP, HTTP/2, dan gRPC ke atau dari aplikasi |
REQUEST_DURATION | Durasi permintaan HTTP, HTTP/2, dan gRPC |
REQUEST_SIZE | Ukuran body permintaan HTTP, HTTP/2, dan gRPC |
RESPONSE_SIZE | Ukuran body respons HTTP, HTTP/2, dan gRPC |
TCP_OPENED_CONNECTIONS | Penghitung koneksi TCP yang dibuka selama masa pakai workload |
TCP_CLOSED_CONNECTIONS | Penghitung koneksi TCP yang ditutup selama masa pakai workload |
TCP_SENT_BYTES | Penghitung byte yang dikirim selama respons melalui koneksi TCP |
TCP_RECEIVED_BYTES | Penghitung byte yang diterima selama respons melalui koneksi TCP |
GRPC_REQUEST_MESSAGES | Penghitung pesan gRPC yang dikirim dari klien |
GRPC_RESPONSE_MESSAGES | Penghitung pesan gRPC yang dikirim dari server |
MetricsOverrides.TagOverride.Operation
Nama | Deskripsi |
UPSERT | Menentukan bahwa tag harus dimasukkan atau diperbarui. |
REMOVE | Menentukan bahwa tag tidak boleh disertakan dalam metrik selama pembuatan metrik. |
WorkloadMode
Nama | Deskripsi |
CLIENT | Pilih nilai ini untuk skenario ketika workload adalah sumber lalu lintas jaringan. |
SERVER | Pilih nilai ini untuk skenario ketika workload adalah tujuan lalu lintas jaringan. |
Perhatian
Secara prinsip, bidang-bidang yang tidak dijelaskan dalam topik ini kompatibel antara ASM dan Istio versi terkait. Konsol ASM tidak mendukung pengeditan bidang-bidang tersebut. Oleh karena itu, jika Anda ingin menggunakan bidang-bidang ini, Anda dapat langsung memperbarui bidang-bidang tersebut di custom resource (CR) Telemetry yang sesuai menggunakan kubectl atau metode lainnya. Untuk informasi lebih lanjut tentang bidang-bidang Telemetry CRD, lihat Telemetry.