Anda dapat mengintegrasikan layanan Application Performance Monitoring (APM) dari Elasticsearch open source dengan Alibaba Cloud Elasticsearch untuk membangun sistem APM yang mendukung observabilitas layanan dan aplikasi. Topik ini menjelaskan cara menggunakan APM Server yang dikelola sendiri untuk mengumpulkan data ke Alibaba Cloud Elasticsearch.
Informasi latar belakang
Observabilitas adalah kemampuan untuk memahami kondisi infrastruktur, platform, dan aplikasi melalui pengukuran. Berbeda dengan pemantauan tradisional yang berfokus pada deteksi dan notifikasi masalah yang telah diketahui, observabilitas bertujuan memberikan penjelasan menyeluruh atas segala kejadian dalam sistem terdistribusi yang kompleks. Jika pemantauan berfokus pada kesehatan layanan selama dan setelah pengiriman perangkat lunak, observabilitas mencakup seluruh siklus hidup pengembangan dan operasi.
Tiga pilar observabilitas adalah log, metrik infrastruktur, dan Application Performance Monitoring (APM). APM menjembatani kesenjangan antara metrik dan log. Meskipun log dan metrik mencakup infrastruktur dan komponen secara luas, APM berfokus pada lapisan aplikasi. APM memungkinkan tim IT dan pengembang untuk memantau stack aplikasi mereka, termasuk pengalaman pengguna akhir. Dengan menambahkan APM ke sistem Anda, Anda dapat:
-
Memahami di mana layanan Anda menghabiskan waktu dan penyebab crash.
-
Memvisualisasikan interaksi layanan dan mengidentifikasi bottleneck.
-
Mendeteksi serta memperbaiki isu kinerja dan error secara proaktif.
-
Meningkatkan produktivitas tim pengembangan Anda.
-
Memantau pengalaman pengguna akhir di browser.
APM umumnya digunakan dalam skenario berikut:
-
Pemantauan pengalaman pengguna: Tingkatkan pengalaman pengguna dengan memantau perilaku pengguna, seperti interaksi dengan antarmuka web atau klien, serta mencatat waktu kejadian tersebut.
-
Arsitektur aplikasi runtime: Pahami dependensi layanan dan topologi jaringan dari interaksi aplikasi dalam arsitektur Anda.
-
Pemantauan transaksi bisnis: Hasilkan laporan SLA yang bermakna dan sajikan tren kinerja aplikasi dari perspektif bisnis.
-
Pemantauan komponen mendalam: Instal agent untuk memantau komponen middle-tier seperti server web, server aplikasi, dan antrian pesan. Pemantauan yang kuat menyediakan jalur eksekusi kode yang jelas, sebuah dimensi yang sering dikombinasikan dengan arsitektur runtime dalam produk APM.
-
Analisis dan pelaporan: Standarisasi dan sajikan metrik yang dikumpulkan dari aplikasi ke dalam tampilan terpadu mengenai data kinerja aplikasi.
Prasyarat
-
Anda telah membuat instans Alibaba Cloud Elasticsearch V7.10. Untuk informasi lebih lanjut, lihat Buat instans Alibaba Cloud Elasticsearch.
CatatanKami merekomendasikan mengaktifkan Indexing Service dan Openstore untuk mendukung ingest dan penyimpanan data volume tinggi yang hemat biaya untuk pemantauan kinerja aplikasi.
-
Anda telah membuat instans Alibaba Cloud ECS yang menjalankan sistem operasi Linux. Untuk informasi lebih lanjut, lihat Buat instans menggunakan wizard peluncuran kustom.
-
Anda telah menginstal lingkungan bahasa Go pada instans ECS.
CatatanTopik ini menggunakan APM agent untuk Go, yang memerlukan lingkungan bahasa Go.
Prosedur
Langkah 1: Bangun APM server
-
Sambungkan ke instans ECS.
Untuk informasi lebih lanjut, lihat Masuk ke instans Linux menggunakan Workbench.
CatatanOperasi dalam topik ini dilakukan menggunakan akun pengguna biasa.
-
Instal APM Server.
-
Unduh paket instalasi APM Server.
wget https://artifacts.elastic.co/downloads/apm-server/apm-server-7.10.2-linux-x86_64.tar.gz -
Ekstrak paket instalasi.
tar -zxf apm-server-7.10.2-linux-x86_64.tar.gz
-
-
Ubah konfigurasi APM Server.
-
Masuk ke direktori tempat APM Server diinstal.
cd apm-server-7.10.2-linux-x86_64/ -
Ubah file konfigurasi YML.
vim apm-server.ymlUbah file YML seperti pada contoh berikut.
apm-server: host: "0.0.0.0:8200" output.elasticsearch: hosts: ["es-cn-*****.elasticsearch.aliyuncs.com:9200"] username: "elastic" password: "[pwd]"Parameter
Deskripsi
apm-server
Titik akhir untuk APM Server. Nilai
hostharus diatur kealamat IP listening:portAPM Server. Pada contoh ini, diatur ke0.0.0.0:8200.output.elasticsearch
Konfigurasi output Elasticsearch.
-
hosts: Titik akhir publik atau internal instans Elasticsearch Anda. Untuk menemukan titik akhir tersebut, lihat Lihat informasi dasar instans.
PentingJika instans Elasticsearch dan instans ECS tempat APM Server diinstal berada dalam VPC yang sama, gunakan titik akhir internal. Jika tidak, Anda harus menggunakan titik akhir publik dan mengonfigurasi daftar putih alamat IP. Untuk informasi lebih lanjut, lihat Konfigurasikan daftar putih alamat IP publik atau internal untuk instans.
-
username: Username untuk mengakses instans Elasticsearch. Nilai default-nya adalah
elastic. Jika Anda menggunakan pengguna kustom, Anda harus menetapkan peran dan izin yang diperlukan. Untuk informasi lebih lanjut, lihat Gunakan peran X-Pack Elasticsearch untuk mengelola izin pengguna. -
password: Kata sandi untuk pengguna yang ditentukan. Kata sandi untuk pengguna
elasticditetapkan saat Anda membuat instans. Jika lupa, Anda dapat mengatur ulang. Untuk informasi lebih lanjut, lihat Atur ulang kata sandi akses instans.
-
-
-
Jalankan APM Server.
sudo nohup ./apm-server -e > apmserver.log 2>&1 &
Langkah 2: Konfigurasikan APM agent
Topik ini menggunakan Go sebagai contoh.
-
Instal APM agent.
-
Inisialisasi file go.mod.
sudo go mod init demo -
Instal paket APM Go agent.
sudo go get go.elastic.co/apm sudo go get go.elastic.co/apm/module/apmhttpCatatanError
golang.org xxxx: i/o timeoutmenunjukkan bahwagolang.orgtidak dapat diakses. Untuk mengatasinya, ubah sumber unduhan.
-
-
Konfigurasikan APM agent.
-
Buka file konfigurasi variabel lingkungan.
vim ~/.bash_profile -
Pada file konfigurasi, tambahkan pengaturan berikut untuk menginisialisasi APM agent. Kemudian, simpan perubahan tersebut.
# Tetapkan nama layanan. Karakter yang diizinkan: a-z, A-Z, 0-9, -, _, dan spasi. # Jika ELASTIC_APM_SERVICE_NAME tidak diatur, nama file executable akan digunakan. export ELASTIC_APM_SERVICE_NAME=zijian # Tetapkan URL kustom APM Server (default: http://localhost:8200). export ELASTIC_APM_SERVER_URL= # Gunakan token rahasia jika diperlukan oleh APM Server. export ELASTIC_APM_SECRET_TOKEN= -
Jalankan perintah berikut agar file konfigurasi berlaku:
source ~/.bash_profile
-
-
Gunakan APM agent untuk mendeteksi aplikasi.
-
Buat file aplikasi contoh bernama apm.go.
vim apm.go -
Tambahkan informasi berikut ke file apm.go dan simpan file tersebut.
Untuk menginstrumentasi aplikasi Go Anda, gunakan salah satu modul instrumentasi yang tersedia atau tracer API.
package main import ( "net/http" "go.elastic.co/apm/module/apmhttp" ) func main() { mux := http.NewServeMux() http.ListenAndServe(":8080", apmhttp.Wrap(mux)) } -
Jalankan file apm.go.
sudo go run apm.go
-
Langkah 3: Lihat dan analisis data yang dikumpulkan oleh APM server di Konsol Kibana
-
Masuk ke Konsol Kibana kluster Elasticsearch.
Untuk informasi lebih lanjut, lihat Masuk ke Konsol Kibana.
CatatanTopik ini menggunakan contoh instans Alibaba Cloud Elasticsearch V7.10. UI dan operasi mungkin berbeda untuk versi lain.
-
Di halaman utama Kibana, klik Dev tools di pojok kanan atas.
-
Pada tab Console, jalankan skrip berikut untuk mengaktifkan pembuatan otomatis indeks onboarding APM.
Catatan-
Alibaba Cloud Elasticsearch menerapkan konvensi penamaan tertentu untuk indeks yang dibuat secara otomatis. Karena nama default indeks onboarding APM tidak sesuai, Anda harus menjalankan perintah ini untuk mengizinkan pembuatannya.
-
Pada skrip berikut,
7.10.2adalah versi APM Server yang Anda instal.
PUT _cluster/settings { "persistent": { "action.auto_create_index":"+.*,+apm-7.10.2-onboarding-*,-*" } } -
-
Lihat layanan yang dipantau oleh APM.
Halaman Services APM menampilkan semua layanan yang telah onboard dalam bentuk tabel. Tabel tersebut berisi kolom Name, Environment, Avg. response time, Trans. per minute, dan Error rate %, yang menunjukkan setiap layanan yang telah onboard beserta metrik kinerjanya.
-
Di pojok kiri atas, klik ikon
untuk memperluas panel navigasi sebelah kiri. -
Di panel navigasi, di bawah Observability, klik APM.
-
Tab Services menampilkan semua layanan APM.
-
Klik nama layanan dan lihat serta analisis data terkait layanan tersebut.
-