全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Konfigurasikan pengaturan observabilitas

更新时间:Jul 02, 2025

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

  1. Masuk ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

  2. Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih Observability Management Center > Observability Settings.

  3. 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

    Pengaturan Log

    Pengaturan Data Deret Waktu

    Pengaturan Analisis Jejak

Konfigurasi Tingkat Namespace

  1. Masuk ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

  2. Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih Observability Management Center > Observability Settings.

  3. 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

    Pengaturan Log

    Pengaturan Data Deret Waktu

Konfigurasi Kustom

  1. Masuk ke Konsol ASM. Di panel navigasi kiri, pilih Service Mesh > Mesh Management.

  2. Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi kiri, pilih Observability Management Center > Observability Settings.

  3. 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

    Pengaturan Log

    Pengaturan Data Deret Waktu

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

  1. 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.

  2. Lihat log di aliran keluaran standar kontainer sidecar pada bidang data.

    Contoh berikut menunjukkan cara menggunakan kubectl untuk melihat log akses.

    1. Jalankan perintah berikut untuk melihat log proxy sidecar:

      kubectl logs httpbin-5c5944c58c-w**** -c istio-proxy --tail 1

      Tampilkan Contoh Output

      {
          "authority_for":"47.110.XX.XXX",
          "bytes_received":"0",
          "bytes_sent":"22382",
          "downstream_local_address":"192.168.0.29:80",
          "downstream_remote_address":"221.220.XXX.XXX:0",
          "duration":"80",
          "istio_policy_status":"-",
          "method":"GET",
          "path":"/static/favicon.ico",
          "protocol":"HTTP/1.1",
          "request_id":"0f2cf829-3da5-4810-a618-08d9745d****",
          "requested_server_name":"outbound_.8000_._.httpbin.default.svc.cluster.local",
          "response_code":"200",
          "response_flags":"-",
          "route_name":"default",
          "start_time":"2023-06-30T04:00:36.841Z",
          "trace_id":"-",
          "upstream_cluster":"inbound|80||",
          "upstream_host":"192.168.0.29:80",
          "upstream_local_address":"127.0.X.X:55879",
          "upstream_response_time":"79",
          "upstream_service_time":"79",
          "upstream_transport_failure_reason":"-",
          "user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.X.X Safari/537.36",
          "x_forwarded_for":"221.220.XXX.XXX"
      }
    2. Jalankan perintah berikut untuk melihat log gateway masuk:

      kubectl -n istio-system logs istio-ingressgateway-6cff9b6b58-r**** --tail 1

      Tampilkan Contoh Output

      {
          "authority_for":"47.110.XX.XXX",
          "bytes_received":"0",
          "bytes_sent":"22382",
          "downstream_local_address":"192.168.0.63:80",
          "downstream_remote_address":"221.220.XXX.XXX:64284",
          "duration":"81",
          "istio_policy_status":"-",
          "method":"GET",
          "path":"/static/favicon.ico",
          "protocol":"HTTP/1.1",
          "request_id":"0f2cf829-3da5-4810-a618-08d9745d****",
          "requested_server_name":"-",
          "response_code":"200",
          "response_flags":"-",
          "route_name":"httpbin",
          "start_time":"2023-06-30T04:00:36.841Z",
          "trace_id":"-",
          "upstream_cluster":"outbound|8000||httpbin.default.svc.cluster.local",
          "upstream_host":"192.168.0.29:80",
          "upstream_local_address":"192.168.0.63:36140",
          "upstream_response_time":"81",
          "upstream_service_time":"81",
          "upstream_transport_failure_reason":"-",
          "user_agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.X.X Safari/537.36",
          "x_forwarded_for":"221.220.XXX.XXX"
      }
  3. (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.

    1. Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.

    2. Di halaman Clusters, temukan kluster yang diinginkan dan klik namanya. Di panel kiri, pilih Workloads > Pods.

    3. Di halaman Pods, klik nama pod yang diinginkan dan klik tab Logs untuk melihat log akses.

Sesuaikan format output log akses

Catatan

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

  1. Di bagian Log Settings, pilih bidang kustom yang diinginkan atau modifikasi informasi dari bidang tersebut. Anda juga dapat mengklik ikon 增加.png 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.日志格式.png

  2. 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=auto

    Tampilkan Contoh Output

    {
        "bytes_received":"0",
        "bytes_sent":"9593",
        "downstream_local_address":"192.168.0.29:80",
        "downstream_remote_address":"69.164.XXX.XX:0",
        "duration":"2",
        "istio_policy_status":"-",
        "method":"GET",
        "path":"/",
        "protocol":"HTTP/1.1",
        "request_id":"29939dc9-62be-4ddf-acf6-32cb098d****",
        "requested_server_name":"outbound_.8000_._.httpbin.default.svc.cluster.local",
        "response_code":"200",
        "response_flags":"-",
        "route_name":"default",
        "start_time":"2023-06-30T04:18:19.734Z",
        "trace_id":"-",
        "upstream_cluster":"inbound|80||",
        "upstream_host":"192.168.0.29:80",
        "upstream_local_address":"127.0.X.X:34723",
        "upstream_service_time":"2",
        "upstream_transport_failure_reason":"-",
        "user_agent":"Mozilla/5.0 zgrab/0.x",
        "x_forwarded_for":"69.164.XXX.XX",
        "authority_for":"47.110.XX.XXX",
        "upstream_response_time":"2",
        "accept-encoding":"gzip"
    }

    Nilai 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: HTTP/1.0, HTTP/1.1, HTTP/2, dan HTTP/3.

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.

  1. 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/prometheus melalui port 15020.

    • Jika metrik dinonaktifkan, metrik tersebut tidak diekspos melalui port tersebut.

  2. 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/prometheus melalui 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 10

    Contoh 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.

  1. Di bagian Metric Settings, klik Edit dimension di kolom CLIENT side Indicator atau SERVER side index.

  2. 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.

  • Name: env

  • Type: Nilai Tetap

  • Value: prod

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.

  • Name: useragent

  • Type: Header Permintaan

  • Value:

    • Header name: User-Agent

    • Default value: unknow

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.

  • Name: env

  • Type: Variabel Lingkungan

  • Value:

    • Environment Variable name: ENV

    • Default value: unknow