Menggunakan Agen Dalam Proses Java Application Insights di Azure Spring Apps

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.

Dengan aplikasi Spring Boot Native Image, gunakan azure Monitor OpenTelemetry Distro / Application Insights di proyek aplikasi Java gambar asli Spring Boot alih-alih agen Application Insights Java.

Artikel ini berlaku untuk: ✔️ Konsumsi standar dan khusus (Pratinjau) ✔️ Basic/Standard ✔️ Enterprise

Artikel ini menjelaskan cara memantau aplikasi dengan menggunakan Agen Java Application Insights di Azure Spring Apps.

Dengan fitur ini Anda dapat:

  • Telusuri data penelusuran dengan filter berbeda.
  • Lihat peta dependensi aplikasi Spring.
  • Periksa kinerja permintaan.
  • Pantau metrik langsung real time.
  • Periksa kegagalan permintaan.
  • Periksa metrik aplikasi.
  • Periksa log aplikasi.

Application Insights memberikan banyak perspektif yang dapat diamati, termasuk:

  • Peta aplikasi
  • Performa
  • Kegagalan
  • Metrik
  • Metrik Langsung
  • Ketersediaan
  • Log

Menggunakan fitur Application Insights

Saat fitur Application Insights diaktifkan, Anda dapat:

  • Di panel navigasi, pilih Application Insights untuk melihat halaman Gambaran Umum Application Insights. Halaman Gambaran Umum menunjukkan gambaran umum semua aplikasi yang sedang berjalan.

  • Klik Peta Aplikasi untuk melihat status panggilan antar aplikasi.

    Cuplikan layar portal Azure yang memperlihatkan halaman peta Aplikasi Application Insights.

  • Pilih tautan antara pelanggan-layanan dan petclinic untuk melihat detail selengkapnya seperti kueri dari SQL.

  • Pilih titik akhir untuk melihat semua aplikasi yang membuat permintaan ke titik akhir.

  • Di panel navigasi, pilih Performa untuk melihat data performa semua operasi, dependensi, dan peran aplikasi.

    Cuplikan layar portal Azure yang memperlihatkan halaman Performa Application Insights.

  • Di panel navigasi, pilih Kegagalan untuk melihat kegagalan atau pengecualian yang tidak terduga dari aplikasi Anda.

    Cuplikan layar portal Azure yang memperlihatkan halaman Kegagalan Application Insights.

  • Di panel navigasi, pilih Metrik dan pilih namespace layanan untuk melihat metrik Spring Boot dan metrik kustom, jika ada.

    Cuplikan layar portal Azure yang memperlihatkan halaman Metrik Application Insights.

  • Di panel navigasi, pilih Metrik Langsung untuk melihat metrik real-time untuk dimensi yang berbeda.

    Cuplikan layar portal Azure yang memperlihatkan halaman Metrik Langsung Application Insights.

  • Di panel navigasi, pilih Ketersediaan untuk memantau ketersediaan dan respons aplikasi Web dengan membuat pengujian Ketersediaan di Application Insights.

    Cuplikan layar portal Azure yang memperlihatkan halaman Ketersediaan Application Insights.

  • Di panel navigasi, pilih Log untuk menampilkan semua log aplikasi, atau satu log aplikasi saat memfilter menurut cloud_RoleName.

    Cuplikan layar portal Azure yang memperlihatkan halaman Log Application Insights.

Mengelola Application Insights menggunakan portal Azure

Aktifkan Java In-Process Agent dengan menggunakan prosedur berikut ini.

  1. Buka layanan | Halaman gambaran umum instans layanan Anda lalu pilih Application Insights di bagian Pemantauan.

  2. Pilih Aktifkan Application Insights untuk mengaktifkan Application Insights di Azure Spring Apps.

  3. Pilih instans Application Insights yang ada atau buat yang baru.

  4. Saat Application Insights diaktifkan, Anda dapat mengonfigurasi satu rasio pengambilan sampel opsional (default 10,0%).

    Cuplikan layar portal Azure yang memperlihatkan halaman Application Insights untuk Azure Spring Apps dengan kotak centang Aktifkan Application Insights disorot.

  5. Pilih Simpan untuk menyimpan perubahan.

Catatan

Jangan gunakan instans Application Insights yang sama di instans Azure Spring Apps yang berbeda, atau Anda ditampilkan data campuran.

Anda dapat menggunakan Portal untuk memeriksa atau memperbarui pengaturan saat ini di Application Insights.

Mengaktifkan Application Insights menggunakan portal Azure

  1. Pilih Application Insights.

  2. Aktifkan Application Insights dengan memilih Edit pengikatan, atau hyperlink Tidak Terikat.

    Cuplikan layar portal Azure Azure yang memperlihatkan instans Azure Spring Apps dengan halaman Application Insights dan opsi 'Edit pengikatan'.

  3. Edit Application Insights atau Tingkat pengambilan sampel, lalu pilih Simpan.

Menonaktifkan Application Insights

  1. Pilih Application Insights.

  2. Pilih Lepas pengikatan untuk menonaktifkan Application Insights.

    Cuplikan layar portal Azure yang memperlihatkan instans Azure Spring Apps dengan halaman Application Insights dan opsi Unbinding.

Mengubah Pengaturan Application Insights

Pilih nama di bawah kolom Application Insights untuk membuka bagian Application Insights.

Cuplikan layar portal Azure yang memperlihatkan instans Azure Spring Apps dengan halaman Application Insights.

Mengedit pengikatan buildpack Application Insights di Layanan Build

Untuk memeriksa dan memperbarui pengaturan saat ini untuk pengikatan buildpack Application Insights di Layanan Build, ikuti langkah-langkah berikut:

  1. Pilih Layanan Build.
  2. Pilih penyusun Anda.
  3. Pilih Edit di bagian kolom Pengikatan.

Pengaturan Application Insights ada di item ApplicationInsights yang tercantum di kolom Jenis pengikatan.

  1. Pilih hyperlink Terikat, atau pilih Edit Pengikatan di bawah elips, untuk membuka dan mengedit pengikatan buildpack Application Insights.

    Cuplikan layar portal Azure yang memperlihatkan panel Edit pengikatan untuk penyusun default.

  2. Edit pengaturan pengikatan, lalu pilih Simpan.

    Cuplikan layar portal Azure yang memperlihatkan panel Edit pengikatan.

Mengelola Application Insights menggunakan Azure CLI

Anda dapat mengelola Application Insights menggunakan perintah Azure CLI. Dalam perintah berikut, pastikan untuk mengganti teks <tempat penampung> dengan nilai yang dijelaskan. Tempat penampung <service-instance-name> mengacu pada nama instans Azure Spring Apps Anda.

Mengaktifkan Application Insights

Untuk mengonfigurasi Application Insights saat membuat instans Azure Spring Apps, gunakan perintah berikut. Untuk app-insights argumen, Anda dapat menentukan nama Application Insights atau ID sumber daya.

az spring create \
    --resource-group <resource-group-name> \
    --name "service-instance-name" \
    --app-insights <name-or-resource-ID> \
    --sampling-rate <sampling-rate>
az spring create \
    --resource-group <resource-group-name> \
    --name "service-instance-name" \
    --app-insights <name-or-resource-ID> \
    --sampling-rate <sampling-rate> \
    --sku Enterprise

Anda juga dapat menggunakan string koneksi Application Insights (lebih disukai) atau kunci instrumentasi, seperti yang ditunjukkan dalam contoh berikut.

az spring create \
    --resource-group <resource-group-name> \
    --name <service-instance-name> \
    --app-insights-key <connection-string-or-instrumentation-key> \
    --sampling-rate <sampling-rate>
az spring create \
    --resource-group <resource-group-name> \
    --name <service-instance-name> \
    --app-insights-key <connection-string-or-instrumentation-key> \
    --sampling-rate <sampling-rate> \
    --sku Enterprise

Menonaktifkan Application Insights

Untuk menonaktifkan Application Insights saat membuat instans Azure Spring Apps, gunakan perintah berikut:

az spring create \
    --resource-group <resource-group-name> \
    --name <service-instance-name> \
    --disable-app-insights
az spring create \
    --resource-group <resource-group-name> \
    --name <service-instance-name> \
    --disable-app-insights \
    --sku Enterprise

Memeriksa pengaturan Application Insights

Untuk memeriksa pengaturan Application Insights dari instans Azure Spring Apps yang ada, gunakan perintah berikut:

az spring app-insights show \
    --resource-group <resource-group-name> \
    --name <service-instance-name>

Memperbarui Application Insights

Untuk memperbarui Application Insights agar menggunakan string koneksi (lebih diutamakan) atau kunci instrumentasi, gunakan perintah berikut:

az spring app-insights update \
    --resource-group <resource-group-name> \
    --name <service-instance-name> \
    --app-insights-key <connection-string-or-instrumentation-key> \
    --sampling-rate <sampling-rate>

Untuk memperbarui Application Insights agar menggunakan nama sumber daya atau ID, gunakan perintah berikut:

az spring app-insights update \
    --resource-group <resource-group-name> \
    --name <service-instance-name> \
    --app-insights <name-or-resource-ID> \
    --sampling-rate <sampling-rate>

Menonaktifkan Application Insights dengan perintah perbarui

Untuk menonaktifkan Application Insights pada instans Azure Spring Apps yang ada, gunakan perintah berikut:

az spring app-insights update \
    --resource-group <resource-group-name> \
    --name <service-instance-name> \
    --disable

Mengelola pengikatan buildpack Application Insights

Bagian ini hanya berlaku untuk paket Enterprise, dan memberikan instruksi yang melengkapi bagian sebelumnya.

Paket Azure Spring Apps Enterprise menggunakan pengikatan buildpack untuk mengintegrasikan Azure Application Insights dengan jenis ApplicationInsights. Untuk informasi selengkapnya, lihat Cara mengonfigurasi integrasi APM dan sertifikat CA.

Untuk membuat pengikatan buildpack Application Insights, gunakan perintah berikut:

az spring build-service builder buildpack-binding create \
    --resource-group <your-resource-group-name> \
    --service <your-service-instance-name> \
    --name <your-binding-name> \
    --builder-name <your-builder-name> \
    --type ApplicationInsights \
    --properties sampling-percentage=<your-sampling-percentage> \
                 connection-string=<your-connection-string>

Untuk mencantumkan semua pengikatan buildpack, dan menemukan Application Insights mengikat jenis ApplicationInsights, gunakan perintah berikut:

az spring build-service builder buildpack-binding list \
    --resource-group <your-resource-group-name> \
    --service <your-service-resource-name> \
    --builder-name <your-builder-name>

Untuk mengganti pengikatan buildpack Application Insights, gunakan perintah berikut:

az spring build-service builder buildpack-binding set \
    --resource-group <your-resource-group-name> \
    --service <your-service-instance-name> \
    --name <your-binding-name> \
    --builder-name <your-builder-name> \
    --type ApplicationInsights \
    --properties sampling-percentage=<your-sampling-percentage> \
                 connection-string=<your-connection-string>

Untuk mendapatkan pengikatan buildpack Application Insights, gunakan perintah berikut:

az spring build-service builder buildpack-binding show \
    --resource-group <your-resource-group-name> \
    --service <your-service-instance-name> \
    --name <your-binding-name> \
    --builder-name <your-builder-name>

Untuk menghapus pengikatan buildpack Application Insights, gunakan perintah berikut:

az spring build-service builder buildpack-binding delete \
    --resource-group <your-resource-group-name> \
    --service <your-service-instance-name> \
    --name <your-binding-name> \
    --builder-name <your-builder-name>

Automation

Bagian berikut menjelaskan cara mengotomatiskan penyebaran Anda menggunakan Bicep, templat Azure Resource Manager (templat ARM) atau Terraform.

Bicep

Untuk menyebarkan menggunakan file Bicep, salin konten berikut ke dalam file main.bicep . Untuk informasi selengkapnya, lihat Microsoft.AppPlatform Spring/monitoringSettings.

param springName string
param location string = resourceGroup().location

resource spring 'Microsoft.AppPlatform/Spring@2020-07-01' = {
  name: springName
  location: location
  properties: {}
}

resource monitorSetting 'Microsoft.AppPlatform/Spring/monitoringSettings@2020-11-01-preview' = {
  parent: spring
  name: 'default'
  properties: {
    appInsightsInstrumentationKey: '00000000-0000-0000-0000-000000000000'
    appInsightsSamplingRate: 88
  }
}

Templat ARM

Untuk menyebarkan menggunakan templat ARM, salin konten berikut ke dalam file azuredeploy.json. Untuk informasi selengkapnya, lihat Microsoft.AppPlatform Spring/monitoringSettings.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "springName": {
      "type": "string"
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]"
    }
  },
  "resources": [
    {
      "type": "Microsoft.AppPlatform/Spring",
      "apiVersion": "2020-07-01",
      "name": "[parameters('springName')]",
      "location": "[parameters('location')]",
      "properties": {}
    },
    {
      "type": "Microsoft.AppPlatform/Spring/monitoringSettings",
      "apiVersion": "2020-11-01-preview",
      "name": "[format('{0}/{1}', parameters('springName'), 'default')]",
      "properties": {
        "appInsightsInstrumentationKey": "00000000-0000-0000-0000-000000000000",
        "appInsightsSamplingRate": 88
      },
      "dependsOn": [
        "[resourceId('Microsoft.AppPlatform/Spring', parameters('springName'))]"
      ]
    }
  ]
}

Terraform

Untuk penyebaran Terraform, gunakan templat berikut. Untuk informasi selengkapnya, lihat azurerm_spring_cloud_service.

provider "azurerm" {
  features {}
}

resource "azurerm_resource_group" "example" {
  name     = "example-resources"
  location = "West Europe"
}

resource "azurerm_application_insights" "example" {
  name                = "tf-test-appinsights"
  location            = azurerm_resource_group.example.location
  resource_group_name = azurerm_resource_group.example.name
  application_type    = "web"
}

resource "azurerm_spring_cloud_service" "example" {
  name                = "example-springcloud"
  resource_group_name = azurerm_resource_group.example.name
  location            = azurerm_resource_group.example.location
  sku_name            = "S0"

  config_server_git_setting {
    uri          = "https://github.com/Azure-Samples/piggymetrics"
    label        = "config"
    search_paths = ["dir1", "dir2"]
  }

  trace {
    connection_string = azurerm_application_insights.example.connection_string
    sample_rate       = 10.0
  }

  tags = {
    Env = "staging"
  }
}

Automation dalam paket Enterprise menunggu dukungan. Dokumentasi ditambahkan segera setelah tersedia.

Pembaruan/peningkatan agen Java

Agen Java diperbarui/ditingkatkan secara teratur dengan JDK, yang dapat memengaruhi skenario berikut.

Catatan

Versi JDK diperbarui/ditingkatkan triwulanan per tahun.

  • Aplikasi yang ada yang menggunakan agen Java sebelum memperbarui/memutakhirkan tidak terpengaruh.
  • Aplikasi yang dibuat setelah memperbarui/memutakhirkan menggunakan versi baru agen Java.
  • Aplikasi yang ada yang sebelumnya tidak menggunakan agen Java memerlukan mulai ulang atau penyebaran ulang untuk menggunakan versi baru agen Java.

Agen Java diperbarui/ditingkatkan saat buildpack diperbarui.

Pemuatan-panas konfigurasi agen Java

Azure Spring Apps memiliki mekanisme pemuatan panas untuk menyesuaikan pengaturan konfigurasi agen tanpa memulai ulang aplikasi.

Catatan

Mekanisme pemuatan panas memiliki penundaan dalam beberapa menit.

  • Jika agen Java sudah diaktifkan, perubahan pada instans atau SamplingRate nilai Application Insights tidak memerlukan mulai ulang aplikasi.

  • Jika Anda mengaktifkan agen Java, maka Anda harus memulai ulang aplikasi.

  • Saat Anda menonaktifkan agen Java, aplikasi berhenti mengirim semua data pemantauan setelah penundaan dalam beberapa menit. Anda dapat memulai ulang aplikasi untuk menghapus agen dari lingkungan runtime Java.

Pencocokan konsep antara Azure Spring Apps dan Application Insights

Azure Spring Apps Application Insights
App * Peta/PeranAplikasi
* Metrik/PeranAplikasi
* Kegagalan/Peran/Peran Cloud
* Kinerja/Peran/Peran Cloud
App Instance * Peta/ PeranAplikasi
* Metrik Langsung/Nama Layanan
* Kegagalan/Peran/Peran Cloud
* Kinerja/Peran/Instans Cloud

Nama App Instance dari Azure Spring Apps diubah atau dihasilkan dalam skenario berikut:

  • Anda membuat aplikasi baru.
  • Anda menerapkan file JAR atau kode sumber ke aplikasi yang sudah ada.
  • Anda memulai penyebaran biru/hijau.
  • Anda mulai ulang aplikasi.
  • Anda menghentikan penyebaran aplikasi, lalu memulai ulang.

Ketika data disimpan dalam Application Insights, data itu akan memuat riwayat instans aplikasi Azure Spring Apps yang dibuat atau disebarkan sejak agen Java diaktifkan. Misalnya, di portal Application Insights, Anda dapat melihat data aplikasi yang dibuat kemarin, tetapi kemudian dihapus dalam rentang waktu tertentu, seperti 24 jam terakhir. Skenario berikut menunjukkan cara kerjanya:

  • Anda membuat aplikasi sekitar pukul 8:00 pagi hari ini dari Azure Spring Apps dengan agen Java yang diaktifkan, kemudian Anda menyebarkan file JAR ke aplikasi ini sekitar pukul 8:10 pagi hari ini. Setelah beberapa pengujian, Anda mengubah kode dan menyebarkan file JAR baru ke aplikasi ini pada pukul 8:30 pagi hari ini. Kemudian, Anda beristirahat, dan ketika Anda kembali sekitar pukul 11:00 pagi, Anda memeriksa beberapa data dari Application Insights. Anda melihat:
    • Tiga instans dalam Peta Aplikasi dengan rentang waktu dalam 24 jam terakhir, serta Kegagalan, Performa, dan Metrik.
    • Satu instans dalam Peta Aplikasi dengan rentang waktu dalam satu jam terakhir, serta Kegagalan, Performa, dan Metrik.
    • Satu instans dalam Metrik Langsung.
  • Anda membuat aplikasi sekitar pukul 8:00 pagi hari ini dari Azure Spring Apps dengan agen Java yang diaktifkan, kemudian Anda menyebarkan file JAR ke aplikasi ini sekitar pukul 8:10 pagi hari ini. Sekitar pukul 8:30 pagi hari ini, Anda mencoba penyebaran biru/hijau dengan file JAR lain. Saat ini, Anda memiliki dua penyebaran untuk aplikasi ini. Setelah istirahat sekitar pukul 11:00 pagi hari ini, Anda ingin memeriksa beberapa data dari Application Insights. Anda melihat:
    • Tiga instans dalam Peta Aplikasi dengan rentang waktu dalam 24 jam terakhir, serta Kegagalan, Performa, dan Metrik.
    • Dua instans dalam Peta Aplikasi dengan rentang waktu dalam satu jam terakhir, serta Kegagalan, Performa, dan Metrik.
    • Dua instans dalam Metrik Langsung.

Langkah berikutnya