Application Real-Time Monitoring Service (ARMS) secara otomatis menginstrumentasi aplikasi Java yang berjalan di Container Service for Kubernetes (ACK) dan Container Compute Service (ACS). Instal komponen ack-onepilot di kluster Anda dan tambahkan tiga label ke Deployment Anda. ARMS kemudian mengumpulkan jejak (traces), topologi aplikasi, metrik panggilan API, serta data error dan latensi tanpa perubahan kode apa pun.
Langkah instalasi untuk ACK dan ACS identik. Panduan ini menggunakan ACK sebagai contoh.
Cara kerja
Komponen ack-onepilot (ARMS Agent Onboarding Assistant) berjalan sebagai controller di kluster Anda. Saat pod yang diberi label dimulai, ack-onepilot secara otomatis menyuntikkan agen Java ARMS ke dalam pod tersebut. Ketika rilis versi agen baru tersedia, ack-onepilot akan melakukan upgrade agen pada restart aplikasi berikutnya. Untuk mengunci versi tertentu, lihat Mengontrol versi agen secara manual.
Untuk detail mekanisme penyuntikan, lihat Cara kerja ack-onepilot.
Komponen arms-pilot lama tidak lagi dipelihara. ack-onepilot adalah penggantinya dan sepenuhnya kompatibel — migrasi tidak memerlukan perubahan pada konfigurasi aplikasi Anda. Untuk langkah migrasi, lihat Uninstal arms-pilot dan instal ack-onepilot.
Ikhtisar proses
Menyiapkan pemantauan ARMS terdiri dari tiga langkah:
Instal ack-onepilot — Deploy komponen pemantauan melalui Konsol ACK.
Grant ARMS permissions — Konfigurasikan autentikasi kluster untuk ARMS (berbeda-beda tergantung jenis kluster).
Beri label Deployment Anda — Tambahkan tiga label ke templat pod Anda untuk mengaktifkan auto-instrumentation.
Prasyarat
Sebelum memulai, pastikan Anda telah memiliki:
Kluster ACK atau ACS:
Namespace di kluster (lihat Kelola namespace dan kuota). Panduan ini menggunakan
arms-demosebagai contoh namespace.Versi JDK yang memenuhi persyaratan (lihat Versi JDK yang didukung)
Memori heap maksimum JVM (
-Xmx) lebih besar dari 256 MB
Langkah 1: Instal ack-onepilot
Masuk ke Konsol ACK. Pada halaman Clusters, klik nama kluster.
Di panel navigasi kiri, klik Add-ons. Cari ack-onepilot.
Pada kartu ack-onepilot, klik Install.
Pada kotak dialog, pertahankan nilai parameter default dan klik OK.
ack-onepilot mendukung hingga 1.000 pod secara default. Untuk setiap tambahan 1.000 pod, alokasikan 0,5 core CPU dan 512 MB memori ke komponen tersebut.
Setelah instalasi, Anda dapat melakukan upgrade, konfigurasi, atau uninstal ack-onepilot dari halaman Add-ons.
Langkah 2: Berikan izin ARMS
Izin yang diperlukan bergantung pada jenis kluster Anda. Temukan jenis kluster Anda dan ikuti petunjuk yang sesuai.
Kluster ACK yang dikelola
Kluster ACK yang dikelola dengan ARMS Addon Token sudah diotorisasi secara otomatis. Periksa apakah token tersebut ada sebelum melanjutkan.
Jika kluster memiliki ARMS Addon Token, ARMS melakukan otorisasi tanpa password pada kluster tersebut. ARMS Addon Token mungkin tidak tersedia di beberapa kluster ACK yang dikelola. Kami menyarankan Anda memeriksa keberadaan ARMS Addon Token sebelum menggunakan ARMS untuk memantau aplikasi di kluster tersebut.
Kluster khusus ACK dan kluster terdaftar
Kluster khusus ACK dan kluster terdaftar ACK One memerlukan dua hal:
Akun Alibaba Cloud Anda harus memiliki izin AliyunARMSFullAccess dan AliyunSTSAssumeRoleAccess. Lihat Kelola izin untuk Pengguna RAM.
Komponen ack-onepilot harus memiliki pasangan AccessKey dengan izin ARMS.
Berikan pasangan AccessKey ke ack-onepilot menggunakan salah satu metode berikut.
Metode 1: Tentukan pasangan AccessKey di Helm
Masuk ke Konsol ACK. Klik Clusters, lalu klik nama kluster.
Di panel navigasi kiri, pilih Applications > Helm. Klik Update di samping ack-onepilot.
Ganti nilai
accessKeydanaccessKeySecretdengan ID AccessKey dan Rahasia AccessKey Anda. Klik OK.CatatanUntuk mendapatkan pasangan AccessKey, lihat Buat pasangan AccessKey.
admissionRegistration: failurePolicy: Ignore onlyLabel: false configuration: downloadTimeout: "90" controller: accessKey: __ACCESSKEY__ accessKeySecret: __ACCESSKEY_SECRET__ accessSource: ACSKS cluster_id: c0c3c907a2e30 clusterProfile: __ACK_CLUSTER_PROFILE__ clusterType: __ACK_CLUSTER_TYPE__ imagePullPolicy: Always is_finance: <no value> logLevel: 1Mulai ulang Penyebaran aplikasi.
Metode 2: Gunakan Secret Kubernetes
Masuk ke Konsol ACK. Klik Clusters, lalu klik nama kluster.
Di panel navigasi kiri, pilih Configurations > Secrets. Pilih namespace ack-onepilot dan buat Secret untuk menyimpan ID AccessKey dan Rahasia AccessKey Anda.
CatatanUntuk mendapatkan pasangan AccessKey, lihat Buat pasangan AccessKey.
Saat membuat Secret, atur Name menjadi
ack-onepilot-aksk, pilih Opaque untuk Type, dan tambahkan dua baris ke tabel data: kunciaksesuai dengan ID AccessKey Anda, dan kuncisksesuai dengan Rahasia AccessKey Anda.Di panel navigasi kiri, pilih Workloads > Deployments. Klik komponen ack-onepilot (biasanya bernama
ack-onepilot-ack-onepilotdi namespaceack-onepilot).Di pojok kanan atas, klik Edit. Di bagian Environment Variables, tambahkan dua variabel berikut dan referensikan nilai Secret tersebut. Klik OK.
Environment variable
Description
ONE_PILOT_ACCESSKEYMerujuk ke ID AccessKey yang disimpan di Secret
ONE_PILOT_ACCESSKEY_SECRETMerujuk ke Rahasia AccessKey yang disimpan di Secret
Kluster serverless ACK (ASK) dan kluster terintegrasi ECI
Lengkapi otorisasi di halaman Resource Access Authorization, lalu restart semua pod komponen ack-onepilot.
Langkah 3: Beri label Deployment Anda
Tambahkan tiga label ke bagian spec.template.metadata.labels YAML Deployment Anda untuk mengaktifkan pemantauan ARMS:
labels:
armsPilotAutoEnable: "on"
armsPilotCreateAppName: "<your-deployment-name>" # Ganti <your-deployment-name> dengan nama aplikasi Anda.
aliyun.com/app-language: javaLabel | Value | Description |
|
| Mengaktifkan penyuntikan agen otomatis untuk pod |
|
| Nama aplikasi yang ditampilkan di Konsol ARMS. Ganti dengan nama aplikasi Anda. |
|
| Menentukan bahasa aplikasi untuk agen |
Label harus berada di spec.template.metadata.labels (templat pod), bukan di metadata.labels (metadata Deployment). Menempatkan label di lokasi yang salah merupakan penyebab umum data pemantauan tidak muncul.
Terapkan label ke Deployment yang sudah ada
Masuk ke Konsol ACK. Klik Clusters, lalu pilih nama kluster.
Di panel navigasi kiri, pilih Workloads > Deployments.
Pada halaman Stateless, klik
> YAML Edit di samping aplikasi target.Tambahkan tiga label ke
spec.template.metadata.labelsdan klik Update.
Untuk informasi selengkapnya tentang keamanan aplikasi, lihat Apa itu keamanan aplikasi?.
Untuk informasi selengkapnya tentang penagihan keamanan aplikasi, lihat Ikhtisar penagihan.
apiVersion: v1
kind: Namespace
metadata:
name: arms-demo
---
apiVersion: apps/v1 # for versions before 1.8.0 use apps/v1beta1
kind: Deployment
metadata:
name: arms-springboot-demo
namespace: arms-demo
labels:
app: arms-springboot-demo
spec:
replicas: 2
selector:
matchLabels:
app: arms-springboot-demo
template:
metadata:
labels:
app: arms-springboot-demo
armsPilotAutoEnable: "on"
armsPilotCreateAppName: "arms-k8s-demo"
spec:
containers:
- resources:Buat Deployment baru dengan pemantauan aktif
Pada halaman Stateless, klik Create from YAML dan sertakan label dalam definisi Deployment Anda.
Verifikasi data pemantauan
Pada halaman Stateless, klik
> ARMS Console di kolom Actions aplikasi target untuk melihat detail pemantauan aplikasi.
FAQ
Mengapa data pemantauan tidak normal setelah saya mengubah kluster atau namespace aplikasi?
Bagaimana cara menguninstal arms-pilot dan menginstal ack-onepilot?
Bagaimana menggunakan ack-onepilot saat koneksi VPC tidak dapat dibuat?
Mengapa agen ARMS gagal diinstal untuk aplikasi di kluster ACK?
Mengapa akhiran nama aplikasi hilang setelah saya memperbarui aplikasi?