Memantau aplikasi Anda menggunakan metrik Envoy - AWS App Mesh

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Memantau aplikasi Anda menggunakan metrik Envoy

penting

Pemberitahuan akhir dukungan: Pada 30 September 2026, AWS akan menghentikan dukungan untuk. AWS App Mesh Setelah 30 September 2026, Anda tidak akan lagi dapat mengakses AWS App Mesh konsol atau AWS App Mesh sumber daya. Untuk informasi lebih lanjut, kunjungi posting blog ini Migrasi dari AWS App Mesh ke Amazon ECS Service Connect.

Envoy mengklasifikasikan metriknya ke dalam kategori utama berikut:

  • Hilir —Metrik yang berhubungan dengan koneksi dan permintaan yang masuk ke proxy.

  • Upstream —Metrik yang berhubungan dengan koneksi keluar dan permintaan yang dibuat oleh proxy.

  • Server —Metrik yang menggambarkan keadaan internal utusan. Ini termasuk metrik seperti uptime atau memori yang dialokasikan.

Di App Mesh, proxy mencegat lalu lintas hulu dan hilir. Misalnya, permintaan yang diterima dari klien Anda serta permintaan yang dibuat oleh kontainer layanan Anda diklasifikasikan sebagai lalu lintas hilir oleh Utusan. Untuk membedakan antara berbagai jenis lalu lintas hulu dan hilir ini, App Mesh lebih lanjut mengkategorikan metrik Envoy tergantung pada arah lalu lintas relatif terhadap layanan Anda:

  • Ingress —Metrik dan sumber daya yang berkaitan dengan koneksi dan permintaan yang mengalir ke wadah layanan Anda.

  • Egress —Metrik dan sumber daya yang berkaitan dengan koneksi dan permintaan yang mengalir dari container layanan Anda dan akhirnya keluar dari ECS tugas Amazon atau pod Kubernetes Anda.

Gambar berikut menunjukkan komunikasi antara proxy dan kontainer layanan.

Diagram showing proxy and service containers within an Amazon ECS task or Kubernetes Pod with ingress and egress flow.

Konvensi penamaan sumber daya

Sangat berguna untuk memahami bagaimana Envoy melihat mesh Anda dan bagaimana sumber dayanya memetakan kembali ke sumber daya yang Anda tentukan di App Mesh. Ini adalah sumber daya Utusan utama yang dikonfigurasi App Mesh:

  • Pendengar —Alamat dan port yang didengarkan proxy untuk koneksi hilir. Pada gambar sebelumnya, App Mesh membuat pendengar ingress untuk lalu lintas yang masuk ke ECS tugas Amazon atau pod Kubernetes Anda dan pendengar jalan keluar untuk lalu lintas yang meninggalkan container layanan Anda.

  • Cluster —Grup bernama titik akhir hulu yang dihubungkan oleh proxy dan mengarahkan lalu lintas ke. Di App Mesh, wadah layanan Anda direpresentasikan sebagai klaster, serta semua node virtual lain yang dapat disambungkan oleh layanan Anda.

  • Rute —Ini sesuai dengan rute yang Anda tentukan di mesh Anda. Mereka berisi kondisi di mana proxy cocok dengan permintaan serta kluster target yang dikirimkan permintaan.

  • Endpoint dan tugas beban cluster —Alamat IP cluster hulu. AWS Cloud Map Saat menggunakan mekanisme penemuan layanan Anda untuk node virtual, App Mesh mengirimkan instance layanan yang ditemukan sebagai sumber daya titik akhir ke proxy Anda.

  • Rahasia —Ini termasuk, tetapi tidak terbatas pada, kunci enkripsi dan TLS sertifikat Anda. Saat menggunakan AWS Certificate Manager sebagai sumber untuk sertifikat klien dan server, App Mesh mengirimkan sertifikat publik dan pribadi ke proxy Anda sebagai sumber daya rahasia.

App Mesh menggunakan skema yang konsisten untuk memberi nama sumber daya Envoy yang dapat Anda gunakan untuk menghubungkan kembali ke mesh Anda.

Memahami skema penamaan untuk pendengar dan cluster penting dalam memahami metrik Envoy di App Mesh.

Nama pendengar

Pendengar diberi nama menggunakan format berikut:

lds_<traffic direction>_<listener IP address>_<listening port>

Anda biasanya akan melihat pendengar berikut dikonfigurasi di Utusan:

  • lds_ingress_0.0.0.0_15000

  • lds_egress_0.0.0.0_15001

Dengan menggunakan CNI plugin Kubernetes atau aturan tabel IP, lalu lintas di ECS tugas Amazon atau pod Kubernetes diarahkan ke port dan. 15000 15001 App Mesh mengonfigurasi Envoy dengan dua pendengar ini untuk menerima lalu lintas masuk (masuk) dan keluar (keluar). Jika Anda tidak memiliki listener yang dikonfigurasi pada node virtual Anda, Anda seharusnya tidak melihat pendengar ingress.

Nama cluster

Sebagian besar cluster menggunakan format berikut:

cds_<traffic direction>_<mesh name>_<virtual node name>_<protocol>_<port>

Node virtual yang berkomunikasi dengan layanan Anda masing-masing memiliki klaster mereka sendiri. Seperti disebutkan sebelumnya, App Mesh membuat cluster untuk layanan yang berjalan di sebelah Envoy sehingga proxy dapat mengirim lalu lintas masuk ke sana.

Misalnya, jika Anda memiliki node virtual bernama my-virtual-node yang mendengarkan lalu lintas http pada port 8080 dan node virtual tersebut berada dalam mesh bernamamy-mesh, App Mesh membuat cluster bernamacds_ingress_my-mesh_my-virtual-node_http_8080. Cluster ini berfungsi sebagai tujuan untuk lalu lintas ke dalam my-virtual-node wadah layanan.

App Mesh juga dapat membuat jenis cluster khusus tambahan berikut. Cluster lain ini tidak selalu sesuai dengan sumber daya yang Anda definisikan secara eksplisit di mesh Anda.

  • Cluster digunakan untuk menjangkau AWS layanan lain. Jenis ini memungkinkan mesh Anda menjangkau sebagian besar AWS layanan secara default:cds_egress_<mesh name>_amazonaws.

  • Cluster digunakan untuk melakukan routing untuk gateway virtual. Ini umumnya dapat diabaikan dengan aman:.

    • Untuk pendengar tunggal: cds_ingress_<mesh name>_<virtual gateway name>_self_redirect_<protocol>_<port>

    • Untuk beberapa pendengar: cds_ingress_<mesh name>_<virtual gateway name>_self_redirect_<ingress_listener_port>_<protocol>_<port>

  • Cluster yang merupakan titik akhir yang dapat Anda tentukan, sepertiTLS, saat Anda mengambil rahasia menggunakan Envoy's Secret Discovery Service:. static_cluster_sds_unix_socket

Contoh metrik aplikasi

Untuk mengilustrasikan metrik yang tersedia di Envoy, contoh aplikasi berikut memiliki tiga node virtual. Layanan virtual, router virtual, dan rute di mesh dapat diabaikan karena tidak tercermin dalam metrik Envoy. Dalam contoh ini, semua layanan mendengarkan lalu lintas http pada port 8080.

Diagram showing Envoy proxies in product-details, cart, and website services of an online store mesh.

Sebaiknya tambahkan variabel lingkungan ENABLE_ENVOY_STATS_TAGS=1 ke container proxy Envoy yang berjalan di mesh Anda. Ini menambahkan dimensi metrik berikut ke semua metrik yang dipancarkan oleh proxy:

  • appmesh.mesh

  • appmesh.virtual_node

  • appmesh.virtual_gateway

Tag ini diatur ke nama mesh, node virtual, atau gateway virtual untuk memungkinkan metrik pemfilteran menggunakan nama sumber daya di mesh Anda.

Nama sumber daya

Proxy node virtual situs web memiliki sumber daya berikut:

  • Dua pendengar untuk lalu lintas masuk dan keluar:

    • lds_ingress_0.0.0.0_15000

    • lds_egress_0.0.0.0_15001

  • Dua cluster jalan keluar, mewakili dua ujung belakang simpul virtual:

    • cds_egress_online-store_product-details_http_8080

    • cds_egress_online-store_cart_http_8080

  • Kluster ingress untuk wadah layanan situs web:

    • cds_ingress_online-store_website_http_8080

Contoh metrik pendengar

  • listener.0.0.0.0_15000.downstream_cx_active—Jumlah koneksi jaringan masuk aktif ke Utusan.

  • listener.0.0.0.0_15001.downstream_cx_active—Jumlah koneksi jaringan keluar aktif ke Utusan. Koneksi yang dibuat oleh aplikasi Anda ke layanan eksternal termasuk dalam hitungan ini.

  • listener.0.0.0.0_15000.downstream_cx_total—Jumlah total koneksi jaringan ingress ke Envoy.

  • listener.0.0.0.0_15001.downstream_cx_total—Jumlah total koneksi jaringan keluar ke Utusan.

Untuk set lengkap metrik pendengar, lihat Statistik dalam dokumentasi Utusan.

Contoh metrik cluster

  • cluster_manager.active_clusters—Jumlah total cluster yang telah dibuat oleh Utusan setidaknya satu koneksi.

  • cluster_manager.warming_clusters—Jumlah total cluster yang belum terhubung dengan Utusan.

Metrik cluster berikut menggunakan format. cluster.<cluster name>.<metric name> Nama-nama metrik ini unik untuk contoh aplikasi dan dipancarkan oleh wadah Utusan situs web:

  • cluster.cds_egress_online-store_product-details_http_8080.upstream_cx_totalJumlah total koneksi antara situs web dan detail produk.

  • cluster.cds_egress_online-store_product-details_http_8080.upstream_cx_connect_failJumlah total koneksi yang gagal antara situs web dan detail produk.

  • cluster.cds_egress_online-store_product-details_http_8080.health_check.failureJumlah total pemeriksaan kesehatan yang gagal antara situs web dan detail produk.

  • cluster.cds_egress_online-store_product-details_http_8080.upstream_rq_totalJumlah total permintaan yang dibuat antara situs web dan detail produk.

  • cluster.cds_egress_online-store_product-details_http_8080.upstream_rq_timeWaktu yang dibutuhkan oleh permintaan yang dibuat antara situs web dan detail produk.

  • cluster.cds_egress_online-store_product-details_http_8080.upstream_rq_2xx—Jumlah tanggapan HTTP 2xx yang diterima oleh situs web dari detail produk.

Untuk set lengkap HTTP metrik, lihat Statistik dalam dokumentasi Utusan.

Metrik server manajemen

Envoy juga memancarkan metrik yang terkait dengan koneksinya ke bidang kontrol App Mesh, yang bertindak sebagai server manajemen Envoy. Kami menyarankan untuk memantau beberapa metrik ini sebagai cara untuk memberi tahu Anda ketika proxy Anda menjadi tidak sinkron dari bidang kontrol untuk waktu yang lama. Hilangnya konektivitas ke bidang kontrol atau pembaruan yang gagal mencegah proxy Anda menerima konfigurasi baru dari App Mesh, termasuk perubahan mesh yang dilakukan melalui App Mesh. APIs

  • control_plane.connected_state—Metrik ini diatur ke 1 saat proxy terhubung ke App Mesh, jika tidak maka 0.

  • *.update_rejected—Jumlah total pembaruan konfigurasi yang ditolak oleh Utusan. Ini biasanya karena kesalahan konfigurasi pengguna. Misalnya, jika Anda mengonfigurasi App Mesh untuk membaca TLS sertifikat dari file yang tidak dapat dibaca oleh Envoy, pembaruan yang berisi jalur ke sertifikat tersebut akan ditolak.

    • Untuk Listener yang diperbarui ditolak, statistiknya akan. listener_manager.lds.update_rejected

    • Untuk Cluster yang diperbarui ditolak, statistiknya akancluster_manager.cds.update_rejected.

  • *.update_success—Jumlah pembaruan konfigurasi yang berhasil dibuat oleh App Mesh ke proxy Anda. Ini termasuk payload konfigurasi awal yang dikirim saat container Envoy baru dimulai.

    • Untuk keberhasilan yang diperbarui Listener, statistiknya akan. listener_manager.lds.update_success

    • Untuk keberhasilan yang diperbarui Cluster, statistiknya akancluster_manager.cds.update_success.

Untuk kumpulan metrik server manajemen, lihat Server Manajemen dalam dokumentasi Utusan.