Pemantauan Aplikasi ARMS memungkinkan Anda memantau aplikasi Go di lingkungan Kubernetes generik, termasuk topologi aplikasi, panggilan API, transaksi abnormal, transaksi lambat, dan analisis SQL. Topik ini menjelaskan cara menghubungkan aplikasi Anda di lingkungan Kubernetes generik ke Pemantauan Aplikasi ARMS.
Topik ini tidak berlaku jika kluster Kubernetes Anda dikelola oleh Container Service for Kubernetes (ACK). Untuk kluster ACK, lihat Instal probe Go untuk kluster ACK dan Container Compute Service (ACS) menggunakan komponen ack-onepilot.
Prasyarat
-
Pastikan versi kube-apiserver kluster Kubernetes Anda adalah 1.10 atau lebih baru.
-
Jika kluster Kubernetes Anda tidak dideploy di Alibaba Cloud, pastikan kluster tersebut dapat mengakses Internet, atau hubungkan VPC Alibaba Cloud ke kluster Anda menggunakan Cloud Enterprise Network (CEN) atau metode lainnya.
-
Pastikan versi aplikasi Go Anda adalah 1.18 atau lebih baru.
Langkah 1: Kompilasi gambar aplikasi Golang
(Opsional) Jika proyek Anda menggunakan mode vendor untuk kompilasi atau parameter waktu kompilasi mencakup
-mod=vendor, periksa hal berikut:Periksa apakah file go.mod berisi dependensi `google.golang.org/protobuf`, baik secara langsung maupun tidak langsung. Jika tidak, ikuti petunjuk berikut:
Periksa apakah parameter waktu kompilasi mencakup
-mod=vendor. Jika tidak, tambahkan-mod=vendorsetelahgo build.
Gunakan perintah
wgetuntuk mengunduh tool waktu kompilasi instgo. Pilih alamat unduhan berdasarkan lingkungan kompilasi dan wilayah mesin Anda.Perhatikan bahwa instgo diperbarui secara otomatis pada waktu kompilasi. Simpan instgo di folder tempat Anda memiliki izin modifikasi.
CatatanInstgo adalah tool waktu kompilasi yang disediakan oleh ARMS untuk aplikasi Go. Setelah Anda mengompilasi proyek Go dengan instgo, ARMS dapat memantau aplikasi Anda.
Tool waktu kompilasi ini sama untuk semua wilayah. Jika lingkungan Anda dapat mengakses Object Storage Service (OSS) melalui internet, Anda dapat menggunakan alamat unduhan internet untuk China (Hangzhou) sesuai sistem operasi dan arsitektur Anda.
Berikan izin eksekusi kepada tool waktu kompilasi.
Linux/Mac
# Berikan izin eksekusi chmod +x instgoWindows
Tidak diperlukan izin eksekusi untuk Windows.
Dapatkan LicenseKey dan konfigurasikan parameter waktu kompilasi.
PentingJika Anda melewatkan langkah ini, instgo akan masuk ke mode dev dan menginstal versi terbaru agen ARMS secara default. Untuk menerapkan aplikasi Anda di lingkungan produksi, Anda harus mengonfigurasi parameter berikut.
Dapatkan LicenseKey dengan memanggil operasi OpenAPI DescribeTraceLicenseKey.
Pada halaman DescribeTraceLicenseKey, klik Debug. Pilih wilayah dan klik Initiate Call untuk mendapatkan LicenseKey.

Setelah mendapatkan LicenseKey, gunakan perintah
setuntuk mengonfigurasi parameter waktu kompilasi.instgo set --licenseKey=${YourLicenseKey}
Tambahkan `instgo` sebagai awalan pada perintah kompilasi asli Anda dan jalankan perintah tersebut.
instgo go build {arg1} {arg2} {arg3}Jika Anda menggunakan `go install` untuk mengompilasi proyek, Anda juga dapat menambahkan `instgo` sebagai awalan pada perintah tersebut.
Buat gambar menggunakan file biner yang dikompilasi pada langkah sebelumnya.
Langkah 2: Instal Helm 3
Langkah 3: Instal probe
Pemantauan Aplikasi ARMS hanya mendukung dua tipe aplikasi: tanpa status (deployment) dan stateful (StatefulSet). Metode koneksi sama untuk kedua tipe aplikasi tersebut. Bagian ini menggunakan contoh aplikasi tanpa status (deployment) di lingkungan Kubernetes.
-
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 sesuai 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: Alamat repositori image untuk ack-onepilot. -
cluster_id: ID kluster Kubernetes kustom. Ini merupakan pengidentifikasi unik untuk kluster Anda. Kami merekomendasikan format<uid>-<clusterid>. -
accessKeydanaccessKeySecret: ID AccessKey dan Rahasia AccessKey Akun Alibaba Cloud (akun root) Anda. Untuk petunjuknya, lihat Buat AccessKey.PentingPastikan akun Alibaba Cloud (akun root) Anda memiliki izin AliyunARMSFullAccess dan AliyunSTSAssumeRoleAccess.
-
uid: ID Akun Alibaba Cloud (akun root) Anda. Anda dapat menemukan UID Anda dengan mengarahkan kursor ke foto profil di pojok kanan atas Konsol Manajemen Alibaba Cloud. -
region_id: ID wilayah Alibaba Cloud. Untuk informasi selengkapnya tentang 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 aplikasi Anda
-
Jalankan perintah berikut untuk melihat file YAML aplikasi tanpa status (deployment) target Anda.
kubectl get deployment {deployment-name} -o yamlCatatanJika Anda tidak mengetahui
{deployment-name}, Anda dapat menjalankan perintah berikut untuk mencantumkan semua deployment. Kemudian, temukan aplikasi tanpa status (deployment) target Anda di output dan lihat file YAML-nya.kubectl get deployments --all-namespaces -
Edit file YAML aplikasi tanpa status (deployment) target Anda.
kubectl edit deployment {deployment-name} -o yaml -
Tambahkan konten berikut di bawah bagian
spec.template.metadatadalam file YAML.labels: aliyun.com/app-language: "golang" # Wajib untuk aplikasi Go. Menunjukkan bahwa ini adalah aplikasi Go. armsPilotAutoEnable: "on" armsPilotCreateAppName: "<your-deployment-name>" # Ganti <your-deployment-name> dengan nama aplikasi Anda.Untuk membuat aplikasi tanpa status (deployment) baru di lingkungan Kubernetes Anda dan menghubungkannya ke ARMS, Anda dapat menggunakan file YAML lengkap berikut:
Hasil
Sekitar satu menit setelah Anda menyelesaikan langkah-langkah ini, koneksi berhasil jika aplikasi Go Anda muncul di halaman Konsol ARMS dan sedang melaporkan data.
