A kiadási és munkaelem-elemzések kulcsfontosságúak a szoftverfejlesztési életciklus optimalizálásához. Az alkalmazások fejlődésével elengedhetetlen az egyes kiadások és a munkaelemek szoros monitorozása. Ezek az elemzések kiemelik a teljesítmény szűk keresztmetszeteit, és proaktív módon oldják meg a problémákat, biztosítva a zökkenőmentes üzembe helyezést és a felhasználói élményt. Felkészítik a fejlesztőket és az érdekelt feleket a döntések meghozatalára, a folyamatok módosítására és a kiváló minőségű szoftverek nyújtására.
Az Azure Pipelines integrálható az Application Insights szolgáltatással, így lehetővé teszi az Azure DevOps-kiadási folyamat folyamatos monitorozását a szoftverfejlesztési életciklus során.
A folyamatos monitorozással a kiadási folyamatok az Application Insightsból és más Azure-erőforrásokból származó monitorozási adatokat is tartalmazhatnak. Amikor a kiadási folyamatcsatorna Application Insights-riasztást észlel, a folyamatcsatorna megakadályozhatja vagy visszaállíthatja az üzembe helyezést, amíg a riasztást fel nem oldják. Ha minden ellenőrzés sikeres, az üzembe helyezések automatikusan, manuális beavatkozás nélkül folytathatók a teszteléstől egészen az éles környezetbe.
Az Azure DevOpsban válasszon ki egy szervezetet és projektet.
A projektoldal bal oldali menüjében válassza a Pipelines>Releases lehetőséget.
Válassza az Új elem melletti legördülő nyilat, és válassza az Új kiadási folyamat lehetőséget. Ha még nem rendelkezik pipeline-del, válassza a megjelenő lapon az Új pipeline lehetőséget.
A Sablon kiválasztása panelen keresse meg és válassza ki a Azure-alkalmazás szolgáltatás üzembe helyezését folyamatos figyeléssel, majd válassza az Alkalmaz lehetőséget.
Az 1. fázis mezőben válassza a szakaszfeladatok megtekintésére mutató hivatkozást.
Az 1. fázis konfigurációs paneljén töltse ki a következő mezőket:
Paraméter |
Érték |
Művésznév |
Adjon meg egy színpadi nevet, vagy hagyja meg a(z) Stage 1 nevet. |
Azure-előfizetés |
Válassza ki a legördülő nyilat, és válassza ki a használni kívánt társított Azure-előfizetést. |
Alkalmazás típusa |
Válassza ki a legördülő nyilat, és válassza ki az alkalmazás típusát. |
App Service neve |
Adja meg a Azure-alkalmazás szolgáltatás nevét. |
Az Application Insights erőforráscsoportjának neve |
Válassza ki a legördülő nyilat, és válassza ki a használni kívánt erőforráscsoportot. |
Application Insights-erőforrás neve |
Válassza ki a legördülő nyilat, és válassza ki a kiválasztott erőforráscsoport Application Insights-erőforrását. |
A folyamat alapértelmezett riasztási szabálybeállításokkal való mentéséhez válassza a Mentés lehetőséget az Azure DevOps ablakának jobb felső sarkában. Írjon be egy leíró megjegyzést, és válassza az OK gombot.
Riasztási szabályok módosítása
A Azure-alkalmazás szolgáltatás folyamatos figyelési sablonnal való üzembe helyezése négy riasztási szabályt kínál: rendelkezésre állás, sikertelen kérelmek, kiszolgálói válaszidő és kiszolgálói kivételek. További szabályokat adhat hozzá, vagy módosíthatja a szabálybeállításokat a szolgáltatási szint igényeinek megfelelően.
Riasztási szabály beállításainak módosítása:
A kiadási folyamat oldalának bal oldali ablaktábláján válassza az Application Insights-riasztások konfigurálása lehetőséget.
A négy alapértelmezett riasztási szabály beágyazott szkripttel jön létre:
$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";
Módosíthatja a szkriptet, és további riasztási szabályokat adhat hozzá. A riasztási feltételeket is módosíthatja. Eltávolíthatja azokat a riasztási szabályokat, amelyek nem megfelelőek az üzembe helyezési céljaihoz.
Üzembehelyezési feltételek hozzáadása
Amikor üzembehelyezési kapukat ad hozzá a kiadási folyamathoz, a beállított küszöbértékeket meghaladó riasztás megakadályozza a nem kívánt kiadási előléptetést. A riasztás feloldása után az üzembe helyezés automatikusan folytatódhat.
Üzembehelyezési kapuk hozzáadása:
A fő folyamat oldalán, a Szakaszok területen válassza ki az üzembe helyezés előtti feltételeket vagy az üzembe helyezés utáni állapotszimbólumot attól függően, hogy melyik szakaszban van szükség folyamatos monitorozási kapura.
Az üzembe helyezés előtti feltételek konfigurációs paneljén állítsa a Gates beállítást Engedélyezve értékre.
Az Üzembehelyezési kapuk mellett válassza a Hozzáadás lehetőséget.
Válassza az Azure Monitor-riasztások lekérdezése lehetőséget a legördülő menüben. Ezzel a beállítással elérheti az Azure Monitor és az Application Insights riasztásokat is.
A Kiértékelési beállítások területen adja meg a beállításokhoz használni kívánt értékeket, például a kapuk újraértékelése és az időtúllépés közötti időt, amely után a kapuk sikertelenek lesznek.
Kiadási naplók megtekintése
A kiadási naplókban láthatja az üzembehelyezési kapu viselkedését és egyéb kiadási lépéseit. A naplók megnyitása:
A folyamatoldal bal oldali menüjében válassza a Releases (Kiadások) lehetőséget.
Válassza ki a kívánt kiadást.
A Szakaszok területen válasszon ki egy szakaszt a kiadás összegzésének megtekintéséhez.
A naplók megtekintéséhez válassza a Naplók megtekintése lehetőséget a kiadás összegzésében, jelölje ki a sikeres vagy sikertelen hivatkozást bármelyik szakaszban, vagy mutasson bármelyik szakaszra, és válassza a Naplók lehetőséget.
A jegyzetek azt mutatják, hogy hol telepítette egy új buildet vagy más jelentős eseményeket. A széljegyzetek megkönnyítik annak megállapítását, hogy a módosítások hatással voltak-e az alkalmazás teljesítményére. Ezeket az Azure Pipelines buildrendszere automatikusan létrehozhatja. Széljegyzeteket is létrehozhat a kívánt események megjelöléséhez a PowerShellből való létrehozásukkal.
Kiadási megjegyzések az Azure Pipelines build folyamattal
A kibocsátási széljegyzetek az Azure DevOps felhőalapú Azure Pipelines szolgáltatásának funkciói.
Ha az alábbi feltételek teljesülnek, az üzembe helyezési feladat automatikusan létrehozza a kibocsátási megjegyzést:
Az a(z) APPINSIGHTS_INSTRUMENTATIONKEY
alkalmazásbeállításon keresztül kapcsolódó erőforrás, amelyhez üzemelést végzel, kapcsolatban áll az Application Insights-szal.
Az Application Insights-erőforrás ugyanabban az előfizetésben található, mint az erőforrás, amelyre üzembe helyezve van.
A következő Azure DevOps-folyamatfeladatok egyikét használja:
Feladatkód |
Feladat neve |
Verziók |
AzureAppServiceSettings |
Azure-alkalmazás szolgáltatásbeállítások |
Bármely |
AzureRmWebAppDeployment |
Azure-alkalmazás szolgáltatás üzembe helyezése |
V3 és újabb |
AzureFunctionApp |
Azure Functions |
Bármely |
AzureFunctionAppContainer |
Azure Functions konténerekhez |
Bármely |
AzureWebAppContainer |
Azure konténeres webalkalmazás |
Bármely |
AzureWebApp |
Azure-webalkalmazás |
Bármely |
Megjegyzés
Ha továbbra is az Application Insights jegyzetterjesztési feladatát használja, törölje azt.
Ha az előző szakaszban nem tudja használni az egyik üzembehelyezési feladatot, hozzá kell adnia egy beágyazott szkriptfeladatot az üzembehelyezési folyamathoz.
Lépjen egy új vagy meglévő folyamatra, és válasszon ki egy feladatot.
Adjon hozzá egy új feladatot, és válassza az Azure CLI-t.
Adja meg a megfelelő Azure-előfizetést. Módosítsa a szkript típusát PowerShellre, a szkript helyét pedig beágyazottra.
Adja hozzá a PowerShell-szkriptet a következő szakasz 2. lépésétől a beágyazott szkripthez.
Adja hozzá a következő argumentumokat. Cserélje le a szögletes zárójelek közötti helyőrzőket a Script Arguments értékeire. Ezek -releaseProperties
nem kötelezőek.
-aiResourceId "<aiResourceId>" `
-releaseName "<releaseName>" `
-releaseProperties @{"ReleaseDescription"="<a description>";
"TriggerBy"="<Your name>" }
Az alábbi példa a választható releaseProperties
argumentumban megadható metaadatokat mutatja be a build és kiadási változók használatával.
-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)" }
Válassza a Mentés lehetőséget.
Kibocsátási széljegyzetek létrehozása az Azure CLI-vel
A CreateReleaseAnnotation
PowerShell-szkripttel bármilyen folyamatból létrehozhat jegyzeteket az Azure DevOps használata nélkül.
Jelentkezzen be az Azure CLI-be.
Készítsen egy helyi másolatot a következő szkriptről, és nevezze el 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
Feljegyzés
- A megjegyzéseknek a telepítési kategóriával kell rendelkezniük ahhoz, hogy megjelenjenek az Azure portálon.
- Ha a következő hibaüzenet jelenik meg: "A kérelem egy entitástörzset tartalmaz, de nem tartalmaz Tartalomtípus fejlécet", próbálja meg eltávolítani a csereparamétereket a következő sorban.
$body = (ConvertTo-Json $annotation -Compress)
Hívja meg a PowerShell-szkriptet az alábbi kóddal. Cserélje le a szögletes zárójeles helyőrzőket az értékekre. Ezek -releaseProperties
nem kötelezőek.
.\CreateReleaseAnnotation.ps1 `
-aiResourceId "<aiResourceId>" `
-releaseName "<releaseName>" `
-releaseProperties @{"ReleaseDescription"="<a description>";
"TriggerBy"="<Your name>" }
Argumentum |
Definíció |
Feljegyzés |
aiResourceId |
A cél Application Insights-erőforrás erőforrás-azonosítója. |
Példa: /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MyRGName/providers/microsoft.insights/components/MyResourceName |
releaseName |
A létrehozott kiadási széljegyzetet adhatja meg. |
|
releaseProperties |
Egyéni metaadatok csatolására szolgál a széljegyzethez. |
Választható |
Széljegyzetek megtekintése
Feljegyzés
A kibocsátási széljegyzetek jelenleg nem érhetők el az Application Insights Metrikák paneljén.
Amikor a kiadási sablont használja egy új kiadás üzembe helyezéséhez, a rendszer széljegyzetet küld az Application Insightsnak. A széljegyzeteket a következő helyeken tekintheti meg:
Ha engedélyezni szeretné a jegyzeteket a munkafüzetben, lépjen a Speciális beállítások elemre , és válassza a Széljegyzetek megjelenítése lehetőséget.
Jelöljön ki egy széljegyzetjelölőt a kiadás részleteinek megnyitásához, beleértve a kérelmezőt, a forrásvezérlő ágat, a kiadási folyamatot és a környezetet.
Széljegyzetek kiadása API-kulcsokkal
A kibocsátási széljegyzetek az Azure DevOps felhőalapú Azure Pipelines szolgáltatásának funkciói.
Fontos
Az API-kulcsokat használó széljegyzetek elavultak. Javasoljuk, hogy inkább az Azure CLI-t használja.
A széljegyzetek bővítmény telepítése (egyszer)
Kiadási széljegyzetek létrehozásához telepítse a Visual Studio Marketplace-en elérhető számos Azure DevOps-bővítmény egyikét.
Jelentkezzen be az Azure DevOps-projektbe .
A Visual Studio MarketplaceRelease Annotations bővítményoldalán válassza ki az Azure DevOps-szervezetet. Válassza az Install (Telepítés) lehetőséget a bővítmény Azure DevOps-szervezethez való hozzáadásához.
Csak egyszer kell telepítenie a bővítményt az Azure DevOps-szervezet számára. Mostantól a szervezet bármely projektjéhez konfigurálhat kibocsátási megjegyzéseket.
Hozzon létre minden egyes Azure Pipelines-kiadási sablonhoz egy külön API-kulcsot.
Jelentkezzen be az Azure Portalra , és nyissa meg az alkalmazást figyelő Application Insights-erőforrást. Vagy ha nem rendelkezik ilyen erőforrással, hozzon létre egy új Application Insights-erőforrást.
Nyissa meg az API Access lapot, és másolja ki az Application Insights azonosítóját.
Egy külön böngészőablakban nyissa meg vagy hozza létre az Azure Pipelines-üzemelő példányokat kezelő kiadási sablont.
Válassza a Feladat hozzáadása lehetőséget, majd a menüben válassza az Application Insights release annotation feladatát.
Feljegyzés
A Kibocsátási megjegyzések feladat jelenleg csak a Windows-alapú ügynököket támogatja. Linuxon, macOS-en vagy más típusú ügynökökön nem fut.
Az Alkalmazásazonosító területen illessze be az API Access lapról másolt Application Insights-azonosítót.
Az Application Insights API Access ablakában válassza az API-kulcs létrehozása lehetőséget.
Az API-kulcs létrehozása ablakban adjon meg egy leírást, válassza az Írási széljegyzetek lehetőséget, majd válassza a Kulcs létrehozása lehetőséget. Másolja ki az új kulcsot.
A kiadási sablon ablak Változók lapján válassza a Hozzáadás lehetőséget az új API-kulcs változódefiníciójának létrehozásához.
A Név mezőbe írja be az ApiKey nevet. Az Érték csoportban illessze be az API Access lapról másolt API-kulcsot.
A sablon mentéséhez válassza a Mentés lehetőséget a fő kiadási sablonablakban.
Váltás az új kiadási széljegyzetre
Az új kiadási széljegyzetek használata:
-
Távolítsa el a Release Annotations bővítményt.
- Távolítsa el az Application Insights release annotation feladatát az Azure Pipelines üzemelő példányában.
- Hozzon létre új kibocsátási megjegyzéseket az Azure Pipelines vagy az Azure CLI használatával.
A munkaelem-integrációs funkcióval egyszerűen hozhat létre olyan munkaelemeket a GitHubon vagy az Azure DevOpsban, amelyekbe releváns Application Insights-adatok vannak beágyazva.
Az új munkaelem-integráció a következő funkciókat kínálja a klasszikushoz:
- Speciális mezők, például hozzárendelések, projektek vagy mérföldkövek.
- Adattárikonok, hogy különbséget tehessünk a GitHub és az Azure DevOps munkafüzetek között.
- Több konfiguráció tetszőleges számú adattárhoz vagy munkaelemhez.
- Üzembe helyezés Azure Resource Manager-sablonokon keresztül.
- Előre összeállított és testre szabható kulcsszólekérdezési nyelv (KQL) lekérdezések az Application Insights-adatok munkahelyi elemekhez való hozzáadásához.
- Testre szabható munkafüzetsablonok.
Munkaelem-sablon létrehozásához nyissa meg az Application Insights-erőforrást, és a bal oldalon a Munkaelemek kiválasztása lehetőség alatt, majd a tetején válassza az Új sablon létrehozása lehetőséget
Munkaelem-sablont is létrehozhat a végpontok közötti tranzakció részletei lapon, ha jelenleg nincs sablon. Jelöljön ki egy eseményt, majd a jobb oldalon válassza a Munkaelem létrehozása, majd a Kezdés munkafüzetsablonnal lehetőséget.
Miután kiválasztotta az új sablon létrehozását, kiválaszthatja a nyomkövetési rendszereket, elnevezheti a munkafüzetet, hivatkozhat a kiválasztott nyomkövetési rendszerre, és kiválaszthatja a sablon tárolására szolgáló régiót (az alapértelmezett az Az Application Insights-erőforrás által megadott régió). Az URL-paraméterek az adattár alapértelmezett URL-címei, például https://github.com/myusername/reponame
https://dev.azure.com/{org}/{project}
.
Konkrét munkaelem-tulajdonságokat közvetlenül a sablonból állíthat be. Ez magában foglalja a hozzárendelést, az iterációs útvonalat, a projekteket és egyebeket a verziókövetési szolgáltatótól függően.
Feljegyzés
Helyszíni Azure DevOps-környezetek esetén egy minta https://dev.azure.com/test/test URL-cím használható helyőrzőként az Azure DevOps Project URL-címéhez. A munkaelem-sablon létrehozása után módosíthatja az URL-címet és annak érvényesítési szabályát a létrehozott Azure-munkafüzetben.
Munkaelem létrehozása
Az új sablont a teljesítmény, a hibák, a rendelkezésre állás vagy más lapokról elérhető, végpontok közötti tranzakció részleteiből érheti el.
Munkaelem létrehozásához lépjen a végpontok közötti tranzakció részleteire, jelöljön ki egy eseményt, majd válassza a Munkaelem létrehozása lehetőséget, és válassza ki a munkaelem-sablont.
Megnyílik egy új lap a böngészőben a kiválasztott nyomkövetési rendszer számára. Az Azure DevOpsban létrehozhat egy hibát vagy feladatot, a GitHubon pedig létrehozhat egy új problémát az adattárban. A rendszer automatikusan létrehoz egy új munkaelemet az Application Insights által biztosított környezetfüggő információkkal.
Sablon szerkesztése
A sablon szerkesztéséhez lépjen a Konfigurálás csoportban a Munkaelemek lapra, és válassza a frissíteni kívánt munkafüzet melletti ceruza ikont.
Válassza a szerkesztés
lehetőséget a felső eszköztáron.
Több munkaelem-konfigurációt is létrehozhat, és egyéni munkafüzetekkel is rendelkezhet, amelyek megfelelnek az egyes forgatókönyveknek. A munkafüzetek üzembe helyezhetők az Azure Resource Managerrel is, biztosítva a környezetek szabványos implementációit.
Klasszikus munkaelem-integráció
Az Konfigurálás alatt válassza a Munkaelemek lehetőséget az Application Insights erőforrásban.
Válassza a Váltás klasszikusra lehetőséget, töltse ki a mezőket az adataival, és engedélyezze az engedélyezést.
Hozzon létre egy munkaelemet a végpontok közötti tranzakció részleteinek megtekintésével, válasszon ki egy eseményt, majd válassza a Munkaelem létrehozása (klasszikus) lehetőséget.
Migrálás új munkaelem-integrációba
A migráláshoz törölje a klasszikus munkaelem-konfigurációt, majd hozzon létre és konfiguráljon egy munkaelem-sablont az integráció újbóli létrehozásához.
A törléshez az Application Insights-erőforrásban a Konfigurálás lehetőség alatt válassza a Munkaelemeket, majd válassza a Váltás a klasszikus nézetre, és fent a Törlés lehetőséget.