Melihat latensi permintaan aplikasi
Pelajari cara mengumpulkan dan melihat data latensi dari aplikasi Anda:
Buat cluster Google Kubernetes Engine (GKE) menggunakan Google Cloud CLI.
Download dan deploy aplikasi contoh ke cluster Anda.
Buat rekaman aktivitas dengan mengirim permintaan HTTP ke aplikasi contoh.
Lihat informasi latensi rekaman aktivitas yang Anda buat.
Jalankan pembersihan.
Untuk mengikuti panduan langkah demi langkah untuk tugas ini langsung di Google Cloud konsol, klik Pandu saya:
Sebelum memulai
-
Batasan keamanan yang ditentukan oleh organisasi mungkin mencegah Anda menyelesaikan langkah-langkah berikut. Untuk mengetahui informasi pemecahan masalah, lihat Mengembangkan aplikasi di lingkungan Google Cloud yang terbatas.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Jika Anda menggunakan project yang sudah ada untuk panduan ini, pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini. Jika berhasil membuat project baru, berarti Anda sudah memiliki izin yang diperlukan.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Google Kubernetes Engine and Cloud Trace APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Jika Anda menggunakan project yang sudah ada untuk panduan ini, pastikan Anda memiliki izin yang diperlukan untuk menyelesaikan panduan ini. Jika berhasil membuat project baru, berarti Anda sudah memiliki izin yang diperlukan.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Google Kubernetes Engine and Cloud Trace APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles. -
Kubernetes Engine Admin (
roles/container.admin) -
Cloud Trace User (
roles/cloudtrace.user) -
Service Account User (
roles/iam.serviceAccountUser) -
Service Usage Admin (
roles/serviceusage.serviceUsageAdmin) Di toolbar, klik terminal
Activate Cloud Shell , lalu lakukan langkah-langkah berikut di Cloud Shell.Membuat cluster:
gcloud container clusters create cloud-trace-demo --zone us-central1-cPerintah sebelumnya, yang memerlukan waktu beberapa menit untuk diselesaikan, membuat cluster standar dengan nama
cloud-trace-demodi zonaus-central1-c.Konfigurasi
kubectlagar otomatis memperbarui kredensialnya untuk menggunakan identitas yang sama dengan Google Cloud CLI:gcloud container clusters get-credentials cloud-trace-demo --zone us-central1-cVerifikasi akses ke cluster Anda:
kubectl get nodesContoh output perintah ini adalah:
NAME STATUS ROLES AGE VERSION gke-cloud-trace-demo-default-pool-063c0416-113s Ready <none> 78s v1.22.12-gke.2300 gke-cloud-trace-demo-default-pool-063c0416-1n27 Ready <none> 79s v1.22.12-gke.2300 gke-cloud-trace-demo-default-pool-063c0416-frkd Ready <none> 78s v1.22.12-gke.2300Clone aplikasi Python dari GitHub:
git clone https://github.com/GoogleCloudPlatform/python-docs-samples.gitJalankan perintah berikut untuk men-deploy aplikasi contoh:
cd python-docs-samples/trace/cloud-trace-demo-app-opentelemetry && ./setup.shSkrip
setup.shmemerlukan waktu beberapa menit hingga selesai.Skrip mengonfigurasi tiga layanan menggunakan image bawaan, lalu menunggu semua resource disediakan. Beban kerja diberi nama
cloud-trace-demo-a,cloud-trace-demo-b, dancloud-trace-demo-c.Contoh output perintah ini adalah:
deployment.apps/cloud-trace-demo-a is created service/cloud-trace-demo-a is created deployment.apps/cloud-trace-demo-b is created service/cloud-trace-demo-b is created deployment.apps/cloud-trace-demo-c is created service/cloud-trace-demo-c is created Wait for load balancer initialization complete...... Completed.-
Di konsol Google Cloud , buka halaman Trace explorer:
Anda juga dapat menemukan halaman ini dengan menggunakan kotak penelusuran.
Screenshot berikut menunjukkan hasil menjalankan perintah
curlbeberapa kali. Grafik menampilkan data latensi gabungan untuk rentang, yang mendeskripsikan sub-operasi rekaman aktivitas.
.
Untuk melihat rekaman aktivitas secara mendetail, pilih rentang di grafik atau baris di tabel.
Dialog detail rekaman aktivitas akan terbuka, seperti yang ditunjukkan dalam screenshot berikut:
Diagram Gantt menampilkan informasi tentang rekaman aktivitas yang dipilih. Baris pertama dalam diagram Gantt adalah untuk rekaman aktivitas, dan setiap baris berikutnya adalah rentang dalam rekaman aktivitas.
Untuk melihat informasi mendetail tentang rentang, di diagram Gantt, pilih rentang.
Aplikasi mengimpor beberapa paket OpenTelemetry:
Aplikasi ini menginstrumentasi permintaan web dengan konteks trace dan secara otomatis melacak handler Flask dan permintaan ke layanan lain:
Aplikasi mengonfigurasi pengekspor Cloud Trace sebagai penyedia trace, yang menyebarkan konteks trace dalam format Cloud Trace:
Cuplikan kode berikut menunjukkan cara mengirim permintaan di Python. OpenTelemetry secara implisit menyebarkan konteks rekaman aktivitas untuk Anda dengan permintaan keluar Anda:
kubectlmengambil alamat IP layanan yang bernamacloud-trace-demo-a.- Kemudian, perintah
curlmengirim permintaan HTTP ke layanana. - Layanan
amenerima permintaan HTTP dan mengirim permintaan ke layananb. - Layanan
bmenerima permintaan HTTP dan mengirim permintaan ke layananc. - Layanan
cmenerima permintaan HTTP dari layananbdan menampilkan stringHello, I am service Cke layananb. - Layanan
bmenerima respons dari layananc, menambahkannya ke stringAnd I am service B, dan menampilkan hasilnya ke layanana. - Layanan
amenerima respons dari layananbdan menambahkannya ke stringHello, I am service A. - Respons dari layanan
aakan dicetak di Cloud Shell.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk membuat cluster Google Kubernetes Engine dan melihat rentang rekaman aktivitas, minta administrator untuk memberi Anda peran IAM berikut di project Anda:
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Membuat cluster GKE
Panduan ini membuat cluster GKE standar. Jika Anda menggunakan mode Autopilot untuk Google Kubernetes Engine atau jika Anda mengaktifkan Workload Identity Federation for GKE, maka Anda harus mengonfigurasi aplikasi Anda untuk menggunakan Workload Identity Federation for GKE.
Mendownload dan men-deploy aplikasi
Download dan deploy aplikasi Python, yang menggunakan framework Flask dan paket OpenTelemetry. Aplikasi ini dijelaskan di bagian Tentang aplikasi di halaman ini.
Di Cloud Shell, lakukan hal berikut:
Membuat data rekaman aktivitas
Trace menjelaskan waktu yang dibutuhkan aplikasi untuk menyelesaikan satu operasi.
Untuk membuat rekaman aktivitas, di Cloud Shell, jalankan perintah berikut:
curl $(kubectl get svc -o=jsonpath='{.items[?(@.metadata.name=="cloud-trace-demo-a")].status.loadBalancer.ingress[0].ip}')
Respons perintah sebelumnya akan terlihat seperti berikut:
Hello, I am service A
And I am service B
Hello, I am service C
Anda dapat menjalankan perintah curl beberapa kali untuk menghasilkan beberapa rekaman aktivitas.
Melihat data latensi
Tentang aplikasi
Aplikasi contoh yang digunakan dalam panduan memulai ini tersedia di repositori GitHub. Repositori ini berisi informasi tentang cara menggunakan aplikasi di lingkungan selain Cloud Shell. Aplikasi contoh ditulis dalam Python, menggunakan framework Flask dan paket OpenTelemetry, serta dieksekusi di cluster GKE.
Panduan ini membuat cluster GKE standar. Jika Anda menggunakan mode Autopilot untuk Google Kubernetes Engine atau jika Anda mengaktifkan Workload Identity Federation for GKE, maka Anda harus mengonfigurasi aplikasi Anda untuk menggunakan Workload Identity Federation for GKE.
Instrumentasi
File app.py di repositori GitHub,
berisi instrumentasi yang diperlukan untuk merekam dan mengirimkan data
pelacakan ke project Google Cloud Anda:
Cara kerja aplikasi
Agar lebih jelas, di bagian ini, cloud-trace-demo tidak disertakan dalam nama layanan. Misalnya, layanan cloud-trace-demo-c dirujuk sebagai c.
Aplikasi ini membuat tiga layanan bernama a, b, dan c. Layanan a dikonfigurasi untuk memanggil layanan b, layanan b dikonfigurasi untuk memanggil layanan c.
Untuk mengetahui detail konfigurasi layanan, lihat file YAML di
repositori GitHub.
Saat Anda mengirim permintaan HTTP ke layanan a dalam panduan memulai ini,
Anda menggunakan perintah curl berikut:
curl $(kubectl get svc -o=jsonpath='{.items[?(@.metadata.name=="cloud-trace-demo-a")].status.loadBalancer.ingress[0].ip}')
Perintah curl berfungsi sebagai berikut:
Pembersihan
Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.
Jika Anda membuat project baru dan tidak lagi memerlukannya, hapus project tersebut.
Jika Anda menggunakan project yang sudah ada, lakukan hal berikut:
Untuk menghapus cluster, jalankan perintah berikut di Cloud Shell:
gcloud container clusters delete cloud-trace-demo --zone us-central1-c
Langkah berikutnya
- Untuk mengetahui informasi tentang bahasa dan platform yang didukung, lihat Ringkasan Cloud Trace.
Untuk mengetahui detail tentang cara menginstrumentasikan aplikasi Anda, lihat:
Untuk mengetahui informasi selengkapnya tentang jendela Trace Explorer, lihat Menemukan dan melihat rekaman aktivitas.
Untuk mempelajari lebih lanjut cara mengelola cluster GKE, lihat kubectl.