Service Mesh (ASM) memungkinkan Anda mengonfigurasi pengaturan observabilitas seperti pengaturan log, data deret waktu, dan analisis jejak. Di Konsol ASM, Anda dapat menyesuaikan konfigurasi global, tingkat namespace, atau workload berdasarkan kebutuhan bisnis Anda. Topik ini menjelaskan cara mengonfigurasi pengaturan observabilitas.
Prasyarat
Pastikan instance ASM versi 1.17.2.35 atau lebih baru telah dibuat. Untuk informasi lebih lanjut, lihat Buat Instance ASM atau Perbarui Instance ASM.
Ruang lingkup yang berlaku
Jenis konfigurasi | Deskripsi |
Global | Konfigurasi global mencakup Pengaturan Log, Pengaturan Data Deret Waktu, dan Pengaturan Analisis Jejak. Konfigurasi global wajib dilakukan, dan hanya satu konfigurasi global yang diizinkan. Pengaturan Analisis Jejak hanya tersedia di tab Global. |
Tingkat Namespace | Konfigurasi observabilitas spesifik namespace. Setiap namespace hanya memiliki satu konfigurasi observabilitas tingkat namespace. |
Kustom | Anda dapat menggunakan pemilih workload untuk memilih ruang lingkup berlaku dari konfigurasi kustom. Setiap workload hanya dapat dipilih oleh satu konfigurasi kustom. |
Prosedur
Konfigurasi Global
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih .
Di halaman Observability Settings, klik tab Global, lalu konfigurasikan Pengaturan Log, Data Deret Waktu, dan Analisis Jejak sesuai kebutuhan bisnis Anda, kemudian klik submit.
Anda dapat mengklik tautan dalam tabel berikut untuk melihat deskripsi konfigurasi terperinci.
Bagian
Deskripsi
Konfigurasi Tingkat Namespace
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih .
Di halaman Observability Settings, klik tab Namespace, lalu klik Create. Pada halaman yang muncul, pilih namespace dari daftar drop-down Namespace, konfigurasikan Pengaturan Log dan Data Deret Waktu, lalu klik Create.
Anda dapat mengklik tautan dalam tabel berikut untuk melihat deskripsi konfigurasi terperinci.
Bagian
Deskripsi
Konfigurasi Kustom
Masuk ke Konsol ASM. Di panel navigasi kiri, pilih .
Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih .
Di halaman Observability Settings, klik tab Custom, pilih namespace dari daftar drop-down Namespace, lalu klik Create. Pada halaman yang muncul, atur Name dan Matching Label, konfigurasikan Pengaturan Log dan Data Deret Waktu, lalu klik Create.
Anda dapat mengklik tautan dalam tabel berikut untuk melihat deskripsi konfigurasi terperinci.
Bagian
Deskripsi
Deskripsi Pengaturan Log
Di bagian Pengaturan Log, Anda dapat mengaktifkan atau menonaktifkan output log akses, menyesuaikan format log, serta menyaring log.
Aktifkan atau nonaktifkan output log akses
Di bagian Log Settings, nyalakan atau matikan saklar Enable Log Output sesuai kebutuhan bisnis Anda.
Jika saklar dihidupkan, proxy sidecar atau gateway pada bidang data instance ASM akan mengirimkan log akses ke kontainer, yang kemudian memancarkan log ke aliran keluaran stdout.
Jika saklar dimatikan, proxy sidecar atau gateway pada bidang data instance ASM berhenti mengirimkan log akses ke kontainer, sehingga tidak ada log yang dipancarkan ke aliran keluaran stdout.
Lihat log di aliran keluaran standar kontainer sidecar pada bidang data.
Contoh berikut menunjukkan cara menggunakan kubectl untuk melihat log akses.
Jalankan perintah berikut untuk melihat log proxy sidecar:
kubectl logs httpbin-5c5944c58c-w**** -c istio-proxy --tail 1Jalankan perintah berikut untuk melihat log gateway masuk:
kubectl -n istio-system logs istio-ingressgateway-6cff9b6b58-r**** --tail 1
(Opsional) Lihat log akses di Konsol Container Service for Kubernetes (ACK).
Jika Anda menggunakan kluster ACK, Anda juga dapat melihat log akses di Konsol ACK.
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel kiri, pilih .
Di halaman Pods, klik nama pod yang diinginkan dan klik tab Logs untuk melihat log akses.
Sesuaikan format output log akses
Fitur ini hanya tersedia untuk instance ASM versi 1.20.6.36 atau yang lebih baru. Untuk informasi lebih lanjut tentang cara memperbarui instance ASM, lihat Perbarui Instance ASM.
Di bagian Log Settings, atur parameter Log Output Format ke JSON atau TEXT sesuai kebutuhan bisnis Anda.
Jika Anda mengatur parameter ke JSON, log akses akan dikeluarkan ke kontainer yang sesuai sebagai string JSON.
Jika Anda mengatur parameter ke TEXT, log akses akan dikeluarkan ke kontainer yang sesuai sebagai string teks biasa.
Sesuaikan format log akses
Di bagian Log Settings, pilih bidang kustom yang diinginkan atau modifikasi informasi dari bidang tersebut. Anda juga dapat mengklik ikon
di sebelah kanan metrik log di bagian bawah untuk menambahkan bidang log.Anda hanya dapat menyesuaikan format log jika Anda mengaktifkan Aktifkan Output Log. Di bagian Log Format, bidang log yang dipilih secara default adalah wajib dan tidak dapat dimodifikasi. Anda dapat memilih untuk mendapatkan nilai bidang log dari header permintaan, header respons, atau nilai bawaan Envoy.
Contoh berikut mengatur accessLogFormat key menjadi accept-encoding, Type menjadi Request Properties, dan accessLogFormat value menjadi Accept-Encoding untuk mencetak header accept-encoding dalam permintaan.

Jalankan perintah berikut untuk melihat log komponen pada bidang data instance ASM:
kubectl logs httpbin-5c5944c58c-w**** -c istio-proxy --tail 1|grep accept-encoding --color=autoNilai header accept-encoding yang ditambahkan di Langkah 1 dicetak di log akses.
Filter log
Di bagian bawah Log Settings, pilih Enable Log Filter dan masukkan ekspresi filter log di kotak teks sesuai kebutuhan bisnis Anda. Log akses dari permintaan yang tidak cocok dengan ekspresi tidak akan dicetak.
Sebagai contoh, untuk mencetak log permintaan yang memiliki kode status HTTP dalam respons lebih besar dari atau sama dengan 400, atur ekspresi menjadi response.code >= 400. Untuk informasi lebih lanjut, lihat Ekspresi CEL dan Atribut yang Sering Digunakan.
Ekspresi CEL dan atribut yang sering digunakan
Ekspresi filter log ditulis dalam Common Expression Language (CEL). Tabel berikut menjelaskan atribut yang sering digunakan dalam ekspresi CEL. Untuk informasi lebih lanjut, lihat CEL dan Envoy.
Atribut | Tipe | Deskripsi |
request.path | string | Path permintaan. |
request.url_path | string | Path permintaan tanpa string query. |
request.host | string | Bagian nama host dari URL. |
request.method | string | Metode permintaan. |
request.headers | map<string, string> | Semua header permintaan diindeks berdasarkan nama header huruf kecil. |
request.useragent | string | Nilai dari header user agent. |
request.time | timestamp | Waktu ketika byte pertama dari permintaan tiba. |
request.id | string | ID permintaan. |
request.protocol | string | Protokol permintaan. Nilai valid: |
request.query | string | Bagian query dari URL permintaan. |
response.code | int | Kode status HTTP dalam respons. |
response.code_details | string | Detail kode respons. |
response.grpc_status | int | Kode status Google Remote Procedure Call (gRPC) dalam respons. |
response.headers | map<string, string> | Semua header respons diindeks berdasarkan nama header huruf kecil. |
response.size | int | Ukuran badan respons. Satuan: byte. |
response.total_size | int | Ukuran total respons. Satuan: byte. |
Deskripsi Pengaturan Data Deret Waktu
Di bagian Pengaturan Data Deret Waktu, Anda dapat mengaktifkan atau menonaktifkan data deret waktu serta mengedit dimensi data deret waktu.
Aktifkan atau nonaktifkan data deret waktu
Data deret waktu dibagi menjadi data deret waktu sisi klien dan data deret waktu sisi server.
Data deret waktu sisi klien adalah data yang dihasilkan ketika proxy sidecar bekerja sebagai klien dan memulai permintaan. Metrik gateway juga termasuk dalam data deret waktu sisi klien.
Data deret waktu sisi server adalah data yang dihasilkan ketika proxy sidecar bekerja sebagai server dan diakses.
Di bagian Metric Settings, pilih atau hapus centang kotak Enabled dari metrik yang sesuai di kolom CLIENT side Indicator atau SERVER side index.
Ketika metrik diaktifkan, proxy sidecar atau gateway pada bidang data instance ASM mengekspos metrik di jalur
/stats/prometheusmelalui port 15020.Jika metrik dinonaktifkan, metrik tersebut tidak diekspos melalui port tersebut.
Jalankan perintah berikut untuk melihat metrik yang diekspos oleh proxy sidecar atau gateway:
Anda dapat menggunakan kubectl untuk terhubung ke kontainer proxy sidecar atau gateway dan menjalankan perintah curl untuk mengakses jalur
/stats/prometheusmelalui port 15020 dan melihat metrik yang diekspor.kubectl exec httpbin-5c5944c58c-w**** -c istio-proxy -- curl 127.0.0.1:15020/stats/prometheus|head -n 10Contoh Output:
# TYPE istio_agent_cert_expiry_seconds gauge istio_agent_cert_expiry_seconds{resource_name="default"} 46725.287654548 # HELP istio_agent_endpoint_no_pod Endpoints without an associated pod. # TYPE istio_agent_endpoint_no_pod gauge istio_agent_endpoint_no_pod 0 # HELP istio_agent_go_gc_duration_seconds A summary of the pause duration of garbage collection cycles. # TYPE istio_agent_go_gc_duration_seconds summary istio_agent_go_gc_duration_seconds{quantile="0"} 5.0149e-05 istio_agent_go_gc_duration_seconds{quantile="0.25"} 9.8807e-05 ......
Edit dimensi data deret waktu
Dimensi data deret waktu menunjukkan lebih banyak informasi. Anda dapat menggunakan dimensi ini untuk menyaring data deret waktu di Prometheus. Sebagai contoh, Anda dapat menggunakan dimensi source_app untuk menyaring data deret waktu yang permintaan kliennya adalah aplikasi tertentu.
Di bagian Metric Settings, klik Edit dimension di kolom CLIENT side Indicator atau SERVER side index.
Di kotak dialog Customize CLIENT dimension configuration, pilih atau hapus dimensi yang ingin Anda gunakan untuk mengekspor data deret waktu, lalu klik Submit.
Anda tidak dapat menambahkan dimensi data deret waktu. Anda dapat menghapus dimensi data deret waktu yang tidak diperlukan untuk menghemat ruang penyimpanan Prometheus. Biasanya, sebagian besar dimensi tetap dipertahankan. Oleh karena itu, hanya dimensi yang dihapus yang ditampilkan di bagian Metric Settings.
Deskripsi Pengaturan Analisis Jejak
Di bagian Pengaturan Analisis Jejak, Anda dapat mengonfigurasi Persentase Sampling dan Tag Kustom. Pengaturan ini berlaku secara global.
Persentase Sampling
Persentase Sampling menunjukkan persentase permintaan yang memicu Analisis Jejak. Jika Anda mengatur nilainya menjadi 0, Analisis Jejak dinonaktifkan, dan tidak ada permintaan yang memicu Analisis Jejak.
Tag Kustom
Anda dapat menyesuaikan tag yang dibawa oleh rentang Analisis Jejak. Di bagian Tracing Analysis Settings, klik Add Custom Tags dan atur Name, Type, dan Value.
Tabel berikut menjelaskan nilai dari Tipe dan memberikan contoh konfigurasi tag.
Tipe | Deskripsi | Contoh konfigurasi tag |
Fixed Value | Nilai tag jenis ini tetap pada nilai yang Anda atur. |
|
Request Header | Nilai tag jenis ini adalah nilai dari header permintaan yang ditentukan. Jika header tidak ada dalam permintaan, nilai default digunakan sebagai nilai tag. Dalam contoh konfigurasi, nilai tag diperoleh dari header User-Agent. Jika header tidak ada, nilai default unknow digunakan sebagai nilai tag. |
|
Environment Variable | Nilai tag jenis ini diperoleh dari variabel lingkungan workload yang ditentukan. Jika variabel lingkungan tidak ada dalam workload, nilai default digunakan sebagai nilai tag. Dalam contoh konfigurasi, nilai tag diperoleh dari variabel lingkungan ENV. Jika variabel lingkungan tidak ada, nilai default unknow digunakan sebagai nilai tag. |
|