Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam tutorial ini, Anda menambahkan pengumpul OpenTelemetry sebagai kontainer sidecar ke aplikasi Linux (bring-your-own-code) di Azure App Service. Untuk kontainer kustom, lihat Tutorial: Mengonfigurasi kontainer sidecar untuk kontainer kustom di Azure App Service.
Jika Anda tidak memiliki akun Azure, buat akun gratis sebelum memulai.
Kontainer sidecar di App Service memungkinkan Anda menyebarkan layanan dan fitur tambahan ke aplikasi Linux Anda tanpa mengkoplorasinya dengan erat ke kontainer utama bawaan atau kustom. Kontainer sidecar berjalan bersama kontainer aplikasi utama dalam paket App Service yang sama.
Anda dapat menambahkan hingga sembilan kontainer sidecar untuk setiap aplikasi Linux di App Service. Misalnya, Anda dapat menambahkan layanan pemantauan, pengelogan, konfigurasi, dan jaringan sebagai kontainer sespan. Sidecar pengumpul OpenTelemetry adalah salah satu contoh untuk pemantauan.
1. Siapkan sumber daya yang diperlukan
Pertama, Anda membuat sumber daya yang digunakan tutorial. Mereka digunakan untuk skenario khusus ini dan tidak diperlukan untuk kontainer sespan secara umum.
Di Azure Cloud Shell, jalankan perintah berikut. Pastikan untuk menyediakan
<environment-name>.git clone https://github.com/Azure-Samples/app-service-sidecar-tutorial-prereqs cd app-service-sidecar-tutorial-prereqs azd env new <environment-name> azd provisionSaat diminta, berikan langganan dan wilayah pilihan Anda. Contohnya:
- Langganan: Langganan Anda.
- Wilayah: (Eropa) Eropa Barat.
Saat penyebaran selesai, Anda akan melihat output berikut:
APPLICATIONINSIGHTS_CONNECTION_STRING = InstrumentationKey=...;IngestionEndpoint=...;LiveEndpoint=... Azure container registry name = <registry-name> Managed identity resource ID = <managed-identity-resource-id> Managed identity client ID = <managed-identity-client-id> Open resource group in the portal: https://portal.azure.com/#@/resource/subscriptions/<subscription-id>/resourceGroups/<group-name>
Salin nilai output ini untuk nanti. Anda juga dapat menemukannya di portal, di halaman manajemen sumber daya masing-masing.
Catatan
azd provisionmenggunakan templat yang disertakan untuk membuat sumber daya Azure berikut:- Grup sumber daya berdasarkan nama lingkungan.
-
Registri kontainer dengan dua gambar yang disebarkan:
- Gambar Nginx dengan modul OpenTelemetry.
- Gambar pengumpul OpenTelemetry, dikonfigurasi untuk diekspor ke Azure Monitor.
- Identitas terkelola yang ditetapkan pengguna dengan
AcrPullizin pada grup sumber daya (untuk menarik gambar dari registri). - Ruang kerja analitik log.
- Komponen Application Insights .
2. Membuat aplikasi web
Dalam langkah ini, Anda menyebarkan templat ASP.NET aplikasi Core. Kembali ke Azure Cloud Shell, jalankan perintah berikut. Ganti <app-name> dengan nama aplikasi yang unik.
cd ~
dotnet new webapp -n MyFirstAzureWebApp --framework net8.0
cd MyFirstAzureWebApp
az webapp up --name <app-name> --os-type linux
Setelah beberapa menit, aplikasi web .NET ini disebarkan sebagai MyFirstAzureWebApp.dll ke aplikasi App Service baru.
3. Tambahkan kontainer sespan
Di bagian ini, Anda menambahkan kontainer sidecar ke aplikasi Linux Anda.
Di portal Azure, navigasikan ke halaman manajemen aplikasi
Di halaman manajemen aplikasi, dari menu sebelah kiri, pilih Pusat Penyebaran.
Pilih banner Tertarik untuk menambahkan kontainer untuk dijalankan bersama aplikasi Anda? Klik di sini untuk mencobanya.
Saat halaman dimuat ulang, pilih tab Kontainer (baru).
Pilih Tambahkan dan konfigurasikan kontainer baru sebagai berikut:
- Nama: otel-collector
- Sumber gambar: Azure Container Registry
- Autentikasi: Kredensial Admin
-
Registri: Registri yang dibuat oleh
azd provision - Gambar: otel-collector
- Tag: terbaru
Pilih Terapkan.
4. Mengonfigurasi variabel lingkungan
Untuk skenario sampel, sidecar pengumpul otel dikonfigurasi untuk mengekspor data OpenTelemetry ke Azure Monitor, tetapi memerlukan string koneksi sebagai variabel lingkungan (lihat file konfigurasi OpenTelemetry untuk gambar otel-collector).
Anda mengonfigurasi variabel lingkungan untuk kontainer seperti aplikasi App Service apa pun, dengan mengonfigurasi pengaturan aplikasi. Pengaturan aplikasi dapat diakses oleh semua kontainer di aplikasi.
Navigasikan ke halaman manajemen aplikasi App Service.
Dari menu sebelah kiri, pilih Variabel lingkungan.
Tambahkan pengaturan aplikasi dengan memilih Tambahkan dan konfigurasikan sebagai berikut:
- Nama: APPLICATIONINSIGHTS_CONNECTION_STRING
-
Nilai: String koneksi dalam output
azd provision. Jika Anda kehilangan sesi Cloud Shell, Anda juga dapat menemukannya di halaman Gambaran Umum sumber daya Application Insight, di bawah String Koneksi.
Pilih Terapkan, lalu Terapkan, lalu Konfirmasi.
5. Mengonfigurasi instrumentasi saat startup
Dalam langkah ini, Anda membuat instrumentasi untuk aplikasi Anda sesuai dengan langkah-langkah yang diuraikan dalam instrumentasi openTelemetry .NET zero-code.
Kembali ke Cloud Shell, buat startup.sh dengan baris berikut.
cat > startup.sh << 'EOF' #!/bin/bash # Download the bash script curl -sSfL https://github.com/open-telemetry/opentelemetry-dotnet-instrumentation/releases/latest/download/otel-dotnet-auto-install.sh -O # Install core files sh ./otel-dotnet-auto-install.sh # Enable execution for the instrumentation script chmod +x $HOME/.otel-dotnet-auto/instrument.sh # Setup the instrumentation for the current shell session . $HOME/.otel-dotnet-auto/instrument.sh export OTEL_SERVICE_NAME="MyFirstAzureWebApp-Azure" export OTEL_EXPORTER_OTLP_ENDPOINT="http://localhost:4318" export OTEL_TRACES_EXPORTER="otlp" export OTEL_METRICS_EXPORTER="otlp" export OTEL_LOGS_EXPORTER="otlp" # Run your application with instrumentation OTEL_SERVICE_NAME=myapp OTEL_RESOURCE_ATTRIBUTES=deployment.environment=staging,service.version=1.0.0 dotnet /home/site/wwwroot/MyFirstAzureWebApp.dll EOFSebarkan file ini ke aplikasi Anda dengan perintah Azure CLI berikut. Jika Anda masih berada di direktori ~/MyFirstAzureWebApp , maka tidak ada parameter lain yang diperlukan karena
az webapp upsudah mengatur default untuk grup sumber daya dan nama aplikasi.az webapp deploy --src-path startup.sh --target-path /home/site/startup.sh --type staticPetunjuk / Saran
Pendekatan ini menyebarkan file startup.sh secara terpisah dari aplikasi Anda. Dengan begitu, konfigurasi instrumentasi terpisah dari kode aplikasi Anda. Namun, Anda dapat menggunakan metode penyebaran lain untuk menyebarkan skrip bersama-sama dengan aplikasi Anda.
Kembali ke halaman manajemen aplikasi, dari menu sebelah kiri, pilih Konfigurasi.
Atur Perintah Startup ke /home/site/startup.sh. Ini adalah jalur yang sama dengan yang Anda sebarkan di langkah sebelumnya.
Pilih Simpan, lalu Lanjutkan.
5. Verifikasi di Application Insights
Sidecar pengumpul otel harus mengekspor data ke Application Insights sekarang.
Kembali ke tab browser untuk
https://<app-name>.azurewebsites.net, refresh halaman beberapa kali untuk menghasilkan beberapa permintaan web.Kembali ke halaman gambaran umum grup sumber daya, lalu pilih sumber daya Application Insights yang
azd updibuat. Sekarang Anda akan melihat beberapa data di bagan default.
Catatan
Dalam skenario pemantauan yang sangat umum ini, Application Insights hanyalah salah satu target OpenTelemetry yang dapat Anda gunakan, seperti Jaeger, Prometheus, dan Zipkin.
6. Membersihkan sumber daya
Ketika Anda tidak lagi memerlukan lingkungan, Anda dapat menghapus grup sumber daya dan semua sumber daya terkait. Cukup jalankan perintah ini di Cloud Shell:
cd ~/MyFirstAzureWebApp
az group delete --yes
cd ~/app-service-sidecar-tutorial-prereqs
azd down