تعد نتائج تحليلات الإصدار وعناصر العمل أمرا بالغ الأهمية لتحسين دورة حياة تطوير البرامج. مع تطور التطبيقات، من الضروري مراقبة كل إصدار وعناصر العمل الخاصة به عن كثب. تسلط هذه الرؤى الضوء على اختناقات الأداء وتسمح للفرق بمعالجة المشكلات بشكل استباقي، ما يضمن النشر السلس وتجربة المستخدم. فهي تزود المطورين وأصحاب المصلحة لاتخاذ القرارات وتعديل العمليات وتقديم برامج عالية الجودة.
تتكامل Azure Pipelines مع Application Insights للسماح بالمراقبة المستمرة لمسار إصدار Azure DevOps طوال دورة حياة تطوير البرامج.
من خلال المراقبة المستمرة، يمكن أن تتضمن البنية الأساسية لبرنامج ربط العمليات التجارية لإصدارات بيانات المراقبة من Application Insights وموارد Azure الأخرى. عندما تكتشف البنية الأساسية لبرنامج ربط العمليات التجارية لإصدارك تنبيهًا في Application Insights، يمكن للبنية البنية الأساسية لبرنامج ربط العمليات التجارية أن يبدأ النشر أو يتراجع عنه حتى يتم حل التنبيه. إذا نجحت جميع عمليات التحقق، يمكن أن تستمر عمليات النشر تلقائيًا من الاختبار إلى الإنتاج، دون الحاجة إلى تدخل يدوي.
في Azure DevOps، حدد "مؤسسة ومشروع".
في القائمة اليمنى لصفحة المشروع، حدد إصدارات > البنية الأساسية لبرنامج ربط العمليات التجارية.
حدد سهم القائمة المنسدلة بجوار New وحدد New release pipeline. أو، إذا لم يكن لديك مسار حتى الآن، فحدد البنية الأساسية لبرنامج ربط العمليات التجارية الجديد على الصفحة التي تظهر.
في جزء تحديد نموذج ، ابحث عن وحدد نشر خدمة تطبيق Azure مع المراقبة المستمرة ، ثم حدد "تطبيق" .
في المربع المرحلة 1 ، حدد الارتباط التشعبي لـ "عرض مهام المرحلة" .
في جزء تكوين المرحلة 1 ، املأ الحقول التالية:
المعلمة |
القيمة |
اسم المرحلة |
أدخل اسم المرحلة أو اتركه في المرحلة 1. |
اشتراك Azure |
حدد سهم القائمة المنسدلة وحدد اشتراك Azure المرتبط الذي تريد استخدامه. |
نوع التطبيق |
حدد سهم القائمة المنسدلة وحدد نوع التطبيق. |
اسم خدمة التطبيق |
قم بإدخال اسم خدمة تطبيقات Azure. |
اسم مجموعة الموارد لـ Application Insights |
حدد سهم القائمة المنسدلة وحدد مجموعة الموارد التي تريد استخدامها. |
اسم مورد Application Insights |
حدد سهم القائمة المنسدلة وحدد مورد Application Insights لمجموعة الموارد التي حددتها. |
لحفظ البنية الأساسية لبرنامج ربط العمليات التجارية بإعدادات قاعدة التنبيه الافتراضية، حدد حفظ في الزاوية العلوية اليسرى من نافذة Azure DevOps. أدخل تعليقا وصفيا وحدد موافق.
تغيير قواعد التنبيه
خارج الصندوق، يحتوي توزيع Azure App Service مع قالب المراقبة المستمرة على أربع قواعد تنبيه: التوفر والطلبات الفاشلة ووقت استجابة الخادم واستثناءات الخادم. يمكنك إضافة المزيد من القواعد أو تغيير إعدادات القاعدة لتلبية احتياجات مستوى الخدمة.
لتعديل إعدادات قاعدة التنبيه، احرص على القيام بما يلي:
في الجزء الأيمن من صفحة البنية الأساسية لبرنامج ربط العمليات التجارية للإصدارات، حدد تكوين تنبيهات Application Insights .
يتم إنشاء قواعد التنبيه الافتراضية الأربع باستخدام برنامج نصي مضمن:
$subscription = az account show --query "id";$subscription.Trim("`"");$resource="/subscriptions/$subscription/resourcegroups/"+"$(Parameters.AppInsightsResourceGroupName)"+"/providers/microsoft.insights/components/" + "$(Parameters.ApplicationInsightsResourceName)";
az monitor metrics alert create -n 'Availability_$(Release.DefinitionName)' -g $(Parameters.AppInsightsResourceGroupName) --scopes $resource --condition 'avg availabilityResults/availabilityPercentage < 99' --description "created from Azure DevOps";
az monitor metrics alert create -n 'FailedRequests_$(Release.DefinitionName)' -g $(Parameters.AppInsightsResourceGroupName) --scopes $resource --condition 'count requests/failed > 5' --description "created from Azure DevOps";
az monitor metrics alert create -n 'ServerResponseTime_$(Release.DefinitionName)' -g $(Parameters.AppInsightsResourceGroupName) --scopes $resource --condition 'avg requests/duration > 5' --description "created from Azure DevOps";
az monitor metrics alert create -n 'ServerExceptions_$(Release.DefinitionName)' -g $(Parameters.AppInsightsResourceGroupName) --scopes $resource --condition 'count exceptions/server > 5' --description "created from Azure DevOps";
يمكنك تعديل البرنامج النصي وإضافة المزيد من قواعد التنبيه. يمكنك أيضا تعديل شروط التنبيه. ويمكنك إزالة قواعد التنبيه التي لا معنى لها لأغراض النشر الخاصة بك.
إضافة شروط التوزيع
عند إضافة بوابات نشر إلى البنية الأساسية لبرنامج ربط العمليات التجارية لإصدارك، فإن التنبيه الذي يتجاوز الحدود التي قمت بتعيينها يمنع الترويج للإصدار غير المرغوب فيه. بعد حل التنبيه، يمكن متابعة النشر تلقائيا.
لإضافة بوابات النشر، يتعين عليك القيام بما يلي:
في صفحة البنية الأساسية لبرنامج ربط العمليات التجارية الرئيسية، ضمن المراحل ، حدد رمز شروط ما قبل النشر أو رمز شروط ما بعد النشر ، بناءً على المرحلة التي تحتاج إلى بوابة مراقبة مستمرة.
في جزء التكوين شروط ما قبل النشر، اضبط البوابات على ممكّن .
بجوار بوابات النشر ، حدد إضافة .
حدد تنبيهات Query Azure Monitor من القائمة المنسدلة. يتيح لك هذا الخيار الوصول إلى كل من تنبيهات Azure Monitor وApplication Insights.
ضمن خيارات التقييم ، أدخل القيم التي تريدها لإعدادات مثل الوقت بين إعادة تقييم البوابات و المهلة التي تفشل بعدها البوابات .
إظهار سجلات الإصدار
يمكنك الاطلاع على سلوك بوابة النشر وخطوات الإصدار الأخرى في سجلات الإصدار. لفتح السجلات، يتعين القيام بما يلي:
حدد "الإصدارات" من القائمة اليمنى لصفحة للبنية البنية الأساسية لبرنامج ربط العمليات التجارية.
قم بتحديد أي إصدار.
ضمن المراحل ، حدد أي مرحلة لعرض ملخص الإصدار.
لعرض السجلات، حدد "عرض السجلات" في ملخص الإصدار، وحدد الارتباط التشعبي تم النجاح أو فشل في أي مرحلة، أو مرر الماوس فوق أي مرحلة وحدد "السجلات" .
توضح التعليقات التوضيحية مكان نشر بنية جديدة أو أحداث مهمة أخرى. تسهل التعليقات التوضيحية معرفة ما إذا كان للتغييرات التي أجريتها أي تأثير على أداء التطبيق. يمكن إنشاؤها تلقائيًا بواسطة نظام تحديث الإصدار Azure Pipelines. يمكنك أيضا إنشاء تعليقات توضيحية لوضع علامة على أي حدث تريده عن طريق إنشائها من PowerShell.
إصدار التعليقات التوضيحية مع تحديث الإصدار باستخدام Azure Pipelines
إصدار التعليقات التوضيحية هي ميزة من ميزات خدمة Azure Pipelines المستندة إلى السحابة من Azure DevOps.
إذا تم استيفاء كافة المعايير التالية، تقوم مهمة التوزيع بإنشاء إصدار التعليق التوضيحي تلقائيًا:
المورد الذي تقوم بنشره مرتبط ب Application Insights عبر APPINSIGHTS_INSTRUMENTATIONKEY
إعداد التطبيق.
مورد Application Insights في نفس الاشتراك مثل المورد الذي تقوم بالنشر إليه.
أنت تستخدم إحدى مهام البنية الأساسية لبرنامج ربط العمليات التجارية Azure DevOps التالية:
تعليمة برمجية المهمة |
اسم المهمة |
الإصدارات |
AzureAppServiceSettings |
إعدادات خدمة تطبيق Azure |
أي |
AzureRmWebAppDeployment |
توزيع خدمة تطبيق Azure |
V3 وما فوق |
AzureFunctionApp |
دالات Azure |
أي |
AzureFunctionAppContainer |
دالات Azure للحاوية |
أي |
AzureWebAppContainer |
تطبيق ويب Azure للحاويات |
أي |
AzureWebApp |
تطبيق الويب Azure |
أي |
إشعار
إذا كنت لا تزال تستخدم مهمة نشر التعليق التوضيحي Application Insights، فيجب حذفها.
إذا لم تتمكن من استخدام إحدى مهام النشر في القسم السابق، فستحتاج إلى إضافة مهمة برنامج نصي مضمن في مسار التوزيع.
انتقل إلى مسار جديد أو موجود وحدد مهمة.
أضف مهمة جديدة وحدد Azure CLI.
حدد اشتراك Azure ذي الصلة. تغيير نوع البرنامج النصي إلى PowerShell وموقع البرنامج النصي إلى مضمن.
إضافة البرنامج النصي PowerShell من الخطوة 2 في القسم التالي إلى البرنامج النصي المضمن.
إضافة الوسيطات التالية. استبدل العناصر النائبة ذات الأقواس الزاوية بالقيم الخاصة بك إلى وسيطات البرنامج النصي. -releaseProperties
اختياري.
-aiResourceId "<aiResourceId>" `
-releaseName "<releaseName>" `
-releaseProperties @{"ReleaseDescription"="<a description>";
"TriggerBy"="<Your name>" }
يوضح المثال التالي بيانات التعريف التي يمكنك تعيينها في الوسيطة الاختيارية releaseProperties
باستخدام متغيرات الإنشاء والإصدار.
-releaseProperties @{
"BuildNumber"="$(Build.BuildNumber)";
"BuildRepositoryName"="$(Build.Repository.Name)";
"BuildRepositoryProvider"="$(Build.Repository.Provider)";
"ReleaseDefinitionName"="$(Build.DefinitionName)";
"ReleaseDescription"="Triggered by $(Build.DefinitionName) $(Build.BuildNumber)";
"ReleaseEnvironmentName"="$(Release.EnvironmentName)";
"ReleaseId"="$(Release.ReleaseId)";
"ReleaseName"="$(Release.ReleaseName)";
"ReleaseRequestedFor"="$(Release.RequestedFor)";
"ReleaseWebUrl"="$(Release.ReleaseWebUrl)";
"SourceBranch"="$(Build.SourceBranch)";
"TeamFoundationCollectionUri"="$(System.TeamFoundationCollectionUri)" }
حدد حفظ.
إنشاء تعليقات توضيحية للإصدار باستخدام Azure CLI
يمكنك استخدام CreateReleaseAnnotation
البرنامج النصي PowerShell لإنشاء تعليقات توضيحية من أي عملية تريدها دون استخدام Azure DevOps.
سجل الدخول إلى Azure CLI.
قم بعمل نسخة محلية من البرنامج النصي التالي وقم باستدعائه CreateReleaseAnnotation.ps1
.
param(
[parameter(Mandatory = $true)][string]$aiResourceId,
[parameter(Mandatory = $true)][string]$releaseName,
[parameter(Mandatory = $false)]$releaseProperties = @()
)
# Function to ensure all Unicode characters in a JSON string are properly escaped
function Convert-UnicodeToEscapeHex {
param (
[parameter(Mandatory = $true)][string]$JsonString
)
$JsonObject = ConvertFrom-Json -InputObject $JsonString
foreach ($property in $JsonObject.PSObject.Properties) {
$name = $property.Name
$value = $property.Value
if ($value -is [string]) {
$value = [regex]::Unescape($value)
$OutputString = ""
foreach ($char in $value.ToCharArray()) {
$dec = [int]$char
if ($dec -gt 127) {
$hex = [convert]::ToString($dec, 16)
$hex = $hex.PadLeft(4, '0')
$OutputString += "\u$hex"
}
else {
$OutputString += $char
}
}
$JsonObject.$name = $OutputString
}
}
return ConvertTo-Json -InputObject $JsonObject -Compress
}
$annotation = @{
Id = [GUID]::NewGuid();
AnnotationName = $releaseName;
EventTime = (Get-Date).ToUniversalTime().GetDateTimeFormats("s")[0];
Category = "Deployment"; #Application Insights only displays annotations from the "Deployment" Category
Properties = ConvertTo-Json $releaseProperties -Compress
}
$annotation = ConvertTo-Json $annotation -Compress
$annotation = Convert-UnicodeToEscapeHex -JsonString $annotation
$accessToken = (az account get-access-token | ConvertFrom-Json).accessToken
$headers = @{
"Authorization" = "Bearer $accessToken"
"Accept" = "application/json"
"Content-Type" = "application/json"
}
$params = @{
Headers = $headers
Method = "Put"
Uri = "https://management.azure.com$($aiResourceId)/Annotations?api-version=2015-05-01"
Body = $annotation
}
Invoke-RestMethod @params
إشعار
- يجب أن تحتوي التعليقات التوضيحية على الفئة معينة إلى Deployment لتظهر في مدخل Microsoft Azure.
- إذا تلقيت خطأ، "يحتوي الطلب على نص كيان ولكن لا يحتوي على عنوان نوع المحتوى"، فحاول إزالة معلمات استبدال في السطر التالي.
$body = (ConvertTo-Json $annotation -Compress)
استدعاء البرنامج النصي PowerShell مع التعليمات البرمجية التالية. استبدل العناصر النائبة ذات الأقواس الزاوية بقيمك. -releaseProperties
اختياري.
.\CreateReleaseAnnotation.ps1 `
-aiResourceId "<aiResourceId>" `
-releaseName "<releaseName>" `
-releaseProperties @{"ReleaseDescription"="<a description>";
"TriggerBy"="<Your name>" }
الوسيطة |
التعريف |
إشعار |
aiResourceId |
معرف المورد إلى مورد Application Insights الهدف. |
مثال: /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MyRGName/providers/microsoft.insights/components/MyResourceName |
releaseName |
الاسم المطلق على التعليق التوضيحي للإصدار الذي تم إنشاؤه. |
|
releaseProperties |
يُستخدم لإرفاق بيانات التعريف المخصصة بالتعليق التوضيحي. |
اختياري |
عرض التعليقات التوضيحية
إشعار
لا تتوفر التعليقات التوضيحية للإصدار حاليا في جزء المقاييس من Application Insights.
كلما كنت تستخدم قالب الإصدار لنشر إصدار جديد، يتم إرسال تعليق توضيحي إلى Application Insights. يمكنك عرض التعليقات التوضيحية في المواقع التالية:
لتمكين التعليقات التوضيحية في المصنف، انتقل إلى "الإعدادات المتقدمة" وحدد إظهار التعليقات التوضيحية.
حدد أي علامة تعليق توضيحي لفتح تفاصيل حول الإصدار، بما في ذلك مقدم الطلب، وفرع التحكم في المصدر، والبنية الأساسية لبرنامج ربط العمليات التجارية للإصدار، والبيئة.
إصدار التعليقات التوضيحية باستخدام مفاتيح واجهة برمجة التطبيقات
إصدار التعليقات التوضيحية هي ميزة من ميزات خدمة Azure Pipelines المستندة إلى السحابة من Azure DevOps.
هام
يتم إهمال التعليقات التوضيحية باستخدام مفاتيح API. نوصي باستخدام Azure CLI بدلا من ذلك.
تثبيت ملحق التعليقات التوضيحية (مرة واحدة)
لإنشاء تعليقات توضيحية للإصدار، قم بتثبيت أحد ملحقات Azure DevOps العديدة المتوفرة في Visual Studio Marketplace.
سجّل الدخول إلى مشروع Azure DevOps.
في صفحة ملحق التعليقات التوضيحية لإصدار Visual Studio Marketplace، حدد مؤسسة Azure DevOps. حدد Install لإضافة الملحق إلى مؤسسة Azure DevOps.
تحتاج فقط إلى تثبيت الملحق مرة واحدة لمؤسسة Azure DevOps. يمكنك الآن تكوين التعليقات التوضيحية الخاصة بإصدار أي مشروع في المؤسسة.
إنشاء مفتاح API منفصل لكل من قوالب إصدار Azure Pipelines.
سجّل الدخول إلى مدخل Azure وافتح مورد Application Insights الذي يراقب تطبيقك. أو إذا لم يكن لديك واحد، أنشئ مورد Application Insights جديد.
افتح علامة التبويب الوصول إلى API وانسخ معرّف Application Insights.
في نافذة مستعرض منفصلة، افتح أو أنشئ قالب الإصدار الذي يدير عمليات توزيع Azure Pipelines.
حدد إضافة مهمة ثم حدد مهمة التعليق التوضيحي لإصدار Application Insights من القائمة.
إشعار
تدعم مهمة التعليق التوضيحي للإصدار حاليا العوامل المستندة إلى Windows فقط. لن يعمل على Linux أو macOS أو أنواع أخرى من العوامل.
ضمن معرّف التطبيق، قم بلصق معرّف Application Insights الذي قمت بنسخه من علامة التبويب الوصول إلى API.
مرة أخرى في نافذة الوصول إلى API لبرنامج Application Insights، حدد إنشاء مفتاح API.
في نافذة إنشاء مفتاح API، أدخل وصفا، وحدد كتابة التعليقات التوضيحية، ثم حدد إنشاء مفتاح. انسخ المفتاح الجديد.
في نافذة قالب الإصدار، في علامة التبويب المتغيرات، حدد إضافة لإنشاء تعريف متغير لمفتاح API الجديد.
ضمن Name، أدخل ApiKey. ضمن Value، الصق مفتاح API الذي نسخته من علامة التبويب API Access .
حدد حفظ في نافذة قالب الإصدار الرئيسي لحفظ القالب.
الانتقال إلى تعليق توضيحي للإصدار الجديد
لاستخدام التعليق التوضيحي للإصدار الجديد:
- قم بإزالة ملحق التعليقات التوضيحية للإصدار.
- قم بإزالة مهمة تعليق توضيحي لإصدار Application Insights في توزيع Azure Pipelines.
- إنشاء تعليقات توضيحية جديدة للإصدار باستخدام Azure Pipelines أو Azure CLI.
تتيح لك وظيفة تكامل عنصر العمل إنشاء عناصر العمل بسهولة في GitHub أو Azure DevOps التي تحتوي على بيانات Application Insights ذات الصلة المضمنة فيها.
يوفر تكامل عنصر العمل الجديد الميزات التالية عبر الكلاسيكية:
- حقول متقدمة؛ مثل: المحال إليه، أو المشروعات، أو المراحل الرئيسية.
- رموز المستودع حتى تتمكن من التمييز بين GitHub، ومصنفات Azure DevOps.
- تكوينات متعددة لأي عدد من المستودعات، أو عناصر العمل.
- النشر من خلال قوالب Azure Resource Manager.
- استعلامات لغة استعلام الكلمة الأساسية (KQL) التي تم إنشاؤها مسبقًا، ولإضافة بيانات Application Insights إلى عناصر العمل.
- قوالب مُصنف قابلة للتخصيص.
لإنشاء قالب عنصر عمل، انتقل إلى مورد Application Insights الخاص بك وعلى اليسار ضمن تكوين حدد عناصر العمل ثم في الأعلى حدد إنشاء قالب جديد
يمكنك أيضًا إنشاء قالب عنصر عمل من علامة تبويب تفاصيل الحركة الشاملة، إذا لم يكن هناك قالب موجود حاليًا. حدد حدثا، وعلى اليمين حدد إنشاء عنصر عمل، ثم ابدأ بقالب مصنف.
بعد تحديد إنشاء قالب جديد، يمكنك اختيار أنظمة التعقب، وتسمية المصنف، والارتباط بنظام التعقب المحدد، واختيار منطقة لتخزين القالب (الافتراضي هو المنطقة التي يوجد فيها مورد Application Insights). معلمات URL هي عنوان URL الافتراضي لمستودعك، على سبيل المثال، https://github.com/myusername/reponame
أو https://dev.azure.com/{org}/{project}
.
يمكنك تعيين خصائص عنصر عمل محددة مباشرةً من القالب نفسه. ويشمل ذلك المعين له، ومسار التكرار، والمشرعات، وأكثر من ذلك اعتمادًا على موفر التحكم بالإصدار الخاص بك.
إشعار
بالنسبة لبيئات Azure DevOps المحلية، يمكن استخدام نموذج URL مثل https://dev.azure.com/test/test كعناد نائب ل URL مشروع Azure DevOps. بمجرد إنشاء قالب عنصر العمل، يمكنك تعديل عنوان URL وقاعدة التحقق من الصحة الخاصة به داخل مصنف Azure الذي تم إنشاؤه.
إنشاء عنصر عمل
يمكنك الوصول إلى القالب الجديد من أي تفاصيل معاملة شاملة يمكنك الوصول إليها من علامات التبويب الأداء أو الفشل، أو التوفر، أو علامات التبويب الأخرى.
لإنشاء عنصر عمل، انتقل إلى تفاصيل المعاملة من طرف إلى طرف، وحدد حدثا ثم حدد إنشاء عنصر عمل واختر قالب عنصر العمل.
ستفتح علامة تبويب جديدة في المتصفح لنظام التتبع المُحدد. في Azure DevOps يمكنك إنشاء خطأ أو مهمة، وفي GitHub يمكنك إنشاء مشكلة جديدة في المستودع الخاص بك. يتم إنشاء عنصر عمل جديد تلقائيًا مع المعلومات السياقية التي يوفرها Application Insights.
تحرير قالب
لتحرير القالب، انتقل إلى علامة التبويب عناصر العمل ضمن تكوين وحدد رمز القلم الرصاص بجوار المصنف الذي ترغب في تحديثه.
حدد تحرير في شريط الأدوات العلوي.
يمكنك إنشاء تكوين عنصر عمل واحد أو أكثر، وأن يكون لديك مصنف مخصص لتلبية كل سيناريو. يمكن أيضًا توزيع المصنفات من خلال Azure Resource Manager لضمان التطبيقات القياسية عبر البيئات الخاصة بك.
تكامل عنصر العمل الكلاسيكي
في مورد Application Insights ضمن Configure حدد Work Items.
حدد التبديل إلى كلاسيكي، واملأ الحقول بالمعلومات الخاصة بك، وقم بتخويلها.
أنشئ عنصر عمل بالانتقال إلى تفاصيل المعاملة من طرف إلى طرف، وحدد حدثا ثم حدد إنشاء عنصر عمل (كلاسيكي) .
الترحيل إلى تكامل عنصر العمل الجديد
للترحيل، احذف تكوين عنصر العمل الكلاسيكي ثم أنشئ قالب عنصر عمل وقم بتكوينه لإعادة إنشاء التكامل.
للحذف، انتقل إلى مورد Application Insights ضمن تكوين حودد عناصر العمل ثم حدد التبديل إلى الكلاسيكية و* حذف بالأعلى.