全部产品
Search
文档中心

Application Real-Time Monitoring Service:Gunakan SkyWalking untuk melaporkan data aplikasi Java

更新时间:Jun 27, 2025

Setelah Anda menggunakan SkyWalking untuk menginstrumentasikan aplikasi dan melaporkan data jejak ke konsol Managed Service for OpenTelemetry, Managed Service for OpenTelemetry mulai memantau aplikasi tersebut. Kemudian, 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 yang dapat dikonfigurasi dari agen Java SkyWalking.

Prasyarat

  • Unduh SkyWalking versi 6.x.x atau lebih baru dari halaman unduhan SkyWalking. Direkomendasikan untuk menggunakan versi stabil terbaru. Simpan folder agen yang telah diekstrak di direktori yang dapat diakses oleh proses Java.

  • Semua plugin disimpan di direktori /plugins. Jika menambahkan plugin saat startup, plugin tersebut akan aktif. Jika menghapus plugin, plugin tersebut menjadi tidak efektif. Secara default, file log disimpan di direktori /logs.

Peringatan

Semua log, plugin, dan file konfigurasi disimpan di folder agen. Jangan ubah folder tersebut.

Untuk mendapatkan titik akhir SkyWalking, ikuti langkah-langkah berikut:

  1. Masuk ke Konsol Managed Service for OpenTelemetry.

  2. Di bilah navigasi sisi kiri, klik Cluster Configurations. Pada halaman yang muncul, klik tab Access point information.

  3. Di bilah navigasi atas, pilih wilayah. Di bagian Cluster Information, aktifkan Show Token.

  4. Atur parameter Client ke SkyWalking.

    Dapatkan titik akhir SkyWalking di kolom Related Information tabel di bagian bawah.

    SkyWalking接入点信息

    Catatan

    Jika aplikasi Anda diterapkan 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. Dirancang untuk arsitektur mikroservis, cloud-native, dan berbasis kontainer seperti Docker, Kubernetes, dan Mesos. SkyWalking juga merupakan sistem pelacakan terdistribusi.

Sebelum menggunakan SkyWalking untuk melaporkan data aplikasi Java ke konsol Managed Service for OpenTelemetry, Anda harus menginstrumentasikan aplikasi. SkyWalking menyediakan instrumentasi otomatis untuk berbagai kerangka kerja dan pustaka, termasuk Dubbo, gRPC, JDBC, OkHttp, Spring, Tomcat, Struts, dan Jedis. SkyWalking juga mendukung instrumentasi manual berdasarkan standar OpenTracing. Topik ini menjelaskan cara melakukan instrumentasi otomatis.

Kode Contoh

Untuk informasi lebih lanjut tentang repositori kode contoh, lihat demo skywalking di GitHub.

Gunakan SkyWalking untuk menginstrumentasikan aplikasi Java secara otomatis

  1. Buka file config/agent.config dan konfigurasikan titik akhir dan token.

    Catatan

    Ganti <endpoint> dengan titik akhir wilayah tempat klien SkyWalking berada. Ganti <auth-token> dengan token otentikasi klien. Anda dapat masuk ke konsol Managed Service for OpenTelemetry dan melihat titik akhir pada tab Access point information halaman Cluster Configurations. Untuk informasi lebih lanjut tentang cara mendapatkan titik akhir, lihat bagian "Prasyarat" dari topik ini.

    collector.backend_service=<endpoint>
    agent.authentication=<auth-token>
  2. Gunakan salah satu metode berikut untuk menentukan nama aplikasi:

    Penting

    Ganti <ServiceName> dengan nama aplikasi Anda. Jika menggunakan kedua metode, hanya metode kedua yang menambahkan parameter ke perintah startup yang berlaku.

    • Buka file config/agent.config dan tentukan nama aplikasi.

      agent.service_name=<ServiceName>
    • Tambahkan parameter -Dskywalking.agent.service_name ke perintah startup aplikasi.

      java -javaagent:<skywalking-agent-path> -Dskywalking.agent.service_name=<ServiceName> -jar yourApp.jar
  3. Gunakan salah satu metode berikut untuk menentukan jalur ke file skywalking-agent.jar di folder agen:

    Catatan

    Ganti <skywalking-agent-path> dalam kode contoh berikut dengan jalur absolut ke file skywalking-agent.jar di folder agen.

    • Linux Tomcat 7 atau Tomcat 8

      Tambahkan konten berikut sebagai baris pertama di file tomcat/bin/catalina.sh:

      CATALINA_OPTS="$CATALINA_OPTS -javaagent:<skywalking-agent-path>"; export CATALINA_OPTS
    • Windows Tomcat 7 atau Tomcat 8

      Tambahkan konten berikut sebagai baris pertama di 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    # Hapus tanda pagar (#) untuk membuka komentar kode.
      -javaagent:<skywalking-agent-path>
  4. Mulai ulang aplikasi.

Atribut yang Dapat Dikonfigurasi dari Agen Java SkyWalking

Agen Java SkyWalking mendukung berbagai atribut yang dapat dikonfigurasi. Untuk informasi lebih lanjut, lihat file config/agent.config di kode contoh.

Atribut Sebagian dari Agen Java SkyWalking

Tabel berikut menjelaskan atribut sebagian dari agen Java SkyWalking versi 8.16.0.

Perluas untuk melihat atribut dari 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 header adalah HeaderName:Namespace.

Tidak ada

agent.service_name

Nama layanan yang ditampilkan di antarmuka pengguna (UI) SkyWalking. Versi 5.x sesuai dengan Aplikasi dan versi 6.x sesuai dengan Layanan. Kami merekomendasikan Anda menentukan nama unik untuk setiap layanan. Beberapa instance dari layanan berbagi nama yang sama.

Your_ApplicationName

agent.sample_n_per_3_secs

Nomor 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 data sampel dikumpulkan setiap 3 detik.

Tidak ada

agent.authentication

Otentikasi diaktifkan berdasarkan konfigurasi backend. Anda dapat melihat token otentikasi dari endpoint server. Ekstensi backend diperlukan untuk sebagian besar skenario. Hanya fitur otentikasi dasar yang diimplementasikan.

Tidak ada

agent.span_limit_per_segment

Jumlah maksimum rentang dalam satu segmen. Jika atribut ini dikonfigurasi, SkyWalking dapat menilai penggunaan memori aplikasi.

Tidak ada

agent.ignore_suffix

Jika nama operasi rentang pertama termasuk dalam koleksi ini, segmen ini diabaikan.

Tidak ada

agent.is_open_debugging_class

Jika Anda mengatur atribut ini ke true, agen SkyWalking menyimpan semua file kelas yang diinstrumen ke folder /debugging. Tim SkyWalking mungkin meminta Anda untuk memberikan file kelas ini untuk menyelesaikan masalah kompatibilitas.

Tidak ada

agent.cause_exception_depth

Kedalaman tumpukan yang perlu direkam oleh agen SkyWalking ketika pengecualian dicatat.

5

agent.force_reconnection_period

Periode rekoneksi 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 latar belakang tidak tersedia.

false

osinfo.ipv4_list_size

Jumlah maksimum alamat IPv4.

10

collector.grpc_channel_check_interval

Interval di mana status saluran gRPC diperiksa.

30

collector.backend_service

Alamat backend kolektor yang menerima data jejak SkyWalking.

127.0.0.1:11800

collector.heartbeat_period

Periode selama denyut jantung agen SkyWalking dilaporkan. Unit: detik.

30

collector.grpc_upstream_timeout

Periode timeout saat klien gRPC mengirim data ke aplikasi upstream. Unit: detik.

30

collector.get_profile_task_interval

Interval di mana agen SkyWalking memeriksa 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 langsung diekspor.

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 format konversi 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 dari kelas.

  • %throwable: pengecualian yang dilemparkan oleh 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, angka negatif atau 0 menunjukkan bahwa jumlah file log historis tidak dibatasi.

-1

Metode Konfigurasi

Atribut Sistem

Gunakan -Dskywalking. dan kunci 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 mendapatkan variabel lingkungan sistem. Anda dapat memeriksa variabel lingkungan sistem yang sesuai dengan atribut tertentu di file config/agent.config. Sebagai contoh, 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>

Prioritas

Metode konfigurasi sebelumnya diprioritaskan dalam urutan berikut: opsi proxy, properti sistem, variabel lingkungan sistem, dan file konfigurasi.

Plugin Agen Java SkyWalking

Agen Java SkyWalking mendukung berbagai middleware, kerangka kerja, dan repositori. Untuk informasi lebih lanjut tentang plugin yang didukung, lihat folder /plugins di kode contoh.

Aktifkan Plugin

Semua plugin di folder /plugins diaktifkan. Jika paket JAR plugin dihapus dari folder /plugins, plugin tersebut menjadi tidak tersedia.

Plugin Resmi yang Didukung

Plugin resmi yang didukung tersedia di folder /plugins.

Plugin Opsional

Plugin agen Java SkyWalking bersifat modular. Plugin opsional tersedia di folder optional-plugins repositori pihak ketiga atau agen. Untuk menggunakan plugin opsional, pindahkan plugin ke folder /plugins.image.png

Plugin Bootstrap

Semua plugin Bootstrap bersifat opsional karena risiko tak terduga. Plugin Bootstrap tersedia di folder bootstrap-plugins. Jika ingin menggunakan plugin Bootstrap, tambahkan paket JAR plugin ke folder /plugins.image.png

Plugin yang Didukung

Tim resmi SkyWalking percaya bahwa plugin berikut mungkin memengaruhi kinerja SkyWalking dan membatasi penggunaannya. Oleh karena itu, plugin-plugin ini hanya dirilis di repositori pihak ketiga. Untuk informasi lebih lanjut, lihat java-plugin-extensions di GitHub.

Perluas untuk melihat plugin

Kerangka Kerja

Versi Plugin

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 dari 2.3.x hingga 2.5.x

Resin 3

Resin 4

Jetty Server 9

Spring Webflux 5.x

Undertow dalam rentang versi dari 2.0.0.Final hingga 2.0.13.Final

RESTEasy dalam rentang versi dari 3.1.0.Final hingga 3.7.0.Final

Play Framework dalam rentang versi dari 2.6.x hingga 2.8.x

Light4J Microservices Framework dalam rentang versi dari 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 dari 1.3.x hingga 1.4.x

Sharding-JDBC 1.5.x

ShardingSphere 3.0.0

ShardingSphere 3.0.0, 4.0.0-RC1

PostgreSQL Driver 8.x, 9.x, dan 42.x

Mariadb Driver 2.x dan 1.8

Kerangka Kerja RPC

Dubbo dalam rentang versi dari 2.5.4 hingga 2.6.0

Dubbox 2.8.4

Apache Dubbo 2.7.0

Motan dalam rentang versi dari 0.2.x hingga 1.1.0

gRPC 1.x

Apache ServiceComb Java Chassis dalam rentang versi dari 0.1 hingga 0.5 dan 1.0.x

SOFARPC 5.4.0

Armeria dalam rentang versi dari 0.63.0 hingga 0.98.0

Apache Avro dalam rentang versi dari 1.7.0 hingga 1.8.x

Finagle dalam rentang versi dari 6.25.0 hingga 20.1.0

MQ

RocketMQ 4.x

Kafka dalam rentang versi dari 0.11.0.0 hingga 1.0

ActiveMQ 5.x

RabbitMQ 5.x

Pulsar dalam rentang versi dari 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 dari 5.2.x hingga 5.6.x

transport-client dalam rentang versi dari 6.7.1 hingga 6.8.4

rest-high-level-client dalam rentang versi dari 6.7.1 hingga 6.8.4

SolrJ dalam rentang versi dari 7.0.0 hingga 7.7.1

SolrJ 7.x

Cassandra 3.x

cassandra-java-driver dalam rentang versi dari 3.7.0 hingga 3.7.2

Penemuan Layanan

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 dari 1.4.20 hingga 1.5.12 untuk toleransi latensi dan kesalahan sistem terdistribusi

Penjadwal

Elastic Job 2.x

Dukungan komunitas OpenTracing

Canal dalam rentang versi dari 1.0.25 hingga 1.1.2: komponen berbasis binlog MySQL yang dikembangkan oleh Alibaba Cloud untuk sinkronisasi dan konsumsi data tambahan

JSON

GSON 2.8.x

Ekosistem Vert.x

Vert.x Eventbus 3.2 atau lebih baru

Vert.x Web 3.x

Kerangka Penjadwalan Thread

Spring @Async 4.x dan 5.x

Cache

Ehcache2.x

Kotlin

Coroutine dalam rentang versi dari 1.0.1 hingga 1.3.x

Mengembangkan Plugin

Untuk membuat plugin agen Java SkyWalking kustom, lihat dokumentasi resmi SkyWalking.

Managed Service for OpenTelemetry mendukung pelaporan jejak. Untuk membuat plugin jejak kustom, lihat 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 Managed Service for OpenTelemetry. Sebagai contoh, periksa isi file {skywalking agent path}/logs/skywalking-api.log. Jika data dilaporkan, gambar berikut akan ditampilkan.pg_xtrace_skywalking

Data mungkin tidak dilaporkan karena alasan berikut: pengambilan sampel diaktifkan, data difilter, atau permintaan untuk menggunakan Managed Service for OpenTelemetry tidak dipicu.