Setelah Anda menggunakan SkyWalking untuk menginstrumentasi aplikasi dan melaporkan data jejak ke Managed Service for OpenTelemetry, Managed Service for OpenTelemetry mulai memantau aplikasi tersebut. Selanjutnya, Anda dapat melihat data pemantauan aplikasi, seperti topologi aplikasi, jejak, transaksi abnormal, transaksi lambat, dan analisis SQL. Topik ini menjelaskan cara menggunakan Agen Java SkyWalking untuk melakukan instrumentasi otomatis. Topik ini juga menjelaskan atribut-atribut yang dapat dikonfigurasi pada Agen Java SkyWalking.
Prasyarat
SkyWalking versi 6.X.X atau lebih baru telah diunduh dari halaman unduhan SkyWalking. Disarankan untuk menggunakan versi stabil terbaru. Folder Agent yang telah diekstrak disimpan di direktori yang dapat diakses oleh proses Java.
Semua plugin disimpan di direktori /plugins. Plugin yang ditambahkan ke direktori tersebut saat startup akan langsung berlaku, sedangkan plugin yang dihapus dari direktori tersebut tidak lagi aktif. Secara default, file log disimpan di direktori /logs.
Peringatan Semua log, plugin, dan file konfigurasi disimpan di folder agent. Jangan mengubah struktur folder tersebut.
Dapatkan titik akhir
Konsol baru
Masuk ke Konsol Managed Service for OpenTelemetry. Di panel navigasi sebelah kiri, klik Integration Center.
Pada halaman Integration Center, klik kartu SkyWalking di bagian Open Source Frameworks.
Di panel SkyWalking, klik tab Mulai Integrasi, lalu pilih wilayah tempat Anda ingin melaporkan data.
Catatan Saat Anda mengakses wilayah untuk pertama kalinya, sumber daya akan diinisialisasi secara otomatis di sana.
Konfigurasikan parameter Connection Type dan salin titik akhir.
Jika layanan Anda dideploy di Alibaba Cloud dan berada di wilayah yang Anda pilih, kami menyarankan Anda mengatur parameter ini ke Alibaba Cloud VPC Network. Jika tidak, atur parameter ini ke Public Network.

Konsol lama
Masuk ke Konsol Managed Service for OpenTelemetry.
Di panel navigasi sebelah kiri, klik Cluster Configurations. Pada halaman yang muncul, klik tab Access point information.
Di bilah navigasi atas, pilih wilayah tempat Anda ingin melaporkan data. Di bagian Cluster Information, aktifkan Show Token.
Atur parameter Client ke SkyWalking.
Di kolom Related Information pada tabel, salin titik akhir.

Catatan Jika aplikasi Anda dideploy di lingkungan produksi Alibaba Cloud, gunakan titik akhir VPC. Jika tidak, gunakan titik akhir publik.
Informasi latar belakang
SkyWalking adalah layanan Pemantauan Kinerja Aplikasi (APM) populer yang dikembangkan di Tiongkok. SkyWalking dirancang untuk arsitektur layanan mikro, cloud-native, dan berbasis kontainer, termasuk Docker, Kubernetes, dan Mesos. SkyWalking juga merupakan sistem pelacakan terdistribusi.
Sebelum Anda dapat menggunakan SkyWalking untuk melaporkan data aplikasi Java ke konsol Managed Service for OpenTelemetry, Anda harus menginstrumentasi aplikasi terlebih dahulu. SkyWalking menyediakan instrumentasi otomatis untuk berbagai framework dan library, termasuk Dubbo, gRPC, JDBC, OkHttp, Spring, Tomcat, Struts, dan Jedis. SkyWalking juga memungkinkan instrumentasi manual berdasarkan standar OpenTracing. Topik ini menjelaskan cara menginstrumentasi aplikasi secara otomatis.
Kode contoh
Untuk informasi lebih lanjut tentang repositori kode contoh, lihat SkyWalking Demo.
Gunakan SkyWalking untuk menginstrumentasi aplikasi Java secara otomatis
Unduh SkyWalking Java Agent.
Ubah file konfigurasi SkyWalking Java Agent untuk mengatur informasi akses dan informasi aplikasi.
collector.backend_service=<endpoint> // Ganti dengan informasi titik akhir yang diperoleh dari kondisi lain.
agent.authentication=<token> // Ganti dengan token otentikasi yang diperoleh dari prasyarat.
agent.service_name=<Service Name> // Ganti dengan nama aplikasi aktual Anda.
Gunakan salah satu metode berikut untuk menentukan jalur ke SkyWalking Agent berdasarkan lingkungan runtime aplikasi:
Catatan Ganti <skywalking-agent-path> dalam kode contoh berikut dengan jalur mutlak ke file skywalking-agent.jar di folder agent.
Linux Tomcat 7 / Tomcat 8
Tambahkan konten berikut sebagai baris pertama dalam file tomcat/bin/catalina.sh:
CATALINA_OPTS="$CATALINA_OPTS -javaagent:<skywalking-agent-path>"; export CATALINA_OPTS
Windows Tomcat 7 / Tomcat 8
Tambahkan konten berikut sebagai baris pertama dalam file tomcat/bin/catalina.bat:
set "CATALINA_OPTS=-javaagent:<skywalking-agent-path>"
File JAR atau Spring Boot
Tambahkan parameter -javaagent ke perintah startup aplikasi.
Penting Parameter -javaagent harus ditulis sebelum parameter -jar.
java -javaagent:<skywalking-agent-path> -jar yourApp.jar
Jetty
Tambahkan konten berikut ke file konfigurasi {JETTY_HOME}/start.ini:
--exec
-javaagent:<skywalking-agent-path>
Mulai ulang aplikasi.
Atribut yang dapat dikonfigurasi pada Agen Java SkyWalking
Agen Java SkyWalking mendukung berbagai atribut yang dapat dikonfigurasi. Untuk informasi lebih lanjut, lihat file config/agent.config dalam kode contoh.
Sebagian atribut Agen Java SkyWalking
Tabel berikut menjelaskan sebagian atribut Agen Java SkyWalking versi 8.16.0.
Bentangkan untuk melihat atribut Agen Java SkyWalking
Atribut | Deskripsi | Nilai default |
agent.namespace | Namespace yang digunakan untuk mengisolasi header dalam propagasi lintas proses. Jika Anda mengonfigurasi atribut ini, nama headernya menjadi HeaderName:Namespace. | Tidak ditentukan |
agent.service_name | Nama layanan yang ditampilkan di UI SkyWalking. Versi 5.x sesuai dengan Application dan versi 6.x sesuai dengan Service. Kami menyarankan Anda menentukan nama unik untuk setiap layanan. Beberapa instans layanan berbagi nama yang sama. | Your_ApplicationName |
agent.sample_n_per_3_secs | Bilangan negatif atau 0 menunjukkan bahwa tidak ada data sampel yang dikumpulkan. Secara default, tidak ada data sampel yang dikumpulkan. SAMPLE_N_PER_3_SECS menunjukkan bahwa N catatan data sampel dikumpulkan setiap 3 detik. | Tidak ditentukan |
agent.authentication | Otentikasi diaktifkan berdasarkan konfigurasi backend. Anda dapat melihat token otentikasi titik akhir server. Ekstensi backend diperlukan untuk sebagian besar skenario. Hanya fitur otentikasi dasar yang diimplementasikan. | Tidak ditentukan |
agent.span_limit_per_segment | Jumlah maksimum rentang dalam satu segmen. Jika atribut ini dikonfigurasi, SkyWalking dapat menilai penggunaan memori aplikasi. | Tidak ditentukan |
agent.ignore_suffix | Jika nama operasi rentang pertama termasuk dalam koleksi ini, segmen ini diabaikan. | Tidak ditentukan |
agent.is_open_debugging_class | Jika Anda mengatur atribut ini ke true, agen SkyWalking menyimpan semua file kelas yang diinstrumentasi ke folder /debugging. Tim SkyWalking mungkin meminta Anda menyediakan file-file kelas ini untuk menyelesaikan masalah kompatibilitas. | Tidak ditentukan |
agent.cause_exception_depth | Kedalaman stack yang perlu direkam oleh agen SkyWalking saat merekam pengecualian. | 5 |
agent.force_reconnection_period | Periode reconnect paksa gRPC berdasarkan nilai atribut grpc_channel_check_interval. | 1 |
agent.operation_name_threshold | Panjang maksimum nama operasi. Nama operasi dapat memiliki panjang hingga 190 karakter. | 150 |
agent.keep_tracing | Jika Anda mengatur atribut ini ke true, agen SkyWalking terus mengumpulkan data meskipun layanan backend tidak tersedia. | false |
osinfo.ipv4_list_size | Jumlah maksimum alamat IPv4. | 10 |
collector.grpc_channel_check_interval | Interval pemeriksaan status channel gRPC. | 30 |
collector.backend_service | Alamat backend collector yang menerima data jejak SkyWalking. | 127.0.0.1:11800 |
collector.heartbeat_period | Periode pelaporan heartbeat agen SkyWalking. Satuan: detik. | 30 |
collector.grpc_upstream_timeout | Periode timeout selama klien gRPC mengirim data ke aplikasi upstream. Satuan: detik. | 30 |
collector.get_profile_task_interval | Interval agen SkyWalking melakukan kueri terhadap tugas yang dijalankan untuk mengonfigurasi file. | 20 |
logging.level | Tingkat log. Nilai default: DEBUG. | DEBUG |
logging.file_name | Nama file log. | skywalking-api.log |
logging.output | Mode ekspor log. Secara default, log diekspor sebagai file. Jika Anda menggunakan konsol untuk mengekspor log, log diekspor dalam mode standar. Jika Anda menjalankan perintah untuk mengekspor log, log diekspor langsung. | FILE |
logging.dir | Direktori tempat log disimpan. Nilai default adalah string kosong. Ini menunjukkan bahwa log disimpan di direktori "system.out". | ""
|
logging.pattern | Format log. Spesifikasi konversi format yang didukung: %level: tingkat log. %timestamp: waktu saat ini, dalam format yyyy-MM-dd HH:mm:ss:SSS. %thread: nama thread saat ini. %msg: pesan yang direkam. %class: nama sederhana kelas. %throwable: pengecualian yang dilemparkan pengguna. %agent_name: nama agen.
| %level %timestamp %thread %class : %msg %throwable |
logging.max_file_size | Ukuran maksimum file log. Jika ukuran file log melebihi ambang batas, file log saat ini diarsipkan dan log ditulis ke file baru. | 300 * 1024 * 1024 |
logging.max_history_files | Jumlah maksimum file log historis. Secara default, bilangan negatif atau 0 menunjukkan bahwa jumlah file log historis tidak dibatasi. | -1 |
Metode konfigurasi
Atribut sistem
Gunakan -Dskywalking. diikuti kunci dari file konfigurasi agent.config. Contoh kode:
# Konfigurasikan atribut agent.service_name menggunakan atribut sistem.
java -javaagent:/path/to/skywalking-agent.jar -Dskywalking.agent.service_name=<your_service_name> -jar your-project.jar
Opsi proxy
Tambahkan atribut setelah jalur proxy dalam parameter JVM.
# Template
-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 sistem
Konfigurasikan atribut sebagai variabel lingkungan sistem. Agen SkyWalking secara otomatis membaca variabel lingkungan sistem tersebut. Anda dapat menemukan variabel lingkungan sistem yang sesuai dengan atribut tertentu di file config/agent.config. Misalnya, atribut agent.service_name sesuai dengan variabel lingkungan sistem SW_AGENT_NAME.
agent.service_name=${SW_AGENT_NAME:default_name}
# Konfigurasikan variabel lingkungan.
export SW_AGENT_NAME=<your_service_name>
Preseden
Prioritas metode konfigurasi di atas dari yang tertinggi ke terendah adalah opsi proxy, properti sistem, variabel lingkungan sistem, dan file konfigurasi.
Plugin Agen Java SkyWalking
Agen Java SkyWalking mendukung berbagai middleware, framework, dan repositori. Untuk informasi lebih lanjut tentang plugin yang didukung, lihat folder /plugins dalam kode contoh.
Aktifkan plugin
Semua plugin di folder /plugins diaktifkan secara default. Jika paket JAR plugin dihapus dari folder tersebut, plugin tersebut tidak lagi tersedia.
Plugin resmi yang didukung
Plugin resmi yang didukung tersedia di folder /plugins.
Plugin opsional
Plugin Agen Java SkyWalking bersifat plug-and-play. Plugin opsional tersedia di folder optional-plugins pada repositori pihak ketiga atau agen. Untuk menggunakan plugin opsional, pindahkan plugin tersebut ke folder /plugins.
Plugin Bootstrap
Semua plugin Bootstrap bersifat opsional karena risiko tak terduga. Plugin Bootstrap tersedia di folder bootstrap-plugins. Jika ingin menggunakannya, tambahkan paket JAR plugin tersebut ke folder /plugins.
Plugin yang didukung
Tim resmi SkyWalking berpendapat bahwa plugin berikut dapat memengaruhi kinerja SkyWalking dan membatasi penggunaannya. Oleh karena itu, plugin tersebut hanya dirilis di repositori pihak ketiga. Untuk informasi lebih lanjut, lihat java-plugin-extensions di GitHub.
Bentangkan untuk melihat plugin
Framework | Versi plug-in |
HTTP Server | Tomcat 7 |
Tomcat 8 |
Tomcat 9 |
Spring Boot Web 4.x |
Spring MVC 3.x, 4.x, dan 5.x dengan servlet 3.x |
Nutz Web Framework 1.x |
Struts2 MVC dalam rentang versi 2.3.x hingga 2.5.x |
Resin 3 |
Resin 4 |
Jetty Server 9 |
Spring Webflux 5.x |
Undertow dalam rentang versi 2.0.0.Final hingga 2.0.13.Final |
RESTEasy dalam rentang versi 3.1.0.Final hingga 3.7.0.Final |
Play Framework dalam rentang versi 2.6.x hingga 2.8.x |
Light4J Microservices Framework dalam rentang versi 1.6.x hingga 2.x |
Netty SocketIO 1.x |
HTTP Client | Feign 9.x |
Netflix Spring Cloud Feign 1.1.x, 1.2.x, dan 1.3.x |
Okhttp 3.x |
Apache httpcomponent HttpClient 4.2 dan 4.3 |
Spring RestTemplete 4.x |
Jetty Client 9 |
Apache httpcomponent AsyncClient 4.x |
HTTP Gateway | Spring Cloud Gateway 2.1.x.RELEASE |
JDBC | MySQL Driver 5.x, 6.x, dan 8.x |
Oracle Driver |
H2 Driver dalam rentang versi 1.3.x hingga 1.4.x |
Sharding-JDBC 1.5.x |
ShardingSphere 3.0.0 |
ShardingSphere 3.0.0 dan 4.0.0-RC1 |
PostgreSQL Driver 8.x, 9.x, dan 42.x |
Mariadb Driver 2.x dan 1.8
|
Framework RPC | Dubbo dalam rentang versi 2.5.4 hingga 2.6.0 |
Dubbox 2.8.4 |
Apache Dubbo 2.7.0 |
Motan dalam rentang versi 0.2.x hingga 1.1.0 |
gRPC 1.x |
Apache ServiceComb Java Chassis dalam rentang versi 0.1 hingga 0.5 dan 1.0.x |
SOFARPC 5.4.0 |
Armeria dalam rentang versi 0.63.0 hingga 0.98.0 |
Apache Avro dalam rentang versi 1.7.0 hingga 1.8.x |
Finagle dalam rentang versi 6.25.0 hingga 20.1.0 |
MQ | RocketMQ 4.x |
Kafka dalam rentang versi 0.11.0.0 hingga 1.0 |
ActiveMQ 5.x |
RabbitMQ 5.x |
Pulsar dalam rentang versi 2.2.x hingga 2.4.x |
NoSQL | Redis | Jedis 2.x |
Redisson Easy Java Redis client 3.5.2 atau lebih baru |
Lettuce 5.x |
MongoDB | MongoDB Java Driver 2.13, 2.14, dan 3.3 atau lebih baru |
Memcached Client | Spymemcached 2.x |
Xmemcached 2.x |
Elasticsearch | transport-client dalam rentang versi 5.2.x hingga 5.6.x |
transport-client dalam rentang versi 6.7.1 hingga 6.8.4 |
rest-high-level-client dalam rentang versi 6.7.1 hingga 6.8.4 |
SolrJ dalam rentang versi 7.0.0 hingga 7.7.1 | SolrJ 7.x |
Cassandra 3.x | cassandra-java-driver dalam rentang versi 3.7.0 hingga 3.7.2 |
Service discovery | Netflix Eureka |
Koordinasi terdistribusi | ZooKeeper 3.4.x (kecuali 3.4.4) |
Ekosistem Spring | Spring Bean annotations(@Bean, @Service, @Component, @Repository) 3.x dan 4.x |
Spring Core Async SuccessCallback/FailureCallback/ListenableFutureCallback 4.x
|
Hystrix dalam rentang versi 1.4.20 hingga 1.5.12 untuk latensi sistem terdistribusi dan toleransi kesalahan |
Scheduler | Elastic
Job 2.x |
Dukungan komunitas OpenTracing |
Canal dalam rentang versi 1.0.25 hingga 1.1.2: Komponen berbasis binlog MySQL yang dikembangkan oleh Alibaba Cloud untuk sinkronisasi data inkremental dan konsumsi |
JSON
| GSON 2.8.x |
Ekosistem Vert.x | Vert.x Eventbus 3.2 atau lebih baru |
Vert.x Web 3.x
|
Framework penjadwalan thread | Spring @Async 4.x dan 5.x |
Cache | Ehcache 2.x |
Kotlin | Coroutine dalam rentang versi 1.0.1 hingga 1.3.x |
Kembangkan plugin
Untuk membuat plugin kustom Agen Java SkyWalking, rujuk ke dokumentasi resmi SkyWalking.
Managed Service for OpenTelemetry mendukung pelaporan jejak. Untuk membuat plugin jejak kustom, rujuk ke dokumentasi resmi SkyWalking.
FAQ
T: Mengapa saya tidak dapat membuat aplikasi setelah SkyWalking terhubung ke server?
J: Data mungkin belum dilaporkan ke Managed Service for OpenTelemetry. Periksa apakah data telah dilaporkan ke layanan tersebut, misalnya dengan melihat isi file {skywalking agent path}/logs/skywalking-api.log. Jika data berhasil dilaporkan, gambar berikut akan ditampilkan.
Data mungkin tidak dilaporkan karena alasan berikut: pengambilan sampel diaktifkan, data difilter, atau permintaan untuk menggunakan Managed Service for OpenTelemetry belum dipicu.