全部产品
Search
文档中心

Simple Log Service:Kumpulkan data kinerja yang dilaporkan oleh agen Java Alibaba Cloud dari program Java

更新时间:Jul 06, 2025

Continuous Profiler Agent adalah agen Java Alibaba Cloud yang dikembangkan oleh tim JVM Alibaba Cloud untuk mengumpulkan data kinerja. Continuous Profiler Agent telah diuji dalam lingkungan produksi berskala besar dan menawarkan kinerja serta stabilitas tinggi. Anda dapat menggunakan Logtail untuk mengumpulkan data kinerja yang dilaporkan oleh Continuous Profiler Agent dari program Java ke aplikasi Full-stack Observability untuk pemantauan dan analisis visual.

Prasyarat

Sebuah instance Full-stack Observability telah dibuat. Untuk informasi lebih lanjut, lihat Buat Instance.

Batasan

  • Hanya mendukung Linux Logtail V1.7 atau yang lebih baru.

  • Distribusi Linux berikut didukung: CentOS, Red Hat, Alibaba Cloud Linux, Ubuntu, dan Debian. Versi kernel harus 2.6.32-431.23.3.el6.x86_64 atau yang lebih baru. GNU C Library dan MUSL Library didukung.

  • Versi JDK didukung. Tabel berikut menjelaskan detailnya.

    Jenis mesin

    CPU

    Memori

    Mesin AUTO

    • OpenJDK 8u272 dan yang lebih baru, JDK 11, dan JDK 17 didukung.

    • OracleJDK 11 dan OracleJDK 17 didukung.

    • OracleJDK 8 tidak didukung.

    • OpenJDK 8u352 dan yang lebih baru, OpenJDK 11.0.17 dan yang lebih baru, dan OpenJDK 17.0.5 dan yang lebih baru didukung.

    • OracleJDK 8 tidak didukung.

    • OracleJDK 11.0.21 dan yang lebih baru, dan OracleJDK 17.0.9 dan yang lebih baru didukung.

    Mesin async_profiler

    OpenJDK 8, OpenJDK 11, OpenJDK 17, OracleJDK 8, OracleJDK 11, dan OracleJDK 17 didukung.

    OpenJDK 8, OpenJDK 11, OpenJDK 17, OracleJDK 8, OracleJDK 11, dan OracleJDK 17 didukung.

Deskripsi konsumsi sumber daya

Dalam sebagian besar skenario, overhead kinerja untuk program Java kurang dari 5%.

Langkah 1: Buat konfigurasi Logtail

  1. Masuk ke konsol Layanan Log Sederhana.

  2. Di bagian Log Application, klik tab Intelligent O&M. Kemudian, klik Full-stack Observability.

  3. Di halaman Simple Log Service Full-stack Observability, klik instance yang ingin Anda kelola.

  4. Di panel navigasi di sebelah kiri, klik Performance Monitoring.

    Jika ini pertama kalinya Anda menggunakan Pemantauan Kinerja di instance, klik Enable.

  5. Di pohon navigasi di sebelah kiri, klik Data Import. Di halaman Data Access Configurations, temukan Common Push Import di bagian Pemantauan Kinerja.

    Pertama kali Anda membuat konfigurasi Logtail untuk jenis data kinerja ini, nyalakan sakelar untuk pergi ke halaman konfigurasi. Jika Anda telah membuat konfigurasi Logtail, klik ikon 创建 untuk pergi ke halaman konfigurasi.

  6. Buat grup mesin.

    • Jika grup mesin tersedia, klik Use Existing Machine Groups.

    • Jika tidak ada grup mesin yang tersedia, lakukan langkah-langkah berikut:

      1. Periksa jenis server Anda.

        • Jika Anda menggunakan instance Elastic Compute Service (ECS) yang termasuk dalam akun Alibaba Cloud yang sama dengan Simple Log Service, klik tab ECS Instances, pilih Manually Select Instances dan instance ECS Anda, lalu klik Create.

          Untuk informasi lebih lanjut, lihat Instal Logtail pada Instance ECS.

        • Jika server Anda adalah instance ECS yang termasuk dalam akun Alibaba Cloud lain, server yang disediakan oleh penyedia layanan cloud pihak ketiga, atau server yang ditempatkan di pusat data yang dikelola sendiri, Anda harus menginstal Linux Logtail V1.7 atau yang lebih baru secara manual di server tersebut. Untuk informasi lebih lanjut, lihat Instal Logtail pada Server Linux.

          Penting

          Setelah Anda menginstal Logtail secara manual, Anda harus mengonfigurasi pengenal pengguna untuk server tersebut. Untuk informasi lebih lanjut, lihat Konfigurasikan Pengenal Pengguna.

        • Jika Anda menggunakan kluster Kubernetes, instal komponen Logtail dengan mengikuti instruksi di Kumpulkan Data Pemantauan tentang Sumber Daya Kubernetes.

      2. Setelah Logtail terinstal, klik Complete Installation.

      3. Di langkah Create Machine Group, konfigurasikan parameter Name dan klik Next.

        Simple Log Service memungkinkan Anda membuat grup mesin berbasis alamat IP dan grup mesin berbasis pengenal kustom. Untuk informasi lebih lanjut, lihat Buat Grup Mesin Berbasis Alamat IP dan Buat Grup Mesin Berbasis Pengenal Kustom.

        Penting

        Jika Anda menginstal Logtail di kluster Kubernetes, grup mesin bernama dalam format {instanceId}-{clusterId}-k8s-cluster akan otomatis dibuat. Anda dapat melewati langkah ini.

  7. Di langkah Machine Group Settings, pindahkan server Anda dari bagian Source Server Groups ke bagian Applied Server Groups dan klik Next.

    Penting

    Jika Anda mengaktifkan grup mesin segera setelah Anda membuat grup mesin, status detak jantung grup mesin mungkin FAIL. Masalah ini terjadi karena grup mesin belum terhubung ke Simple Log Service. Untuk menyelesaikan masalah ini, Anda dapat klik Automatic Retry. Jika masalah tetap ada, lihat Apa yang harus saya lakukan jika grup mesin Logtail tidak memiliki detak jantung?

  8. Di langkah Specify Data Source, konfigurasikan parameter dan klik Complete. Tabel berikut menjelaskan parameter.

    Parameter

    Deskripsi

    Config Name

    Nama konfigurasi Logtail. Anda bisa memasukkan nama kustom.

    Cluster

    Nama cluster. Anda bisa memasukkan nama kustom.

    Setelah Anda mengonfigurasi parameter ini, Simple Log Service menambahkan tag cluster=<Nama Cluster> ke data kinerja yang dikumpulkan menggunakan konfigurasi Logtail.

    Penting

    Pastikan bahwa nama cluster unik. Jika tidak, konflik data mungkin terjadi.

    Address

    Alamat untuk pengumpulan data. Nilai default adalah http://:4040, di mana 4040 adalah port default Pyroscope. Jika Anda mempertahankan nilai default, server HTTP menggunakan alamat lokal.

    • Jika Anda menggunakan instance ECS, tentukan nilai dalam format berikut: Alamat IP instance ECS:4040.

    • Jika Anda menggunakan server yang berada di kluster Kubernetes, atur nilainya menjadi logtail-kubernetes-metrics.sls-monitoring:4040.

    • Jika Anda menggunakan server dari penyedia layanan cloud pihak ketiga atau pusat data, tentukan nilai dalam format berikut: Alamat IP server:4040.

    Endpoint

    Titik akhir default Pyroscope. Nilai default: /ingest.

    Read Timeout Period

    Periode timeout untuk operasi baca data. Nilai default: 10. Satuan: detik.

    Maximum Body Size

    Ukuran maksimum data yang dapat dikumpulkan.

Setelah Anda mengonfigurasi pengaturan, Simple Log Service secara otomatis membuat aset seperti Metricstores. Untuk informasi lebih lanjut, lihat Aset.

Langkah 2: Unduh agen Java

  • Wilayah di China

    wget https://logtail-release-cn-hangzhou.oss-cn-hangzhou.aliyuncs.com/jvm/continuous-profile-collector-agent-1.9.0.jar
  • Wilayah di Luar China

    wget https://logtail-release-ap-southeast-1.oss-ap-southeast-1.aliyuncs.com/jvm/continuous-profile-collector-agent-1.9.0.jar

Langkah 3: Konfigurasikan program Java untuk mendorong data kinerja

  • Konfigurasikan Program Java Menggunakan Parameter JVM

  • java \
    -Dprofiling.app.name=your_service_name \
    -Dprofiling.agent.upload.server="http://{host}:{port}" \
    -Dprofiling.cpu.engine={engine} \
    -javaagent:{path for javaagent} \
    -jar demo.jar

    Parameter

    Deskripsi

    profiling.app.name

    Nama layanan.

    profiling.agent.upload.server

    Alamat untuk unggah data.

    • Jika Anda menggunakan instance ECS, tentukan nilai dalam format berikut: Alamat IP instance ECS:4040.

    • Jika Anda menggunakan server yang berada di kluster Kubernetes, atur nilainya menjadi logtail-kubernetes-metrics.sls-monitoring:4040.

    • Jika Anda menggunakan server dari penyedia layanan cloud pihak ketiga atau pusat data, tentukan nilai dalam format berikut: Alamat IP server:4040.

    profiling.cpu.engine

    Mesin yang digunakan untuk pemantauan hotspot CPU. Nilai default: off. Nilai valid: auto, async_profiler, jfr, dan off.

    Nilai off menunjukkan bahwa pemantauan hotspot CPU dinonaktifkan. Nilai lain menunjukkan bahwa pemantauan hotspot CPU diaktifkan. Kami merekomendasikan Anda mengatur nilai ke auto.

  • Konfigurasikan Program Java Menggunakan Variabel Lingkungan

  • export PROFILING_APP_NAME="your_service_name"
    export PROFILING_AGENT_UPLOAD_SERVER="http://{host}:{port}"
    export PROFILING_CPU_ENGINE="{engine}"
    export PROFILING_ALLOC_ENGINE="{engine}"
    

    Parameter

    Deskripsi

    PROFILING_APP_NAME

    Nama layanan.

    PROFILING_AGENT_UPLOAD_SERVER

    Alamat untuk unggah data.

    • Jika Anda menggunakan instance ECS, tentukan nilai dalam format berikut: Alamat IP instance ECS:4040.

    • Jika Anda menggunakan server yang berada di kluster Kubernetes, atur nilainya menjadi logtail-kubernetes-metrics.sls-monitoring:4040.

    • Jika Anda menggunakan server dari penyedia layanan cloud pihak ketiga atau pusat data, tentukan nilai dalam format berikut: Alamat IP server:4040.

    PROFILING_CPU_ENGINE

    Mesin yang digunakan untuk pemantauan hotspot CPU. Nilai default: off. Nilai valid: auto, async_profiler, jfr, dan off.

    Nilai off menunjukkan bahwa pemantauan hotspot CPU dinonaktifkan. Nilai lain menunjukkan bahwa pemantauan hotspot CPU diaktifkan. Kami merekomendasikan Anda mengatur nilai ke auto.

    Catatan

    Parameter JVM

    Variabel lingkungan

    Deskripsi

    profiling.app.name

    PROFILING_APP_NAME

    Nama aplikasi.

    profiling.agent.upload.server

    PROFILING_AGENT_UPLOAD_SERVER

    Alamat server tempat file Java Flight Recorder (JFR) diunggah. Nilai default: http://localhost:4040.

    • Jangan mulai alamat dengan http. Sistem secara otomatis menambahkan awalan http ke alamat.

    • Jangan akhiri alamat dengan garis miring (/). Sistem secara otomatis menambahkan garis miring (/) ke alamat.

    profiling.agent.timeout

    PROFILING_AGENT_TIMEOUT

    Periode timeout untuk mengunggah file JFR. Nilai default: 10. Satuan: detik.

    profiling.agent.ingest.max.tries

    PROFILING_AGENT_INGEST_MAX_TRIES

    Jumlah maksimum percobaan ulang yang diizinkan untuk mengunggah file JFR. Nilai default: 2.

    profiling.app.http.headers

    PROFILING_APP_HTTP_HEADERS

    Header HTTP yang digunakan saat Anda mengunggah file JFR. Parameter ini kosong secara default. Contoh: SESSION_ID=1111;XXX=YYY.

    profiling.app.labels

    PROFILING_APP_LABELS

    Tag yang ditambahkan ke file JFR saat Anda mengunggah file JFR. Parameter ini kosong secara default. Contoh: env=dev;lang=java;biz=member.

    profiling.agent.log.level

    PROFILING_AGENT_LOG_LEVEL

    Tingkat log. Nilai default: info. Nilai valid: info, debug, dan error.

    profiling.agent.log.file

    PROFILING_AGENT_LOG_FILE

    Path ke file log. Anda dapat mengatur nilainya ke /path/to/profiling.log. Secara default, path ditulis ke Java stdout dan stderr.

    profiling.period

    PROFILING_PERIOD

    Interval pengunggahan data kinerja. Nilai default: 1. Satuan: menit.

    profiling.delay

    PROFILING_DELAY

    Latensi pemantauan kinerja. Nilai default: 0, yang menunjukkan bahwa pemantauan kinerja dimulai segera setelah mesin pemantauan kinerja diaktifkan. Jika Anda mengatur nilainya ke N, pemantauan kinerja dimulai N detik setelah mesin pemantauan kinerja diaktifkan.

    profiling.start.at.zero.second

    PROFILING_START_AT_ZERO_SECOND

    Menentukan apakah akan memulai pemantauan kinerja pada detik ke-0 setiap menit. Jika Anda ingin memulai pemantauan kinerja pada detik ke-0 setiap menit, atur nilainya menjadi true. Misalnya, jika nilainya diatur menjadi true dan waktu saat ini adalah detik ke-30 dari menit saat ini, sistem secara otomatis menunggu 30 detik sebelum memulai pemantauan kinerja.

    Nilai default: false.

    profiling.compression.mode

    PROFILING_COMPRESSION_MODE

    Mode kompresi. Nilai default: none. Nilai valid: gzip dan none.

    • none: File tidak dikompresi dan memiliki akhiran .jfr.

    • gzip: File dikompresi dan memiliki akhiran .jfr.gzip.

    profiling.trigger.mode

    PROFILING_TRIGGER_MODE

    Mode pemicu. Anda dapat memicu pemantauan kinerja secara berkala atau satu kali. Nilai default: periodic. Nilai valid: periodic dan api.

    Kami merekomendasikan Anda mengatur nilai ke periodic dalam mode agen.

    profiling.output.format

    PROFILING_OUTPUT_FORMAT

    Format file. Nilai default: jfr. Nilai valid: jfr dan collapsed.

    profiling.cpu.engine

    PROFILING_CPU_ENGINE

    Mesin yang digunakan untuk pemantauan hotspot CPU. Nilai default: off. Nilai valid: auto, async_profiler, jfr, dan off.

    Nilai off menunjukkan bahwa pemantauan hotspot CPU dinonaktifkan. Nilai lain menunjukkan bahwa pemantauan hotspot CPU diaktifkan. Kami merekomendasikan Anda mengatur nilai ke auto.

    profiling.cpu.interval

    PROFILING_CPU_INTERVAL

    Interval pemantauan hotspot CPU. Nilai kecil meningkatkan overhead. Nilai default: 10. Satuan: milidetik.

    profiling.wallclock.engine

    PROFILING_WALLCLOCK_ENGINE

    Mesin yang digunakan untuk pemantauan hotspot jam dinding. Nilai default: off. Nilai valid: auto, async_profiler, dan off.

    Nilai off menunjukkan bahwa pemantauan hotspot jam dinding dinonaktifkan. Nilai lain menunjukkan bahwa pemantauan hotspot jam dinding diaktifkan. Kami merekomendasikan Anda mengatur nilai ke off.

    profiling.wallclock.interval

    PROFILING_WALLCLOCK_INTERVAL

    Interval pemantauan hotspot jam dinding. Nilai kecil meningkatkan overhead. Nilai default: 20. Satuan: milidetik.

    profiling.wallclock.thread.filter

    PROFILING_WALLCLOCK_THREAD_FILTER

    Filter thread yang digunakan untuk pemantauan hotspot jam dinding. Nilai default: 0, yang menunjukkan bahwa tidak ada thread yang terlibat.

    Daftar berikut memberikan contoh cara menentukan nilai:

    • Kosong: ""

    • Thread tunggal: 123

    • Beberapa thread: 122,123

    Rentang thread: 122 hingga 134

    profiling.wallclock.threads.per.tick

    PROFILING_WALLCLOCK_THREADS_PER_TICK

    Jumlah maksimum thread yang digunakan untuk memantau hotspot jam dinding. Nilai default: 8.

    profiling.alloc.engine

    PROFILING_ALLOC_ENGINE

    Mesin yang digunakan untuk pemantauan hotspot Alloc. Nilai default: off. Nilai valid: auto, async_profiler, jfr, dan off. Pemantauan hotspot Alloc merujuk pada pemantauan hotspot permintaan memori.

    Nilai off menunjukkan bahwa pemantauan hotspot Alloc dinonaktifkan. Nilai lain menunjukkan bahwa pemantauan hotspot Alloc diaktifkan. Kami merekomendasikan Anda mengatur nilai ke auto.

    profiling.alloc.interval

    PROFILING_ALLOC_INTERVAL

    Interval pemantauan hotspot Alloc. Nilai kecil meningkatkan overhead. Nilai default: 256. Satuan: kilo byte.

    profiling.jfr.max.size

    PROFILING_JFR_MAX_SIZE

    Batas atas ukuran file JFR. Jika ukuran mencapai batas atas, data dalam file secara otomatis dibuang. Nilai default: 64m. Contoh nilai: 256k dan 10m.

    profiling.jfr.max.age

    PROFILING_JFR_MAX_AGE

    Batas atas usia file JFR. Jika usia mencapai batas atas, data dalam file secara otomatis dibuang. Nilai default: 10m. Contoh nilai: 1m, 1h, dan 1d.

    profiling.jfr.max.stack.depth

    PROFILING_JFR_MAX_STACK_DEPTH

    Kedalaman tumpukan maksimum yang diizinkan selama sampling JFR. Nilai default: 64.

Apa yang harus dilakukan selanjutnya

Setelah Anda mengumpulkan data kinerja dari program Java ke Full-stack Observability, Anda dapat menggunakan fitur pemantauan kinerja untuk mendiagnosis masalah kinerja. Untuk informasi lebih lanjut, lihat Kueri Data dan Perbandingan Data.