تمكين محلل ملفات تعريف .NET على حاويات Azure
يمكنك تمكين محلل ملفات تعريف Application Insights ل .NET على التطبيقات التي تعمل في الحاوية الخاصة بك دون تعليمات برمجية تقريبا. لتمكين محلل ملفات تعريف .NET على مثيل الحاوية، تحتاج إلى:
- أضِف المرجع إلى حزمة
Microsoft.ApplicationInsights.Profiler.AspNetCore
NuGet. - قم بتحديث التعليمات البرمجية لتمكين محلل ملفات التعريف ل .NET.
- إعداد مفتاح تقرير عن حالة النظام Application Insights.
في هذه المقالة، ستتعرف على الطرق المختلفة التي يمكنك من خلالها:
- تثبيت حزمة NuGet في المشروع.
- قم بتعيين متغير البيئة عبر المنسق (مثل نظام Kubernetes).
- تعرف على اعتبارات الأمان حول نشر الإنتاج، مثل حماية مفتاح تقرير عن حالة النظام في Application Insights.
المتطلبات الأساسية
- مورد Application Insights. قم بتدوين مفتاح تقرير عن حالة النظام.
- Docker Desktop لإنشاء صور Docker.
- تم تثبيت .NET 6 SDK.
إعداد البيئة
قم بنسخ نموذج المشروع الآتي واستخدمه:
git clone https://github.com/microsoft/ApplicationInsights-Profiler-AspNetCore.git
انتقل إلى مثال تطبيق الحاوية:
cd examples/EnableServiceProfilerForContainerAppNet6
هذا المثال هو مشروع مجرد تم إنشاؤه عن طريق استدعاء أمر CLI التالي:
dotnet new mvc -n EnableServiceProfilerForContainerApp
لقد أضفنا تأخيرًا في
Controllers/WeatherForecastController.cs
المشروع لمحاكاة الازدحام.[HttpGet(Name = "GetWeatherForecast")] public IEnumerable<WeatherForecast> Get() { SimulateDelay(); ... // Other existing code. } private void SimulateDelay() { // Delay for 500ms to 2s to simulate a bottleneck. Thread.Sleep((new Random()).Next(500, 2000)); }
أضف حزمة NuGet لتجميع تتبعات .NET Profiler:
dotnet add package Microsoft.ApplicationInsights.Profiler.AspNetCore
تمكين Application Insights و.NET Profiler.
أضف
builder.Services.AddApplicationInsightsTelemetry()
الأسلوب وبعدهWebApplication.CreateBuilder()
builder.Services.AddServiceProfiler()
فيProgram.cs
:var builder = WebApplication.CreateBuilder(args); builder.Services.AddApplicationInsightsTelemetry(); // Add this line of code to enable Application Insights. builder.Services.AddServiceProfiler(); // Add this line of code to enable Profiler builder.Services.AddControllersWithViews(); var app = builder.Build();
اسحب أحدث صور لوقت تشغيل/ تحديث إصدار الذاكر الأساسية لـ ASP.NET
انتقل إلى دليل مثال .NET Core 6.0:
cd examples/EnableServiceProfilerForContainerAppNet6
اسحب أحدث صور ASP.NET Core:
docker pull mcr.microsoft.com/dotnet/sdk:6.0 docker pull mcr.microsoft.com/dotnet/aspnet:6.0
تلميح
ابحث عن الصور الرسمية ل Docker SDK ووقت التشغيل.
أضف مفتاح Application Insights
عبر مورد Application Insights في مدخل Azure، قم بتدوين مفتاح التقرير عن حالة نظام Application Insights.
افتح
appsettings.json
وأضف مفتاح التقرير عن حالة نظام Application Insights إلى قسم التعليمات البرمجية هذا:{ "ApplicationInsights": { "InstrumentationKey": "Your instrumentation key" } }
قم بإنشاء صورة Docker وتشغيلها
راجع ملف Docker.
قم بإنشاء صورة المثال:
docker build -t profilerapp .
قم بتشغيل الحاوية:
docker run -d -p 8080:80 --name testapp profilerapp
اعرض الحاوية عبر مستعرض الويب
للضغط على نقطة النهاية، لديك خياران:
تفضل بزيارة
http://localhost:8080/weatherforecast
المستعرض.استخدام curl:
curl http://localhost:8080/weatherforecast
افحص السجلات
اختيارياً، افحص السجل المحلي لمعرفة انتهاء جلسة عمل جمع المعلومات من عدم انتهائها:
docker logs testapp
في السجلات المحلية، لاحظ الأحداث الآتية:
Starting application insights profiler with instrumentation key: your-instrumentation key # Double check the instrumentation key
Service Profiler session started. # Profiler started.
Finished calling trace uploader. Exit code: 0 # Uploader is called with exit code 0.
Service Profiler session finished. # A profiling session is completed.
عرض تتبعات محلل ملفات تعريف .NET
انتظر لمدة 2 إلى 5 دقائق بحيث يمكن تجميع الأحداث في Application Insights.
افتح جزء Performance في مورد Application Insights.
بعد الانتهاء من عملية التتبع، يظهر الزر تتبعات محلل ملفات التعريف.
تنظيف الموارد
قم بتشغيل الأمر الآتي لإيقاف مثال المشروع:
docker rm -f testapp