Setelah Anda melakukan instrumentasi aplikasi menggunakan SkyWalking dan melaporkan data jejak ke Managed Service for OpenTelemetry, Managed Service for OpenTelemetry mulai memantau aplikasi Anda. Anda dapat melihat berbagai data pemantauan, seperti topologi aplikasi, jejak, transaksi abnormal, transaksi lambat, dan analisis SQL. Topik ini menjelaskan cara menggunakan SkyWalking Java Agent untuk instrumentasi otomatis dan menyediakan informasi mengenai atribut-atributnya yang dapat dikonfigurasi.
Prasyarat
-
Buka halaman unduhan SkyWalking dan unduh SkyWalking versi 6.X.X atau yang lebih baru (disarankan menggunakan versi stabil terbaru). Tempatkan folder agent hasil ekstraksi ke direktori yang dapat diakses oleh proses Java.
-
Semua plugin disimpan di direktori
/plugins. Untuk mengaktifkan plugin baru, tambahkan ke direktori ini sebelum startup. Untuk menonaktifkan plugin, hapus dari direktori ini. Secara default, file log ditulis ke direktori/logs.
File log, plugin, dan file konfigurasi berada di folder agent. Jangan mengubah struktur direktorinya.
Latar Belakang
SkyWalking adalah alat Application Performance Monitoring (APM) populer yang dirancang untuk aplikasi berbasis arsitektur layanan mikro, Cloud Native, dan terkontainerisasi (Docker, Kubernetes, dan Mesos). Inti dari SkyWalking adalah sistem pelacakan terdistribusi.
Untuk menggunakan SkyWalking dalam melaporkan data dari aplikasi Java Anda ke konsol Managed Service for OpenTelemetry, Anda harus terlebih dahulu melakukan instrumentasi aplikasi tersebut. SkyWalking mendukung instrumentasi otomatis untuk framework seperti Dubbo, gRPC, JDBC, OkHttp, Spring, Tomcat, Struts, dan Jedis, serta instrumentasi manual dengan OpenTracing. Topik ini menjelaskan metode instrumentasi otomatis.
Demo
Repositori kode: SkyWalking Demo
Lakukan instrumentasi aplikasi Java dengan SkyWalking
-
Unduh SkyWalking Java Agent.
-
Konfigurasikan informasi koneksi dan layanan di file konfigurasi SkyWalking Java Agent.
collector.backend_service=<endpoint> // Ganti dengan titik akhir yang diperoleh dari prasyarat. agent.authentication=<token> // Ganti dengan token otentikasi yang diperoleh dari prasyarat. agent.service_name=<service-name> // Ganti dengan nama layanan aktual Anda. -
Tentukan jalur ke agen SkyWalking berdasarkan lingkungan runtime aplikasi Anda.
CatatanPada contoh berikut, ganti
<skywalking-agent-path>dengan jalur mutlak ke skywalking-agent.jar di folder agent.Linux Tomcat 7 / Tomcat 8
Tambahkan baris berikut ke baris pertama
tomcat/bin/catalina.sh:CATALINA_OPTS="$CATALINA_OPTS -javaagent:<skywalking-agent-path>"; export CATALINA_OPTSWindows Tomcat 7 / Tomcat 8
Tambahkan baris berikut ke baris pertama
tomcat/bin/catalina.bat:set "CATALINA_OPTS=-javaagent:<skywalking-agent-path>"JAR atau Spring Boot
Tambahkan parameter -javaagent ke perintah startup aplikasi Anda.
PentingParameter -javaagent harus muncul sebelum parameter -jar.
java -javaagent:<skywalking-agent-path> -jar yourApp.jarJetty
Tambahkan baris-baris berikut ke file konfigurasi
{JETTY_HOME}/start.ini:--exec -javaagent:<skywalking-agent-path> -
Mulai ulang aplikasi Anda.
Atribut agen Java yang dapat dikonfigurasi
Agen Java SkyWalking mendukung berbagai atribut yang dapat dikonfigurasi pengguna. Untuk daftar lengkap atribut, lihat file config/agent.config di demo contoh.
Atribut utama
Atribut berikut didasarkan pada apache-skywalking-java-agent-8.16.0.
Metode konfigurasi
Properti sistem
Gunakan awalan -Dskywalking. diikuti nama atribut dari file agent.config. Contohnya:
# Konfigurasikan agent.service_name menggunakan properti sistem
java -javaagent:/path/to/skywalking-agent.jar -Dskywalking.agent.service_name=<your_service_name> -jar your-project.jar
Opsi agen
Tambahkan atribut ke jalur agen dalam argumen JVM.
# Sintaks
-javaagent:/path/to/skywalking-agent.jar=[key1]=[value1],[key2]=[value2]
# Contoh
java -javaagent:/path/to/skywalking-agent.jar=agent.service_name=<your-service-name>,agent.authentication=<your-token> -jar your-project.jar
Variabel lingkungan
Agen SkyWalking secara otomatis membaca variabel lingkungan. Anda dapat menemukan variabel lingkungan yang sesuai untuk setiap atribut di file config/agent.config. Misalnya, variabel lingkungan untuk agent.service_name adalah SW_AGENT_NAME.
agent.service_name=${SW_AGENT_NAME:default_name}
# Atur variabel lingkungan
export SW_AGENT_NAME=<your_service_name>
Prioritas
Pengaturan konfigurasi diterapkan dengan prioritas berikut, dari tertinggi ke terendah: opsi agen, properti sistem, variabel lingkungan, dan file konfigurasi.
Plugin agen Java
Agen Java SkyWalking mendukung berbagai middleware, framework, dan library. Semua plugin yang didukung tersedia di folder /plugins aplikasi demo.
Aktifkan plugin
Semua plugin di folder /plugins aktif. Untuk menonaktifkan plugin, hapus file JAR-nya dari folder /plugins.
Plugin yang didukung resmi
Semua plugin yang didukung resmi berada di folder /plugins.
Plugin opsional
Plugin opsional berada di folder optional-plugins paket agen atau di repositori pihak ketiga. Untuk mengaktifkan plugin opsional, pindahkan file JAR-nya ke folder /plugins.
optional-plugins/
apm-customize-enhance-plugin-8.16.0.jar
apm-ehcache-2.x-plugin-8.16.0.jar
apm-fastjson-1.x-plugin-8.16.0.jar
apm-gson-2.x-plugin-8.16.0.jar
apm-guava-cache-plugin-8.16.0.jar
apm-jackson-2.x-plugin-8.16.0.jar
apm-kotlin-coroutine-plugin-8.16.0.jar
apm-mybatis-3.x-plugin-8.16.0.jar
apm-quartz-scheduler-2.x-plugin-8.16.0.jar
apm-resttemplate-6.x-plugin-8.16.0.jar
apm-sentinel-1.x-plugin-8.16.0.jar
apm-shenyu-2.4.x-plugin-8.16.0.jar
apm-spring-annotation-plugin-8.16.0.jar
apm-spring-cloud-gateway-2.0.x-plugin-8.16.0.jar
apm-spring-cloud-gateway-2.1.x-plugin-8.16.0.jar
apm-spring-cloud-gateway-3.x-plugin-8.16.0.jar
apm-spring-tx-plugin-8.16.0.jar
apm-spring-webflux-5.x-plugin-8.16.0.jar
apm-springmvc-annotation-6.x-plugin-8.16.0.jar
apm-trace-ignore-plugin-8.16.0.jar
apm-zookeeper-3.4.x-plugin-8.16.0.jar
trace-sampler-cpu-policy-plugin-8.16.0.jar
Plugin bootstrap
Karena potensi risiko stabilitas, semua plugin bootstrap bersifat opsional. Plugin ini berada di folder bootstrap-plugins. Untuk mengaktifkan plugin bootstrap, pindahkan file JAR-nya ke folder /plugins.
bootstrap-plugins/
apm-jdk-forkjoinpool-plugin-8.16.0.jar
apm-jdk-http-plugin-8.16.0.jar
apm-jdk-threading-plugin-8.16.0.jar
apm-jdk-threadpool-plugin-8.16.0.jar
Plugin yang didukung
Beberapa plugin hanya tersedia dari repositori pihak ketiga karena potensi dampak kinerja atau batasan penggunaan. Untuk informasi lebih lanjut, lihat repositori Ekstensi Plugin Java SkyAPM.
Pengembangan plugin
Untuk mengembangkan plugin agen Java SkyWalking kustom, lihat dokumentasi resmi.
Managed Service for OpenTelemetry mendukung pelaporan jejak. Lihat dokumentasi resmi untuk detail tentang pengembangan plugin jejak kustom.
FAQ
T: Mengapa aplikasi saya tidak muncul setelah Agen SkyWalking terhubung ke server?
J: Masalah ini terjadi ketika data pelacakan terdistribusi tidak dilaporkan. Untuk memverifikasi hal ini, periksa file {skywalking agent path}/logs/skywalking-api.log. Jika data sedang dilaporkan, Anda akan melihat log DEBUG dari Agen SkyWalking seperti di bawah ini. Pesan kunci, TraceSegmentServiceClient : 1 trace segments have been sent to collector., mengonfirmasi bahwa data pelacakan terdistribusi berhasil dikirim ke collector.
DEBUG 2020-03-09 17:18:16:356 SkywalkingAgent-5-ServiceAndEndpointRegisterClient-0 ServiceAndEndpointRegisterClient : ServiceAndEndpointRegisterClient running, status:CONNECTED.
DEBUG 2020-03-09 17:18:19:357 SkywalkingAgent-5-ServiceAndEndpointRegisterClient-0 ServiceAndEndpointRegisterClient : ServiceAndEndpointRegisterClient running, status:CONNECTED.
DEBUG 2020-03-09 17:18:21:301 DataCarrier.DEFAULT.Consumer.0.Thread TraceSegmentServiceClient : 1 trace segments have been sent to collector.
DEBUG 2020-03-09 17:18:22:353 SkywalkingAgent-2-GRPCChannelManager-0 GRPCChannelManager : Selected collector grpc service running, reconnect:false.
DEBUG 2020-03-09 17:18:22:357 SkywalkingAgent-5-ServiceAndEndpointRegisterClient-0 ServiceAndEndpointRegisterClient : ServiceAndEndpointRegisterClient running, status:CONNECTED.
DEBUG 2020-03-09 17:18:25:356 SkywalkingAgent-5-ServiceAndEndpointRegisterClient-0 ServiceAndEndpointRegisterClient : ServiceAndEndpointRegisterClient running, status:CONNECTED.
Jika pelaporan data tidak terjadi, kemungkinan penyebabnya termasuk pengambilan sampel yang diaktifkan, filter yang dikonfigurasi, atau tidak adanya permintaan yang menghasilkan jejak terdistribusi.

