Cara memantau aplikasi Spring Boot dengan Agen Java APM Elastis

Catatan

Azure Spring Apps adalah nama baru untuk layanan Azure Spring Cloud. Meskipun layanan memiliki nama baru, Anda akan melihat nama lama di beberapa tempat untuk sementara saat kami berupaya memperbarui aset seperti cuplikan layar, video, dan diagram.

Artikel ini berlaku untuk: ✔️ Basic/Standard ❌ Enterprise

Artikel ini menjelaskan cara menggunakan Agen APM Elastis untuk memantau aplikasi Spring Boot yang berjalan di Azure Spring Apps.

Dengan Solusi Observabilitas Elastis, Anda dapat mencapai observabilitas terpadu untuk:

Video berikut memperkenalkan observabilitas terpadu untuk aplikasi Spring Boot menggunakan Elastis.


Prasyarat

Menyebarkan aplikasi Spring Petclinic

Artikel ini menggunakan sampel Spring Petclinic untuk mengikuti langkah-langkah yang diperlukan. Gunakan langkah-langkah berikut untuk menyebarkan aplikasi contoh:

  1. Ikuti langkah-langkah di Menyebarkan aplikasi Spring Boot menggunakan Azure Spring Apps dan MySQL hingga Anda mencapai bagian Menyebarkan aplikasi Spring Boot dan mengatur variabel lingkungan.

  2. Gunakan ekstensi Azure Spring Apps untuk Azure CLI dengan perintah berikut untuk membuat aplikasi yang dijalankan di Azure Spring Apps:

    az spring app create \
       --resource-group <your-resource-group-name> \
       --service <your-Azure-Spring-Apps-instance-name> \
       --name <your-app-name> \
       --is-public true
    

Mengaktifkan penyimpanan persisten kustom untuk Azure Spring Apps

Gunakan langkah-langkah berikut untuk mengaktifkan penyimpanan persisten kustom:

  1. Ikuti langkah-langkah di Cara mengaktifkan penyimpanan persisten Anda sendiri di Azure Spring Apps.

  2. Gunakan perintah Azure CLI berikut untuk menambahkan penyimpanan persisten untuk aplikasi Azure Spring Apps Anda.

    az spring app append-persistent-storage \
       --resource-group <your-resource-group-name> \
       --service <your-Azure-Spring-Apps-instance-name> \
       --name <your-app-name> \
       --persistent-storage-type AzureFileVolume \
       --share-name <your-Azure-file-share-name> \
       --mount-path <unique-mount-path> \
       --storage-name <your-mounted-storage-name>
    

Mengaktifkan Agen Java APM Elastis

Sebelum melanjutkan, Anda memerlukan informasi konektivitas server Elastic APM, yang mengasumsikan Anda telah menyebarkan Elastic di Azure. Untuk informasi selengkapnya, lihat Cara menyebarkan dan mengelola Elastis di Microsoft Azure. Untuk mendapatkan informasi ini, gunakan langkah-langkah berikut:

  1. Di portal Microsoft Azure, buka halaman Gambaran Umum penyebaran Elastis Anda, lalu pilih Kelola Penyebaran Cloud Elastis.

    Cuplikan layar halaman portal Azure Elasticsearch (Elastic Cloud).

  2. Di bawah penyebaran Anda di Elastic Cloud Console, pilih bagian APM & Fleet untuk mendapatkan titik akhir Elastic APM Server dan token rahasia.

    Cuplikan layar halaman Elastic APM & Fleet dengan titik akhir Salin dan token rahasia APM Server disorot.

  3. Unduh Agen Java APM Elastis dari Maven Central.

    Cuplikan layar Maven Central dengan unduhan jar disorot.

  4. Unggah Agen APM Elastis ke penyimpanan persisten kustom yang Anda aktifkan sebelumnya. Buka Azure Fileshare dan pilih Unggah untuk menambahkan file JAR agen.

    Cuplikan layar portal Azure yang memperlihatkan panel Unggah file dari halaman Berbagi file.

  5. Setelah Anda memiliki titik akhir APM Elastis dan token rahasia, gunakan perintah berikut untuk mengaktifkan agen Java APM Elastis saat menyebarkan aplikasi. Tempat penampung <agent-location> mengacu pada lokasi penyimpanan yang dipasang dari Agen Java APM Elastis.

    az spring app deploy \
        --name <your-app-name> \
        --artifact-path <unique-path-to-your-app-jar-on-custom-storage> \
        --jvm-options='-javaagent:<elastic-agent-location>' \
        --env ELASTIC_APM_SERVICE_NAME=<your-app-name> \
              ELASTIC_APM_APPLICATION_PACKAGES='<your-app-package-name>' \
              ELASTIC_APM_SERVER_URL='<your-Elastic-APM-server-URL>' \
              ELASTIC_APM_SECRET_TOKEN='<your-Elastic-APM-secret-token>'
    

Mengotomatiskan penyediaan

Anda juga dapat menjalankan alur otomatisasi provisi menggunakan Terraform, Bicep, atau templat Azure Resource Manager (templat ARM). Alur ini dapat memberikan pengalaman penyerahan yang lengkap untuk instrumen dan memantau setiap aplikasi baru yang Anda buat dan sebarkan.

Melakukan provisi otomatis dengan menggunakan Terraform

Untuk mengonfigurasi variabel lingkungan di template Terraform, tambahkan kode berikut ke template, ganti tempat penampung <...> dengan nilai Anda sendiri. Untuk informasi selengkapnya, lihat Mengelola Penyebaran Azure Spring Apps Aktif.

resource "azurerm_spring_cloud_java_deployment" "example" {
  ...
  jvm_options = "-javaagent:<elastic-agent-location>"
  ...
    environment_variables = {
      "ELASTIC_APM_SERVICE_NAME"="<your-app-name>",
      "ELASTIC_APM_APPLICATION_PACKAGES"="<your-app-package>",
      "ELASTIC_APM_SERVER_URL"="<your-Elastic-APM-server-URL>",
      "ELASTIC_APM_SECRET_TOKEN"="<your-Elastic-APM-secret-token>"
  }
}

Mengotomatiskan provisi menggunakan file Bicep

Untuk mengonfigurasi variabel lingkungan dalam file Bicep, tambahkan kode berikut ke file, ganti <tempat penampung ...> dengan nilai Anda sendiri. Untuk informasi selengkapnya, lihat Microsoft.AppPlatform Spring/apps/deployments.

deploymentSettings: {
  environmentVariables: {
    ELASTIC_APM_SERVICE_NAME='<your-app-name>',
    ELASTIC_APM_APPLICATION_PACKAGES='<your-app-package>',
    ELASTIC_APM_SERVER_URL='<your-Elastic-APM-server-URL>',
    ELASTIC_APM_SECRET_TOKEN='<your-Elastic-APM-secret-token>'
  },
  jvmOptions: '-javaagent:<elastic-agent-location>',
  ...
}

Melakukan provisi otomatis dengan menggunakan templat ARM

Untuk mengonfigurasi variabel lingkungan di template ARM, tambahkan kode berikut ke template, ganti tempat penampung <...> dengan nilai Anda sendiri. Untuk informasi selengkapnya, lihat Microsoft.AppPlatform Spring/apps/deployments.

"deploymentSettings": {
  "environmentVariables": {
    "ELASTIC_APM_SERVICE_NAME"="<your-app-name>",
    "ELASTIC_APM_APPLICATION_PACKAGES"="<your-app-package>",
    "ELASTIC_APM_SERVER_URL"="<your-Elastic-APM-server-URL>",
    "ELASTIC_APM_SECRET_TOKEN"="<your-Elastic-APM-secret-token>"
  },
  "jvmOptions": "-javaagent:<elastic-agent-location>",
  ...
}

Meningkatkan Agen Java APM Elastis

Guna merencanakan peningkatan Anda, lihat Meningkatkan versi untuk Cloud Elastis di Azure, dan Melanggar Perubahan untuk APM. Setelah Anda meningkatkan APM Server, unggah file JAR agen Elastic APM Java di penyimpanan persisten kustom. Kemudian, mulai ulang aplikasi Anda dengan opsi JVM yang diperbarui yang menunjuk ke JAR agen Elastic APM Java yang ditingkatkan.

Memantau aplikasi dan metrik dengan APM Elastis

Gunakan langkah-langkah berikut untuk memantau aplikasi dan metrik:

  1. Di portal Microsoft Azure, buka halaman Gambaran Umum penyebaran Elastis Anda, lalu pilih tautan Kibana.

    Cuplikan layar portal Azure yang memperlihatkan halaman Elasticsearch dengan tautan Kibana URL Penyebaran disorot.

  2. Setelah Kibana terbuka, cari APM di bilah pencarian, lalu pilih APM.

    Cuplikan layar Elastic / Kibana yang menunjukkan hasil pencarian APM.

APM Kibana adalah aplikasi yang dikumpulkan untuk mendukung alur kerja Pemantauan Aplikasi. Di sini Anda dapat melihat detail tingkat tinggi seperti waktu permintaan/respons, throughput, dan transaksi dalam layanan dengan dampak paling besar pada durasi.

Cuplikan layar Elastic / Kibana yang memperlihatkan halaman Gambaran Umum Layanan APM.

Anda dapat menelusuri dengan sangat detail transaksi tertentu untuk memahami detail khusus transaksi seperti pelacakan terdistribusi.

Cuplikan layar Elastic / Kibana yang memperlihatkan halaman Transaksi Layanan APM.

Agen Java APM Elastis juga mengambil metrik JVM dari aplikasi Azure Spring Apps yang tersedia dengan Aplikasi Kibana bagi pengguna untuk pemecahan masalah.

Cuplikan layar Elastic / Kibana yang memperlihatkan halaman JVM Layanan APM.

Dengan menggunakan mesin AI bawaan dalam solusi Elastis, Anda juga dapat mengaktifkan Deteksi Anomali pada Layanan Azure Spring Apps dan memilih tindakan yang sesuai - seperti pemberitahuan Teams, pembuatan masalah JIRA, panggilan API berbasis webhook, dan lainnya.

Cuplikan layar Elastic / Kibana yang memperlihatkan halaman Layanan APM dengan panel Buat aturan yang ditampilkan dan Tindakan disorot.

Langkah berikutnya