Anda dapat menggunakan Application Real-Time Monitoring Service (ARMS) untuk memantau aplikasi Go yang berjalan di lingkungan Kubernetes tujuan umum. Layanan ini memungkinkan Anda memantau metrik seperti topologi aplikasi, panggilan API, transaksi lambat, dan analisis SQL. Topik ini menjelaskan cara mengintegrasikan aplikasi Go di lingkungan Kubernetes tujuan umum dengan Pemantauan Aplikasi.
Topik ini tidak berlaku jika kluster Kubernetes Anda adalah kluster Alibaba Cloud Container Service for Kubernetes (ACK). Untuk menghubungkan kluster ACK ke ARMS, lihat Menginstal agen Go di kluster Container Service for Kubernetes (ACK) atau Container Compute Service (ACS) menggunakan komponen ack-onepilot.
Prasyarat
Komponen kube-apiserver di kluster Kubernetes Anda harus versi 1.10 atau lebih baru.
Jika kluster Kubernetes Anda tidak diterapkan di Alibaba Cloud, pastikan kluster tersebut dapat mengakses Internet. Atau, Anda dapat membuat koneksi jaringan antara Alibaba Cloud Virtual Private Cloud (VPC) dan kluster menggunakan metode seperti Cloud Enterprise Network (CEN).
Aplikasi Go Anda harus versi 1.18 atau lebih baru.
Langkah 1: Kompilasi citra aplikasi Golang
(Opsional) Jika proyek Anda menggunakan mode vendor untuk kompilasi atau parameter 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 kompilasi mencakup
-mod=vendor. Jika tidak, tambahkan-mod=vendorsetelahgo build.
Gunakan perintah
wgetuntuk mengunduh alat kompilasi instgo. Pilih alamat unduhan berdasarkan lingkungan kompilasi dan wilayah mesin Anda.Perhatikan bahwa instgo diperbarui secara otomatis saat kompilasi. Simpan instgo di folder tempat Anda memiliki izin modifikasi.
CatatanInstgo adalah alat kompilasi yang disediakan oleh ARMS untuk aplikasi Go. Setelah Anda mengompilasi proyek Go Anda dengan instgo, ARMS dapat memantau aplikasi Anda.
Alat kompilasi ini sama untuk semua wilayah. Jika lingkungan Anda dapat mengakses Object Storage Service (OSS) melalui internet, Anda dapat menggunakan alamat unduhan internet untuk Tiongkok (Hangzhou) sesuai sistem operasi dan arsitektur Anda.
Berikan izin eksekusi pada alat kompilasi.
Linux/Mac
# Berikan izin eksekusi chmod +x instgoWindows
Tidak diperlukan izin eksekusi untuk Windows.
Peroleh LicenseKey dan konfigurasikan parameter 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.
Peroleh LicenseKey dengan memanggil operasi OpenAPI DescribeTraceLicenseKey.
Di halaman DescribeTraceLicenseKey, klik Debug. Pilih wilayah dan klik Mulai Panggilan untuk memperoleh LicenseKey.

Setelah memperoleh LicenseKey, gunakan perintah
setuntuk mengonfigurasi parameter kompilasi.instgo set --licenseKey=${YourLicenseKey}
Tambahkan awalan `instgo` ke 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 awalan `instgo` ke perintah tersebut.
Buat citra menggunakan file biner yang dikompilasi pada langkah sebelumnya.
Langkah 2: Instal Helm 3
Langkah 3: Instal agen
Pemantauan Aplikasi mendukung aplikasi tanpa status (deployment) dan aplikasi berstatus (StatefulSets). Metode integrasi sama untuk kedua jenis aplikasi tersebut. Bagian ini menggunakan aplikasi tanpa status (deployment) sebagai contoh.
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.tgzEdit file values.yaml dalam paket instalasi. Ubah parameter berikut sesuai kebutuhan dan 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 citra ack-onepilot.cluster_id: ID kustom untuk kluster Kubernetes. ID ini harus unik. Format yang direkomendasikan adalah<uid>-<clusterid>.accessKeydanaccessKeySecret: ID AccessKey dan Rahasia AccessKey akun Alibaba Cloud Anda. Untuk informasi lebih lanjut tentang cara memperoleh pasangan Kunci Akses, lihat Membuat pasangan Kunci Akses.PentingPastikan izin AliyunARMSFullAccess dan AliyunSTSAssumeRoleAccess diberikan kepada akun Alibaba Cloud.
uid: ID akun Alibaba Cloud Anda. Untuk memperoleh ID tersebut, arahkan kursor ke gambar profil Anda di pojok kanan atas Konsol Manajemen Alibaba Cloud.region_id: ID wilayah Alibaba Cloud. Untuk informasi lebih lanjut tentang wilayah yang mendukung Pemantauan Aplikasi, lihat Wilayah yang didukung.
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: Ubah file YAML aplikasi
Jalankan perintah berikut untuk melihat file YAML dari aplikasi tanpa status target (deployment).
kubectl get deployment {deployment-name} -o yamlCatatanJika Anda tidak mengetahui
{deployment-name}, jalankan perintah berikut untuk melihat semua aplikasi tanpa status (deployment). Temukan deployment target dalam hasilnya, lalu lihat file YAML deployment target tersebut.kubectl get deployments --all-namespaceEdit file YAML dari aplikasi tanpa status target (deployment).
kubectl edit deployment {Deployment-name} -o yamlDalam file YAML, tambahkan konten berikut di bawah level
spec.template.metadata.labels: aliyun.com/app-language: "golang" # Diperlukan untuk aplikasi Go. Label ini menunjukkan bahwa aplikasi adalah aplikasi Go. armsPilotAutoEnable: "on" armsPilotCreateAppName: "<your-deployment-name>" # Ganti <your-deployment-name> dengan nama aplikasi Anda.Jika Anda ingin membuat aplikasi tanpa status baru (deployment) di lingkungan Kubernetes dan menghubungkannya ke ARMS, Anda dapat menggunakan file YAML lengkap berikut sebagai referensi:
Hasil
Integrasi berhasil jika, setelah sekitar satu menit, aplikasi Golang muncul di konsol ARMS pada halaman dan melaporkan data.
