All Products
Search
Document Center

Managed Service for OpenTelemetry:Laporkan data aplikasi Java dengan agen SkyWalking

Last Updated:Jun 21, 2026

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.

Peringatan

File log, plugin, dan file konfigurasi berada di folder agent. Jangan mengubah struktur direktorinya.

Dapatkan titik akhir

Konsol baru

  1. Login ke Konsol Managed Service for OpenTelemetry. Di panel navigasi kiri, klik Integration Center.

  2. Di halaman Integration Center, klik kartu SkyWalking pada bagian Open Source Frameworks.

  3. Di panel SkyWalking, klik tab Start Integration, lalu pilih wilayah tempat Anda ingin melaporkan data.

    Catatan

    Saat Anda mengakses wilayah untuk pertama kalinya, sumber daya akan diinisialisasi secara otomatis di sana.

  4. Konfigurasikan parameter Connection Type dan salin titik akhirnya.

    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.

    image.png

Konsol lama

  1. Login ke Konsol Managed Service for OpenTelemetry.

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

  3. Di bilah navigasi atas, pilih wilayah tempat Anda ingin melaporkan data. Di bagian Cluster Information, aktifkan Show Token.

  4. Atur parameter Client ke SkyWalking.

    Di kolom Related Information pada tabel, salin titik akhirnya.

    SkyWalking接入点信息

    Catatan

    Jika aplikasi Anda dideploy di lingkungan produksi Alibaba Cloud, gunakan titik akhir VPC. Jika tidak, gunakan titik akhir publik.

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

  1. Unduh SkyWalking Java Agent.

  2. 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.
  3. Tentukan jalur ke agen SkyWalking berdasarkan lingkungan runtime aplikasi Anda.

    Catatan

    Pada 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_OPTS

    Windows 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.

    Penting

    Parameter -javaagent harus muncul sebelum parameter -jar.

    java -javaagent:<skywalking-agent-path> -jar yourApp.jar

    Jetty

    Tambahkan baris-baris berikut ke file konfigurasi {JETTY_HOME}/start.ini:

    --exec
    -javaagent:<skywalking-agent-path>
  4. 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.

Lihat atribut agen

Parameter

Deskripsi

Default

agent.namespace

Menentukan namespace untuk mengisolasi header dalam propagasi lintas proses. Jika diatur, format headernya adalah HeaderName:Namespace.

Tidak diatur

agent.service_name

Nama layanan yang ditampilkan di UI SkyWalking. Ini sesuai dengan Application di v5.x dan Service di v6.x. Tetapkan nama unik untuk setiap layanan. Semua instans suatu layanan harus menggunakan nama yang sama.

Your_ApplicationName

agent.sample_n_per_3_secs

Mengatur jumlah jejak yang diambil sampel setiap 3 detik. Nilai 0 atau kurang menonaktifkan pengambilan sampel.

Tidak diatur

agent.authentication

Apakah otentikasi diperlukan bergantung pada konfigurasi backend. Anda dapat melihat token di titik akhir server. Sebagian besar kasus penggunaan memerlukan ekstensi otentikasi di backend. Saat ini, hanya otentikasi dasar yang diimplementasikan.

Tidak diatur

agent.span_limit_per_segment

Jumlah maksimum rentang dalam satu segmen. SkyWalking menggunakan pengaturan ini untuk memperkirakan penggunaan memori aplikasi.

Tidak diatur

agent.ignore_suffix

Jika nama operasi rentang pertama cocok dengan entri dalam daftar ini, agen akan membuang segmen tersebut.

Tidak diatur

agent.is_open_debugging_class

Jika true, SkyWalking menyimpan semua file kelas yang telah diinstrumentasi ke direktori /debugging. Tim SkyWalking mungkin meminta file-file ini untuk memecahkan masalah kompatibilitas.

Tidak diatur

agent.cause_exception_depth

Kedalaman rantai penyebab exception yang direkam.

5

agent.force_reconnection_period

Interval, sebagai kelipatan grpc_channel_check_interval, untuk memaksa koneksi ulang gRPC.

1

agent.operation_name_threshold

Mengatur panjang maksimum yang direkomendasikan untuk nama operasi. Batas kerasnya adalah 190.

150

agent.keep_tracing

Jika true, agen tetap melacak meskipun backend tidak tersedia.

false

osinfo.ipv4_list_size

Jumlah maksimum alamat IPv4 yang dilaporkan.

10

collector.grpc_channel_check_interval

Interval, dalam detik, untuk memeriksa status saluran gRPC.

30

collector.backend_service

Alamat backend yang menerima data jejak SkyWalking.

127.0.0.1:11800

collector.heartbeat_period

Interval, dalam detik, bagi agen untuk mengirim heartbeat.

30

collector.grpc_upstream_timeout

Timeout, dalam detik, bagi klien gRPC untuk mengirim data upstream.

30

collector.get_profile_task_interval

Interval, dalam detik, bagi profiler untuk mengambil daftar tugas profiling.

20

logging.level

Tingkat log agen.

DEBUG

logging.file_name

Nama file log.

skywalking-api.log

logging.output

Tujuan output log. Atur ke FILE untuk mencatat ke file atau CONSOLE untuk mencatat ke output standar.

FILE

logging.dir

Direktori log. Jika kosong, log ditulis ke stdout.

""

logging.pattern

Pola format log. Spesifikasi konversi berikut didukung:

  • %level: Tingkat log.

  • %timestamp: Waktu saat ini dalam format yyyy-MM-dd HH:mm:ss:SSS.

  • %thread: Nama thread saat ini.

  • %msg: Pesan log.

  • %class: Nama sederhana kelas target.

  • %throwable: Stack trace dari exception yang dicatat.

  • %agent_name: Nilai dari agent.service_name.

%level %timestamp %thread %class : %msg %throwable

logging.max_file_size

Ukuran maksimum file log. Ketika file log melebihi ukuran ini, agen mengarsipkannya dan membuat yang baru.

300 * 1024 * 1024

logging.max_history_files

Jumlah maksimum file log terarsip yang disimpan. Nilai 0 atau kurang berarti semua file terarsip disimpan.

-1

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.

Klik untuk melihat daftar plugin

Framework

Versi Plugin

HTTP server

Tomcat 7

Tomcat 8

Tomcat 9

Spring Boot Web 4.x

Spring MVC 3.x, 4.x, 5.x dengan Servlet 3.x

Nutz Web Framework 1.x

Struts2 MVC 2.3.x - 2.5.x

Resin 3

Resin 4

Jetty Server 9

Spring WebFlux 5.x

Undertow 2.0.0.Final - 2.0.13.Final

RESTEasy 3.1.0.Final - 3.7.0.Final

Play Framework 2.6.x - 2.8.x

Light4J Microservices Framework 1.6.x - 2.x

Netty SocketIO 1.x

HTTP client

Feign 9.x

Netflix Spring Cloud Feign 1.1.x, 1.2.x, 1.3.x

OkHttp 3.x

Apache httpcomponent HttpClient 4.2, 4.3

Spring RestTemplate 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, 8.x

Oracle Driver

H2 Driver 1.3.x - 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, 42.x

MariaDB Driver 2.x, 1.8

Framework RPC

Dubbo 2.5.4 - 2.6.0

Dubbox 2.8.4

Apache Dubbo 2.7.0

Motan 0.2.x - 1.1.0

gRPC 1.x

Apache ServiceComb Java Chassis 0.1 - 0.5, 1.0.x

SOFARPC 5.4.0

Armeria 0.63.0 - 0.98.0

Apache Avro 1.7.0 - 1.8.x

Finagle 6.25.0 - 20.1.0

Message queue

RocketMQ 4.x

Kafka 0.11.0.0 - 1.0

ActiveMQ 5.x

RabbitMQ 5.x

Pulsar 2.2.x - 2.4.x

NoSQL

Redis

Jedis 2.x

Redisson client 3.5.2+

Lettuce 5.x

MongoDB

MongoDB Java Driver 2.13 - 2.14, 3.3+

Memcached client

Spymemcached 2.x

Xmemcached 2.x

Elasticsearch

transport-client 5.2.x - 5.6.x

transport-client 6.7.1 - 6.8.4

rest-high-level-client 6.7.1 - 6.8.4

SolrJ 7.0.0 - 7.7.1

SolrJ 7.x

Cassandra 3.x

cassandra-java-driver 3.7.0 - 3.7.2

Service discovery

Netflix Eureka

Koordinasi terdistribusi

ZooKeeper 3.4.x (kecuali 3.4.4)

Ekosistem Spring

Annotasi Spring Bean (@Bean, @Service, @Component, @Repository) 3.x dan 4.x

Spring Core Async SuccessCallback/FailureCallback/ListenableFutureCallback 4.x

Hystrix: latensi dan toleransi kesalahan untuk sistem terdistribusi 1.4.20 - 1.5.12

Scheduler

Elastic-Job 2.x

Dukungan komunitas OpenTracing

Canal 1.0.25 - 1.1.2: Komponen Alibaba untuk langganan inkremental ke binlog MySQL

JSON

GSON 2.8.x

Ekosistem Vert.x

Vert.x Eventbus 3.2+

Vert.x Web 3.x

Framework penjadwalan thread

Spring @Async 4.x dan 5.x

Cache

Ehcache 2.x

Kotlin

Coroutine 1.0.1 - 1.3.x

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.