全部产品
Search
文档中心

Alibaba Cloud Service Mesh:Konfigurasikan pengaturan observabilitas

更新时间:Jul 02, 2025

Service Mesh (ASM) memungkinkan Anda mengonfigurasi pengaturan observabilitas, termasuk log, data deret waktu, dan analisis jejak. Di Konsol ASM, Anda dapat menyesuaikan konfigurasi global, tingkat namespace, atau tingkat workload seperti format log akses, dimensi data deret waktu, pengaktifan metrik tertentu, serta persentase sampling analisis jejak. Topik ini menjelaskan cara mengonfigurasi pengaturan observabilitas.

Prasyarat

Sebuah 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 di sebelah kiri, pilih Service Mesh > Mesh Management.

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

  3. Di halaman Observability Settings, klik tab Global, konfigurasikan pengaturan log, data deret waktu, dan analisis jejak sesuai kebutuhan bisnis Anda, lalu 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 di sebelah kiri, pilih Service Mesh > Mesh Management.

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

  3. Di halaman Observability Settings, klik tab Namespace, lalu klik Create. Di halaman yang muncul, pilih namespace dari daftar drop-down Namespace, konfigurasikan pengaturan log dan data deret waktu sesuai kebutuhan bisnis Anda, 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 di sebelah kiri, pilih Service Mesh > Mesh Management.

  2. Di halaman Mesh Management, klik nama instance ASM. Di panel navigasi di sebelah 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. Di halaman yang muncul, atur Name dan Matching Label, konfigurasikan pengaturan log dan data deret waktu sesuai kebutuhan bisnis Anda, lalu klik Create.

    Anda dapat mengklik tautan dalam tabel berikut untuk melihat deskripsi konfigurasi terperinci.

    Bagian

    Deskripsi

    Pengaturan Log

    Pengaturan Data Deret Waktu

Pengaturan Log

Di bagian Pengaturan Log, Anda dapat mengaktifkan atau menonaktifkan output log akses, menyesuaikan format output log akses, menyesuaikan format log akses, dan menyaring log.

Aktifkan atau nonaktifkan output log akses

  1. Di bagian Log Settings, aktifkan atau nonaktifkan saklar Enable Log Output sesuai kebutuhan bisnis Anda.

    • Jika Anda mengaktifkan saklar tersebut, proxy sidecar atau gateway pada bidang data instance ASM mengirim log akses ke kontainer, yang kemudian memancarkan log ke aliran keluaran stdout.

    • Jika Anda menonaktifkan saklar tersebut, proxy sidecar atau gateway pada bidang data instance ASM berhenti mengirim log akses ke kontainer, yang tidak lagi memancarkan log ke aliran keluaran stdout.

  2. Lihat log di aliran keluaran standar kontainer sidecar di 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 di sebelah kiri, klik Clusters.

    2. Di halaman Clusters, temukan kluster yang Anda inginkan dan klik namanya. Di panel sebelah 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 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 field kustom yang diinginkan atau modifikasi informasi dari field kustom tersebut. Anda juga dapat mengklik ikon 增加.png di sebelah kanan metrik log di bagian bawah untuk menambahkan field log.

    Anda hanya dapat menyesuaikan format log jika Anda mengaktifkan Aktifkan Output Log. Di bagian Log Format, field log yang dipilih secara default adalah wajib dan tidak dapat dimodifikasi. Anda dapat memilih untuk mendapatkan nilai field 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 dalam 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 sesuai dengan ekspresi tersebut 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

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.

Pengaturan Data Deret Waktu

Pengaturan data deret waktu mencakup pengaktifan atau penonaktifan data deret waktu dan pengeditan dimensi data deret waktu.

Aktifkan atau nonaktifkan data deret waktu

Data deret waktu terdiri dari 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 yang 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 yang diakses.

  1. Di bagian Metric Settings, pilih atau kosongkan kotak centang 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 tersebut di path /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 jalankan perintah curl untuk mengakses path /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
    ......

Dimensi metrik

Dimensi yang dibawa oleh data deret waktu menyampaikan informasi yang kaya. Anda dapat menggunakan dimensi ini untuk menyaring metrik target di Prometheus. Sebagai contoh, Anda dapat menggunakan dimensi source_app untuk menyaring metrik untuk permintaan dari aplikasi klien tertentu.

Edit dimensi default

  1. Di bagian Metric Settings, klik Edit dimension dari metrik Client-side Metrics atau Server-side Metrics yang diaktifkan.

  2. Di kotak dialog Customize CLIENT dimension configuration atau Customize SERVER dimension configuration, pilih dimensi yang ingin Anda ekspor, lalu klik Submit.

Sebagai contoh, jika semua dimensi diaktifkan, Anda dapat menggunakan kubectl untuk terhubung ke kontainer proxy sidecar atau gateway, jalankan perintah curl berikut untuk mengakses path </stats/prometheus melalui port 15020, lalu lihat metrik yang diekspor.

kubectl exec httpbin-5c5944c58c-w**** -c istio-proxy -- curl 127.0.0.1:15020/stats/prometheus

Metrik istio_request_bytes_sum (sesuai dengan metrik REQUEST_SIZE pada panel kontrol) digunakan sebagai contoh. Anda dapat melihat bahwa metrik tersebut berisi semua dimensi.

istio_request_bytes_sum{reporter="destination",source_workload="istio-ingressgateway",source_canonical_service="unknown",source_canonical_revision="latest",source_workload_namespace="istio-system",source_principal="spiffe://cluster.local/ns/istio-system/sa/istio-ingressgateway",source_app="istio-ingressgateway",source_version="unknown",source_cluster="c479fc4abd2734bfaaa54e9e36fb26c01",destination_workload="httpbin",destination_workload_namespace="default",destination_principal="spiffe://cluster.local/ns/default/sa/httpbin",destination_app="httpbin",destination_version="v1",destination_service="httpbin.default.svc.cluster.local",destination_canonical_service="httpbin",destination_canonical_revision="v1",destination_service_name="httpbin",destination_service_namespace="default",destination_cluster="c479fc4abd2734bfaaa54e9e36fb26c01",request_protocol="http",response_code="200",grpc_response_status="",response_flags="-",connection_security_policy="mutual_tls"} 18000

Edit metrik default REQUEST_SIZE di kolom Server-side Metrics untuk menyisakan hanya dimensi response_code. Lalu, gunakan kubectl untuk terhubung ke kontainer proxy sidecar atau gateway, jalankan perintah curl untuk mengakses path /stats/prometheus melalui port 15020, dan lihat metrik yang diekspor. Anda dapat melihat bahwa hanya dimensi response_code yang terkandung.

istio_request_bytes_sum{response_code="200"} 16550

Tambahkan dimensi kustom

Anda dapat melakukan langkah-langkah berikut untuk menambahkan dimensi kustom:

  1. Di bagian Metric Settings, klik Edit dimension dari metrik yang diaktifkan di kolom Client-side Metrics atau Server-side Metrics.

  2. Di kotak dialog Customize CLIENT dimension configuration atau Customize SERVER dimension configuration, klik tab Custom Dimension, atur parameter Nama Dimensi dan Nilai, lalu klik Submit.

Sebagai contoh, Anda dapat mengedit metrik REQUEST_SIZE di kolom Server-side Metrics dan menambahkan dimensi kustom dengan nama dimensi disetel ke request_path dan nilai dimensi disetel ke request.path. Lalu, gunakan kubectl untuk terhubung ke kontainer proxy sidecar atau gateway, jalankan perintah curl untuk mengakses path /stats/prometheus melalui port 15020, dan lihat metrik yang diekspor. Anda dapat melihat bahwa metrik tersebut berisi dimensi kustom request_path.

istio_request_bytes_sum{response_code="200",request_path="/spec.json"} 5800
Penting

Anda dapat menghapus dimensi default yang tidak diperlukan oleh layanan Anda untuk mengurangi konsumsi memori Envoy dan Prometheus. Namun, sebagian besar dimensi tetap dipertahankan. Oleh karena itu, hanya dimensi yang dihapus yang ditampilkan di bagian Metric Settings.

Pengaturan Analisis Jejak

Konfigurasi analisis jejak mencakup persentase sampling dan tag kustom. Karena analisis jejak memerlukan konfigurasi pelaporan yang konsisten di seluruh rantai panggilan untuk membangun jejak lengkap, konfigurasi endpoint pelaporan atau laju sampling yang tidak konsisten dapat mengakibatkan jejak yang tidak lengkap. Untuk alasan ini, versi sebelum 1.24.6.83 tidak mendukung konfigurasi analisis jejak tingkat namespace atau tingkat workload. Mulai dari versi 1.24.6.83, ASM mendukung modifikasi Sumber Daya Telemetri melalui API Kubernetes untuk mengaktifkan konfigurasi analisis jejak tingkat namespace dan tingkat workload. Untuk informasi lebih lanjut, lihat Deskripsi Bidang Telemetri.

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 Span analisis jejak. Di bagian Tracing Analysis Settings, klik Add Custom Tags dan atur Name, Type, dan Value.

Tabel berikut menjelaskan nilai Tipe dan memberikan contoh konfigurasi tag.

Tipe

Deskripsi

Contoh konfigurasi tag

Fixed Value

Nilai tag dari tipe ini tetap pada nilai yang Anda atur.

  • Name: env

  • Type: Nilai Tetap

  • Value: prod

Request Header

Nilai tag dari tipe 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 unknown digunakan sebagai nilai tag.

  • Name: useragent

  • Type: Header Permintaan

  • Value:

    • Header name: User-Agent

    • Default value: unknown

Environment Variable

Nilai tag dari tipe ini diperoleh dari variabel lingkungan yang ditentukan dari workload. 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 unknown digunakan sebagai nilai tag.

  • Name: env

  • Type: Variabel Lingkungan

  • Value:

    • Environment Variable name: ENV

    • Default value: unknown