Sürüm ve iş öğesi içgörüleri, yazılım geliştirme yaşam döngüsünü iyileştirmek için çok önemlidir. Uygulamalar geliştikçe, her sürümü ve iş öğelerini yakından izlemek çok önemlidir. Bu içgörüler performans sorunlarını vurgular ve ekiplerin sorunları proaktif olarak ele alıp sorunsuz dağıtım ve kullanıcı deneyimi sağlamasını sağlar. Geliştiricileri ve paydaşları kararlar almak, süreçleri ayarlamak ve yüksek kaliteli yazılım sunmak için donatırlar.
Azure Pipelines, yazılım geliştirme yaşam döngüsü boyunca Azure DevOps yayın işlem hattınızın sürekli izlenmesine olanak sağlamak için Application Insights ile tümleşir.
Sürekli izleme sayesinde yayın işlem hatları, Application Insights'tan ve diğer Azure kaynaklarından gelen izleme verilerini birleştirebilir. Yayın işlem hattı bir Application Insights uyarısı algıladığında, işlem hattı uyarı çözümlenene kadar dağıtımın geçişini yapabilir veya geri alabilir. Tüm denetimler başarılı olursa, dağıtımlar el ile müdahaleye gerek kalmadan testten üretime kadar otomatik olarak devam edebilir.
Azure DevOps'ta bir kuruluş ve proje seçin.
Proje sayfasının sol menüsünde İşlem Hatları Yayınları'nı> seçin.
Yeni'nin yanındaki açılan oku seçin ve Yeni yayın işlem hattı'nı seçin. Veya henüz bir işlem hattınız yoksa, görüntülenen sayfada Yeni işlem hattı'nı seçin.
Şablon seçin bölmesinde, sürekli izleme ile hizmet dağıtımı Azure Uygulaması arayın ve seçin ve ardından Uygula'yı seçin.
1. Aşama kutusunda, Aşama görevlerini görüntüle bağlantısını seçin.
1. Aşama yapılandırma bölmesinde aşağıdaki alanları doldurun:
Parametre |
Value |
Aşama adı |
Bir aşama adı girin veya 1. aşamada bırakın. |
Azure Aboneliği |
Açılan oku seçin ve kullanmak istediğiniz bağlı Azure aboneliğini seçin. |
Uygulama türü |
Açılan oku seçin ve uygulama türünüzü seçin. |
App Service adı |
Azure Uygulaması Hizmetinizin adını girin. |
Application Insights için Kaynak Grubu adı |
Açılan oku seçin ve kullanmak istediğiniz kaynak grubunu seçin. |
Application Insights kaynak adı |
Açılan oku seçin ve seçtiğiniz kaynak grubu için Application Insights kaynağını seçin. |
İşlem hattını varsayılan uyarı kuralı ayarlarıyla kaydetmek için Azure DevOps penceresinin sağ üst köşesindeki Kaydet'i seçin. Açıklayıcı bir açıklama girin ve Tamam'ı seçin.
Uyarı kurallarını değiştirme
Sürekli izleme şablonuyla Azure Uygulaması Hizmeti dağıtımının dört uyarı kuralı vardır: Kullanılabilirlik, Başarısız istekler, Sunucu yanıt süresi ve Sunucu özel durumları. Hizmet düzeyi gereksinimlerinizi karşılamak için daha fazla kural ekleyebilir veya kural ayarlarını değiştirebilirsiniz.
Uyarı kuralı ayarlarını değiştirmek için:
Yayın işlem hattı sayfasının sol bölmesinde Application Insights Uyarılarını Yapılandır'ı seçin.
Dört varsayılan uyarı kuralı satır içi betik aracılığıyla oluşturulur:
$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";
Betiği değiştirebilir ve daha fazla uyarı kuralı ekleyebilirsiniz. Uyarı koşullarını da değiştirebilirsiniz. Ayrıca dağıtım amaçlarınız için anlamlı olmayan uyarı kurallarını kaldırabilirsiniz.
Dağıtım koşulları ekleme
Yayın işlem hattınıza dağıtım geçitleri eklediğinizde, ayarladığınız eşikleri aşan bir uyarı istenmeyen sürüm yükseltmesini engeller. Uyarıyı çözümledikten sonra dağıtım otomatik olarak devam edebilir.
Dağıtım geçitleri eklemek için:
Ana işlem hattı sayfasındaki Aşamalar'ın altında, hangi aşamanın sürekli izleme kapısına ihtiyaç duyduğuna bağlı olarak Dağıtım öncesi koşulları veya Dağıtım sonrası koşulları simgesini seçin.
Dağıtım öncesi koşulları yapılandırma bölmesinde Geçitler'i Etkin olarak ayarlayın.
Dağıtım geçitleri'nin yanında Ekle'yi seçin.
Açılan menüden Azure İzleyici uyarılarını sorgula'ya tıklayın. Bu seçenek hem Azure İzleyici hem de Application Insights uyarılarına erişmenizi sağlar.
Değerlendirme seçenekleri'nin altında, Geçitlerin yeniden değerlendirilmesi arasındaki süre ve Kapıların başarısız olduğu zaman aşımı gibi ayarlar için istediğiniz değerleri girin.
Yayın günlüklerini görüntüleme
Dağıtım geçidi davranışını ve diğer sürüm adımlarını yayın günlüklerinde görebilirsiniz. Günlükleri açmak için:
İşlem hattı sayfasının sol menüsünden Yayınlar'ı seçin.
Herhangi bir sürümü seçin.
Aşamalar'ın altında yayın özetini görüntülemek için herhangi bir aşamayı seçin.
Günlükleri görüntülemek için yayın özetinde Günlükleri görüntüle'yi seçin, herhangi bir aşamada Başarılı veya Başarısız köprüyü seçin ya da herhangi bir aşamanın üzerine gelip Günlükler'i seçin.
Ek açıklamalar, yeni bir derlemeyi veya diğer önemli olayları nereye dağıttığınızı gösterir. Ek açıklamalar, değişikliklerinizin uygulamanızın performansını etkileyip etkilemediğini görmenizi kolaylaştırır. Bunlar Azure Pipelines derleme sistemi tarafından otomatik olarak oluşturulabilir. Ayrıca, PowerShell'den oluşturarak istediğiniz herhangi bir olaya bayrak eklemek için ek açıklamalar da oluşturabilirsiniz.
Azure Pipelines derlemesi ile sürüm ek açıklamaları
Sürüm ek açıklamaları, Azure DevOps'un bulut tabanlı Azure Pipelines hizmetinin bir özelliğidir.
Aşağıdaki ölçütlerin tümü karşılanırsa dağıtım görevi yayın ek açıklamasını otomatik olarak oluşturur:
Dağıtmakta olduğunuz kaynak, uygulama ayarı aracılığıyla Application Insights'a APPINSIGHTS_INSTRUMENTATIONKEY
bağlanır.
Application Insights kaynağı, dağıtmakta olduğunuz kaynakla aynı aboneliktedir.
Aşağıdaki Azure DevOps işlem hattı görevlerinden birini kullanıyorsunuz:
Görev kodu |
Görev adı |
Sürümler |
AzureAppServiceSettings |
hizmet ayarlarını Azure Uygulaması |
Tümü |
AzureRmWebAppDeployment |
Azure Uygulaması Hizmeti dağıtımı |
V3 ve üzeri |
AzureFunctionApp |
Azure İşlevleri |
Tümü |
AzureFunctionAppContainer |
Kapsayıcı için Azure İşlevleri |
Tümü |
AzureWebAppContainer |
Kapsayıcılar için Azure Web App |
Tümü |
AzureWebApp |
Azure Web App |
Tümü |
Not
Application Insights ek açıklama dağıtım görevini kullanmaya devam ediyorsanız, silmeniz gerekir.
Önceki bölümdeki dağıtım görevlerinden birini kullanamıyorsanız, dağıtım işlem hattınıza satır içi bir betik görevi eklemeniz gerekir.
Yeni veya mevcut bir işlem hattına gidin ve bir görev seçin.
Yeni bir görev ekleyin ve Azure CLI'yi seçin.
İlgili Azure aboneliğini belirtin. Betik Türünü PowerShell olarak, Betik Konumunu satır içi olarak değiştirin.
Sonraki bölümdeki 2. adımdaki PowerShell betiğini Satır içi Betik'e ekleyin.
Aşağıdaki bağımsız değişkenleri ekleyin. Açılı köşeli ayraçlı yer tutucuları değerlerinizle Betik Bağımsız Değişkenleri olarak değiştirin. -releaseProperties
isteğe bağlıdır.
-aiResourceId "<aiResourceId>" `
-releaseName "<releaseName>" `
-releaseProperties @{"ReleaseDescription"="<a description>";
"TriggerBy"="<Your name>" }
Aşağıdaki örnek, derleme ve yayın değişkenlerini kullanarak isteğe bağlı releaseProperties
bağımsız değişkende ayarlayabileceğiniz meta verileri gösterir.
-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)" }
Kaydet'i seçin.
Azure CLI ile yayın ek açıklamaları oluşturma
Azure DevOps kullanmadan istediğiniz herhangi bir işlemden ek açıklamalar oluşturmak için PowerShell betiğini kullanabilirsiniz CreateReleaseAnnotation
.
Azure CLI'da oturum açın.
Aşağıdaki betiğin yerel bir kopyasını oluşturup olarak adlandırın 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
Not
- Ek açıklamalarınızın Azure portalında görünmesi için Kategori seçeneğinin Dağıtım olarak ayarlanmış olması gerekir.
- "İstek bir varlık gövdesi içeriyor ama Content-Type üst bilgisi yok" hatasını alırsanız, aşağıdaki satırda değiştirme parametrelerini kaldırmayı deneyin.
$body = (ConvertTo-Json $annotation -Compress)
Aşağıdaki kodla PowerShell betiğini çağırın. Açılı köşeli ayraçlı yer tutucuları değerlerinizle değiştirin. -releaseProperties
isteğe bağlıdır.
.\CreateReleaseAnnotation.ps1 `
-aiResourceId "<aiResourceId>" `
-releaseName "<releaseName>" `
-releaseProperties @{"ReleaseDescription"="<a description>";
"TriggerBy"="<Your name>" }
Bağımsız değişken |
Tanım |
Not |
aiResourceId |
Hedef Application Insights kaynağının kaynak kimliği. |
Örnek: /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e4e/resourceGroups/MyRGName/providers/microsoft.insights/components/MyResourceName |
releaseName |
Oluşturulan sürüm ek açıklamasını vermek için ad. |
|
releaseProperties |
Ek açıklamaya özel meta veriler eklemek için kullanılır. |
İsteğe bağlı |
Ek açıklamaları görüntüleme
Not
Sürüm ek açıklamaları şu anda Application Insights'ın Ölçümler bölmesinde kullanılamaz.
Yeni bir sürümü dağıtmak için yayın şablonunu her kullandığınızda Application Insights'a bir ek açıklama gönderilir. Ek açıklamaları aşağıdaki konumlarda görüntüleyebilirsiniz:
Çalışma kitabınızda ek açıklamaları etkinleştirmek için Gelişmiş Ayarlar'a gidin ve Ek açıklamaları göster'i seçin.
İstek sahibi, kaynak denetimi dalı, yayın işlem hattı ve ortam gibi sürümle ilgili ayrıntıları açmak için herhangi bir ek açıklama işaretçisini seçin.
API anahtarlarını kullanarak sürüm ek açıklamaları
Sürüm ek açıklamaları, Azure DevOps'un bulut tabanlı Azure Pipelines hizmetinin bir özelliğidir.
Önemli
API anahtarlarını kullanan ek açıklamalar kullanım dışıdır. Bunun yerine Azure CLI kullanmanızı öneririz.
Ek açıklama uzantısını yükleme (bir kez)
Yayın ek açıklamaları oluşturmak için Visual Studio Market'te kullanılabilen birçok Azure DevOps uzantısından birini yükleyin.
Azure DevOps projenizde oturum açın.
Visual Studio Market Sürüm Ek Açıklamaları uzantısı sayfasında Azure DevOps kuruluşunuzu seçin. Uzantıyı Azure DevOps kuruluşunuza eklemek için Yükle'yi seçin.
Azure DevOps kuruluşunuz için uzantıyı yalnızca bir kez yüklemeniz gerekir. Artık kuruluşunuzdaki herhangi bir proje için yayın ek açıklamalarını yapılandırabilirsiniz.
Azure Pipelines yayın şablonlarınızın her biri için ayrı bir API anahtarı oluşturun.
Azure portalında oturum açın ve uygulamanızı izleyen Application Insights kaynağını açın. Veya yoksa yeni bir Application Insights kaynağı oluşturun.
API Erişimi sekmesini açın ve Application Insights Kimliğini kopyalayın.
Ayrı bir tarayıcı penceresinde Azure Pipelines dağıtımlarınızı yöneten yayın şablonunu açın veya oluşturun.
Görev ekle'yi ve ardından menüden Application Insights Yayın Ek Açıklaması görevini seçin.
Not
Yayın Ek Açıklaması görevi şu anda yalnızca Windows tabanlı aracıları destekler. Linux, macOS veya diğer aracı türlerinde çalışmaz.
Uygulama Kimliği'nin altında, API Erişimi sekmesinden kopyaladığınız Application Insights Kimliğini yapıştırın.
Application Insights API Erişimi penceresine dönüp API Anahtarı Oluştur'u seçin.
API anahtarı oluştur penceresinde bir açıklama girin, Ek açıklamalar yaz'ı ve ardından Anahtar oluştur'u seçin. Yeni anahtarı kopyalayın.
Yayın şablonu penceresindeki Değişkenler sekmesinde Ekle'yi seçerek yeni API anahtarı için bir değişken tanımı oluşturun.
Ad'ın altına ApiKey girin. Değer'in altında, API Erişimi sekmesinden kopyaladığınız API anahtarını yapıştırın.
Şablonu kaydetmek için ana yayın şablonu penceresinde Kaydet'i seçin.
Not
API anahtarları için sınırlar REST API hız sınırları belgelerinde açıklanmıştır.
Yeni sürüm ek açıklamasına geçiş
Yeni sürüm ek açıklamalarını kullanmak için:
- Yayın Ek Açıklamaları uzantısını kaldırın.
- Azure Pipelines dağıtımınızda Application Insights Yayın Ek Açıklaması görevini kaldırın.
- Azure Pipelines veya Azure CLI ile yeni sürüm ek açıklamaları oluşturun.
İş öğesi tümleştirme işlevi, GitHub'da veya Azure DevOps'ta, bunlara eklenmiş ilgili Application Insights verilerine sahip iş öğelerini kolayca oluşturmanıza olanak tanır.
Yeni iş öğesi tümleştirmesi klasik özelliklere göre aşağıdaki özellikleri sunar:
- Atanan, projeler veya kilometre taşları gibi gelişmiş alanlar.
- GitHub ve Azure DevOps çalışma kitapları arasında ayrım yapabileceğiniz depo simgeleri.
- Herhangi bir sayıda depo veya iş öğesi için birden çok yapılandırma.
- Azure Resource Manager şablonları aracılığıyla dağıtım.
- Application Insights verilerini iş öğelerinize eklemek için önceden oluşturulmuş ve özelleştirilebilir Anahtar Sözcük Sorgu Dili (KQL) sorguları.
- Özelleştirilebilir çalışma kitabı şablonları.
İş öğesi şablonu oluşturmak için Application Insights kaynağınıza gidin ve sol tarafta İş Öğelerini Yapılandır'ın altında, en üstte Yeni şablon oluştur'u seçin
Şu anda şablon yoksa, uçtan uca işlem ayrıntıları sekmesinden de bir iş öğesi şablonu oluşturabilirsiniz. Bir olay seçin ve sağ tarafta İş öğesi oluştur'u ve ardından Çalışma kitabı şablonuyla başlayın'ı seçin.
Yeni şablon oluştur'u seçtikten sonra, izleme sistemlerinizi seçebilir, çalışma kitabınızı adlandırabilir, seçtiğiniz izleme sistemine bağlantı verebilir ve şablonu depolamak için bir bölge seçebilirsiniz (varsayılan olarak Application Insights kaynağınızın bulunduğu bölgedir). URL parametreleri, https://github.com/myusername/reponame
https://dev.azure.com/{org}/{project}
örneğin veya deponuzun varsayılan URL'leridir.
Belirli iş öğesi özelliklerini doğrudan şablonun kendisinden ayarlayabilirsiniz. Bu, sürüm denetimi sağlayıcınıza bağlı olarak atananı, yineleme yolunu, projeleri ve daha fazlasını içerir.
Not
Şirket içi Azure DevOps ortamları için, Azure DevOps Projesi URL'si için yer tutucu olarak gibi https://dev.azure.com/test/test bir örnek URL kullanılabilir. İş öğesi şablonu oluşturulduktan sonra, oluşturulan Azure çalışma kitabı içinde URL'yi ve doğrulama kuralını değiştirebilirsiniz.
İş öğesi oluştur
Yeni şablonunuza Performans, Hatalar, Kullanılabilirlik veya diğer sekmelerden erişebileceğiniz uçtan uca işlem ayrıntılarından erişebilirsiniz.
İş öğesi oluşturmak için Uçtan uca işlem ayrıntıları'na gidin, bir olay seçin, ardından İş öğesi oluştur'u seçin ve iş öğesi şablonunuzu seçin.
Tarayıcınızda yeni bir sekme, seçtiğiniz izleme sisteminize açılır. Azure DevOps'ta bir hata veya görev oluşturabilir ve GitHub'da deponuzda yeni bir sorun oluşturabilirsiniz. Application Insights tarafından sağlanan bağlamsal bilgilerle yeni bir iş öğesi otomatik olarak oluşturulur.
Şablonu düzenleme
Şablonunuzu düzenlemek için Yapılandır'ın altındaki İş Öğeleri sekmesine gidin ve güncelleştirmek istediğiniz çalışma kitabının yanındaki kalem simgesini seçin.
Üst araç çubuğunda düzenle'yi seçin.
Birden fazla iş öğesi yapılandırması oluşturabilir ve her senaryoya uygun özel bir çalışma kitabına sahip olabilirsiniz. Çalışma kitapları Azure Resource Manager tarafından dağıtılabilir ve ortamlarınız genelinde standart uygulamalar sağlanır.
Klasik iş öğesi tümleştirmesi
Application Insights kaynağınızda Yapılandır'ın altında İş Öğelerini seçin.
Klasik'e Geç'i seçin, alanları bilgilerinizle doldurun ve yetkilendirilin.
Uçtan uca işlem ayrıntılarına gidip bir olay seçip İş öğesi oluştur (Klasik) seçeneğini belirleyerek bir iş öğesi oluşturun.
Yeni iş öğesi tümleştirmesine geçiş
Geçiş yapmak için klasik iş öğesi yapılandırmanızı silin ve tümleştirmenizi yeniden oluşturmak için bir iş öğesi şablonu oluşturun ve yapılandırın.
Silmek için, İş Öğelerini Yapılandır'ın altında Application Insights kaynağınıza gidin ve ardından Klasik'e geç ve en üstte *Sil'i seçin.