Layanan Pemantauan Aplikasi Waktu Nyata (ARMS) memungkinkan Anda memantau aplikasi Go di lingkungan Kubernetes generik, termasuk topologi aplikasi, panggilan API, error, transaksi lambat, serta analisis SQL. Topik ini menjelaskan cara menghubungkan aplikasi tersebut ke Pemantauan Aplikasi ARMS.
Topik ini hanya berlaku untuk kluster Kubernetes non-ACK. Untuk kluster Container Service for Kubernetes (ACK), lihat Instal probe Go untuk kluster ACK dan Container Compute Service (ACS) menggunakan komponen ack-onepilot.
Prasyarat
-
Komponen kube-apiserver di kluster Kubernetes Anda harus menggunakan versi 1.10 atau lebih baru.
-
Jika kluster Kubernetes Anda tidak dideploy di Alibaba Cloud, kluster tersebut harus memiliki akses internet atau terhubung ke VPC Alibaba Cloud, misalnya melalui Cloud Enterprise Network (CEN).
-
Aplikasi Go Anda harus menggunakan versi 1.18 atau lebih baru.
Langkah 1: Kompilasi gambar aplikasi Golang
(Opsional) Jika proyek Anda menyertakan direktori `vendor` saat kompilasi, tambahkan
-mod=vendorsetelah perintahgo build.Anda dapat menggunakan perintah
wgetuntuk mengunduh tool kompilasi instgo. Pilih alamat unduhan berdasarkan lingkungan kompilasi dan wilayah mesin build Anda.Perhatikan bahwa instgo memicu pembaruan otomatis selama proses kompilasi. Simpan instgo di direktori tempat pengguna build memiliki izin menulis.
CatatanInstgo adalah tool kompilasi aplikasi Golang yang disediakan oleh ARMS. Setelah Anda mengompilasi proyek Golang menggunakan instgo, ARMS akan mulai memantau aplikasi Golang Anda.
Tool kompilasi yang diunduh untuk setiap wilayah identik. Jika lingkungan jaringan publik Anda dapat mengakses alamat OSS, gunakan alamat jaringan publik Hangzhou yang sesuai dengan sistem operasi dan arsitektur Anda untuk mendapatkan tool kompilasi.
Anda harus memberikan izin eksekusi kepada tool kompilasi.
Linux/Mac
# Berikan izin eksekusi chmod +x instgoWindows
Tidak diperlukan izin eksekusi di Windows.
(Opsional) Anda dapat mengonfigurasi LicenseKey atau UID sebagai parameter kompilasi.
PentingJika Anda melewati langkah ini, instgo akan menginstal versi terbaru probe ARMS secara default.
Anda dapat memperoleh LicenseKey menggunakan OpenAPI DescribeTraceLicenseKey.
Pada halaman dokumen DescribeTraceLicenseKey, klik Debug, pilih wilayah, lalu klik Initiate Call untuk memperoleh LicenseKey.

Anda dapat menggunakan perintah `set` untuk mengonfigurasi UID atau LicenseKey sebagai parameter kompilasi.
instgo set --uid={YourAliyunUid} // Membutuhkan instgo versi 1.4.5 atau lebih baru. UID adalah UID Akun Alibaba Cloud Anda. instgo set --licenseKey=${YourLicenseKey} // Konfigurasikan UID atau LicenseKey.
Tambahkan `instgo` sebagai awalan pada perintah kompilasi yang sudah ada, lalu jalankan kompilasi.
instgo go build {arg1} {arg2} {arg3}Jika Anda menggunakan `go install` untuk mengompilasi proyek Anda, Anda juga dapat menambahkan `instgo` sebagai awalan pada perintah tersebut sebelum menjalankannya.
Buat gambar menggunakan file biner yang dikompilasi pada langkah sebelumnya.
Langkah 2: Instal Helm 3
Langkah 3: Instal agen
Application Real-Time Monitoring Service (ARMS) hanya mendukung aplikasi tanpa status (Deployment) dan stateful (StatefulSet). Langkah onboarding-nya sama untuk keduanya. Contoh ini menunjukkan cara menghubungkan aplikasi tanpa status (Deployment) di Kubernetes ke ARMS.
-
Jalankan perintah
wgetberikut untuk mengunduh paket instalasi ack-onepilot.wget 'https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/ack-onepilot-5.1.1.tgz' -
Jalankan perintah berikut untuk mengekstrak paket instalasi ack-onepilot.
tar xvf ack-onepilot-5.1.1.tgz -
Edit file values.yaml dalam paket instalasi. Ubah parameter berikut agar sesuai dengan lingkungan Anda, lalu simpan file tersebut.
registry: registry-__ACK_REGION_ID__.ack.aliyuncs.com/acs/ cluster_id: __ACK_CLUSTER_ID__ accessKey: __ACCESSKEY__ accessKeySecret: __ACCESSKEY_SECRET__ uid: "__ACK_UID__" region_id: __ACK_REGION_ID__-
registry: Registri gambar untuk ack-onepilot. -
cluster_id: ID kluster kustom yang secara unik mengidentifikasi kluster Kubernetes Anda. Kami merekomendasikan format<uid>-<clusterid>. -
accessKeydanaccessKeySecret: ID AccessKey dan AccessKey Secret dari Akun Alibaba Cloud Anda (akun utama). Untuk memperolehnya, lihat Buat AccessKey.PentingPastikan akun utama memiliki izin AliyunARMSFullAccess dan AliyunSTSAssumeRoleAccess.
-
uid: ID Akun Alibaba Cloud Anda (akun utama). Anda dapat memperolehnya dengan mengarahkan kursor ke foto profil di pojok kanan atas konsol Alibaba Cloud. -
region_id: ID wilayah Alibaba Cloud. Untuk daftar wilayah yang didukung, lihat Wilayah yang tersedia.
-
-
Jalankan perintah berikut untuk menginstal ack-onepilot.
Jalankan perintah ini dari luar direktori paket instalasi ack-onepilot.
helm3 upgrade --install ack-onepilot ack-onepilot --namespace ack-onepilot --create-namespace
Langkah 4: Modifikasi file YAML Deployment
-
Jalankan perintah berikut untuk melihat file YAML Deployment target.
kubectl get deployment {deployment-name} -o yamlCatatanJika Anda tidak mengetahui
{deployment-name}, jalankan perintah berikut untuk mencantumkan semua Deployment. Kemudian, temukan nama Deployment target di output.kubectl get deployments --all-namespaces -
Edit file YAML Deployment target.
kubectl edit deployment {deployment-name} -o yaml -
Dalam file YAML, tambahkan konten berikut di bawah
spec.template.metadata.labels: aliyun.com/app-language: "golang" # Diperlukan untuk aplikasi Go. armsPilotAutoEnable: "on" armsPilotCreateAppName: "<your-deployment-name>" # Ganti <your-deployment-name> dengan nama aplikasi Anda.Jika Anda perlu membuat Deployment baru di lingkungan K8s Anda dan menghubungkannya ke ARMS, gunakan file YAML lengkap berikut:
Hasil
Integrasi berhasil jika aplikasi Go muncul di atau konsol ARMS di bawah dan mulai melaporkan data dalam waktu sekitar satu menit.