Insikter om versions- och arbetsobjekt är avgörande för att optimera livscykeln för programvaruutveckling. När programmen utvecklas är det viktigt att övervaka varje version och dess arbetsobjekt noggrant. Dessa insikter belyser flaskhalsar i prestanda och låter teamen hantera problem proaktivt, vilket säkerställer en smidig distribution och användarupplevelse. De ger utvecklare och intressenter förutsättningar att fatta beslut, justera processer och leverera programvara av hög kvalitet.
Azure Pipelines integreras med Application Insights för att tillåta kontinuerlig övervakning av din Azure DevOps-versionspipeline under hela livscykeln för programvaruutveckling.
Med kontinuerlig övervakning kan versionspipelines innehålla övervakningsdata från Application Insights och andra Azure-resurser. När versionspipelinen identifierar en Application Insights-avisering kan pipelinen gate eller återställa distributionen tills aviseringen har lösts. Om alla kontroller godkänns kan distributionerna fortsätta automatiskt från test hela vägen till produktion, utan att behöva utföra manuella åtgärder.
I Azure DevOps väljer du en organisation och ett projekt.
På den vänstra menyn på projektsidan väljer du Pipelines-versioner>.
Välj listrutepilen bredvid Ny och välj Ny versionspipeline. Om du inte har någon pipeline ännu väljer du Ny pipeline på sidan som visas.
I fönstret Välj en mall söker du efter och väljer Azure App Service-distribution med kontinuerlig övervakning och väljer sedan Använd.
I rutan Steg 1 väljer du hyperlänken till Visa scenaktiviteter.
I konfigurationsfönstret Steg 1 fyller du i följande fält:
Parameter |
Värde |
Fasnamn |
Ange ett fasnamn eller lämna det i steg 1. |
Azure-prenumeration |
Välj listrutepilen och välj den länkade Azure-prenumeration som du vill använda. |
Apptyp |
Välj listrutepilen och välj din apptyp. |
App Service-namn |
Ange namnet på din Azure App Service. |
Resursgruppnamn för Application Insights |
Välj listrutepilen och välj den resursgrupp som du vill använda. |
Application Insights-resursnamn |
Välj listrutepilen och välj Application Insights-resursen för den resursgrupp som du har valt. |
Om du vill spara pipelinen med standardinställningar för aviseringsregler väljer du Spara i det övre högra hörnet i Azure DevOps-fönstret. Ange en beskrivande kommentar och välj OK.
Ändra aviseringsregler
Azure App Service-distributionen med en mall för kontinuerlig övervakning har fyra aviseringsregler: tillgänglighet, misslyckade begäranden, serversvarstid och serverfel. Du kan lägga till fler regler eller ändra regelinställningarna så att de uppfyller dina servicenivåbehov.
Så här ändrar du inställningarna för aviseringsregeln:
I den vänstra rutan på sidan versionspipeline väljer du Konfigurera Application Insights-aviseringar.
De fyra standardaviseringsreglerna skapas via ett infogat skript:
$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";
Du kan ändra skriptet och lägga till fler aviseringsregler. Du kan också ändra aviseringsvillkoren. Och du kan ta bort aviseringsregler som inte passar för distributionen.
Lägga till distributionsvillkor
När du lägger till distributionsgrindar i versionspipelinen förhindrar en avisering som överskrider de tröskelvärden som du anger oönskad lanseringshöjning. När du har löst aviseringen kan distributionen fortsätta automatiskt.
Så här lägger du till distributionsportar:
På huvudsidan för pipelinen går du till Steg och väljer symbolen För distributionsvillkor eller Villkor efter distribution, beroende på vilket stadium som behöver en kontinuerlig övervakningsgrind.
I konfigurationsfönstret För distributionsvillkor anger du Gates till Aktiverad.
Bredvid Distributionsportar väljer du Lägg till.
Välj Fråga Azure Monitor-aviseringar på den nedrullningsbara menyn. Med det här alternativet kan du komma åt både Azure Monitor- och Application Insights-aviseringar.
Under Utvärderingsalternativ anger du de värden som du vill använda för inställningar som Tiden mellan omvärdering av grindar och Tidsgränsen efter vilken portarna misslyckas.
Visa versionsloggar
Du kan se beteendet för distributionsgrind och andra versionssteg i versionsloggarna. Så här öppnar du loggarna:
Välj Versioner på den vänstra menyn på pipelinesidan.
Välj valfri version.
Under Steg väljer du valfri fas för att visa en versionssammanfattning.
Om du vill visa loggar väljer du Visa loggar i versionssammanfattningen, väljer hyperlänken Lyckades eller Misslyckades i valfri fas eller hovrar över valfri fas och väljer Loggar.
Anteckningar visar var du distribuerade en ny version eller andra viktiga händelser. Anteckningar gör det enkelt att se om dina ändringar påverkar programmets prestanda. De kan skapas automatiskt av Azure Pipelines-byggsystemet . Du kan också skapa anteckningar för att flagga vilken händelse du vill genom att skapa dem från PowerShell.
Versionskommentarer med Azure Pipelines build
Versionsanteckningar är en funktion i den molnbaserade Azure Pipelines-tjänsten i Azure DevOps.
Om alla följande villkor uppfylls skapar distributionsuppgiften versionsanteckningen automatiskt:
Resursen som du distribuerar till är länkad till Application Insights via appinställningen APPINSIGHTS_INSTRUMENTATIONKEY
.
Application Insights-resursen finns i samma prenumeration som den resurs som du distribuerar till.
Du använder någon av följande Azure DevOps-pipelineuppgifter:
Aktivitetskod |
Uppgiftsnamn |
Versioner |
AzureAppServiceSettings |
Inställningar för Azure App Service |
Alla |
AzureRmWebAppDeployment |
Azure App Service-distribution |
V3 och senare |
AzureFunctionApp |
Azure Functions |
Alla |
AzureFunctionAppContainer |
Azure Functions för container |
Alla |
AzureWebAppContainer |
Azure Web App for Containers |
Alla |
AzureWebApp |
Azure Web App |
Alla |
Kommentar
Om du fortfarande använder application insights-kommentarsdistributionsuppgiften bör du ta bort den.
Om du inte kan använda någon av distributionsuppgifterna i föregående avsnitt måste du lägga till en infogad skriptaktivitet i distributionspipelinen.
Gå till en ny eller befintlig pipeline och välj en uppgift.
Lägg till en ny uppgift och välj Azure CLI.
Ange relevant Azure-prenumeration. Ändra Skripttyp till PowerShell och Skriptplats till Infogad.
Lägg till PowerShell-skriptet från steg 2 i nästa avsnitt i Infogat skript.
Lägg till följande argument. Ersätt platshållarna med vinkelparenteser med dina värden till Skriptargument. Är -releaseProperties
valfria.
-aiResourceId "<aiResourceId>" `
-releaseName "<releaseName>" `
-releaseProperties @{"ReleaseDescription"="<a description>";
"TriggerBy"="<Your name>" }
I följande exempel visas metadata som du kan ange i det valfria releaseProperties
argumentet med hjälp av bygg - och versionsvariabler .
-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älj Spara.
Skapa versionsanteckningar med Azure CLI
Du kan använda CreateReleaseAnnotation
PowerShell-skriptet för att skapa anteckningar från valfri process utan att använda Azure DevOps.
Logga in på Azure CLI.
Gör en lokal kopia av följande skript och anropa det 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
Kommentar
- Dina anteckningar måste ha Kategori inställt på Distribution för att visas i Azure Portal.
- Om du får ett felmeddelande, "Begäran innehåller en entitetstext men inget innehållstypshuvud", kan du prova att ta bort ersätt-parametrarna på följande rad.
$body = (ConvertTo-Json $annotation -Compress)
Anropa PowerShell-skriptet med följande kod. Ersätt platshållarna med vinkelparenteser med dina värden. Är -releaseProperties
valfria.
.\CreateReleaseAnnotation.ps1 `
-aiResourceId "<aiResourceId>" `
-releaseName "<releaseName>" `
-releaseProperties @{"ReleaseDescription"="<a description>";
"TriggerBy"="<Your name>" }
Argument |
Definition |
Kommentar |
aiResourceId |
Resurs-ID:t till Application Insights-målresursen. |
Exempel: /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e4e/resourceGroups/MyRGName/providers/microsoft.insights/components/MyResourceName |
releaseName |
Namnet som ska ge den skapade versionsanteckningen. |
|
releaseProperties |
Används för att koppla anpassade metadata till anteckningen. |
Valfritt |
Visa anteckningar
Kommentar
Versionskommentarer är för närvarande inte tillgängliga i fönstret Mått i Application Insights.
När du använder versionsmallen för att distribuera en ny version skickas en anteckning till Application Insights. Du kan visa anteckningar på följande platser:
Om du vill aktivera anteckningar i arbetsboken går du till Avancerade inställningar och väljer Visa anteckningar.
Välj en anteckningsmarkör för att öppna information om versionen, inklusive frågeställare, källkontrollgren, versionspipeline och miljö.
Släppa anteckningar med hjälp av API-nycklar
Versionsanteckningar är en funktion i den molnbaserade Azure Pipelines-tjänsten i Azure DevOps.
Viktigt!
Anteckningar som använder API-nycklar är inaktuella. Vi rekommenderar att du använder Azure CLI i stället.
Installera anteckningstillägget (en gång)
Om du vill skapa versionsanteckningar installerar du ett av de många Azure DevOps-tillägg som är tillgängliga på Visual Studio Marketplace.
Logga in på ditt Azure DevOps-projekt .
På sidan versionsanteckningar för Visual Studio Marketplace väljer du din Azure DevOps-organisation. Välj Installera för att lägga till tillägget i din Azure DevOps-organisation.
Du behöver bara installera tillägget en gång för din Azure DevOps-organisation. Nu kan du konfigurera versionsanteckningar för alla projekt i din organisation.
Skapa en separat API-nyckel för var och en av dina Azure Pipelines-versionsmallar.
Logga in på Azure Portal och öppna Application Insights-resursen som övervakar ditt program. Eller om du inte har någon skapar du en ny Application Insights-resurs.
Öppna fliken API-åtkomst och kopiera Application Insights-ID:t.
I ett separat webbläsarfönster öppnar eller skapar du den versionsmall som hanterar dina Azure Pipelines-distributioner.
Välj Lägg till uppgift och välj sedan uppgiften Application Insights Release Annotation på menyn.
Kommentar
Uppgiften Versionsanteckning stöder för närvarande endast Windows-baserade agenter. Den körs inte på Linux, macOS eller andra typer av agenter.
Under Program-ID klistrar du in Application Insights-ID:t som du kopierade från fliken API-åtkomst .
I fönstret Application Insights API Access väljer du Skapa API-nyckel.
I fönstret Skapa API-nyckel anger du en beskrivning, väljer Skriv anteckningar och väljer sedan Generera nyckel. Kopiera den nya nyckeln.
I fönstret versionsmall går du till fliken Variabler och väljer Lägg till för att skapa en variabeldefinition för den nya API-nyckeln.
Under Namn anger du ApiKey. Under Värde klistrar du in DEN API-nyckel som du kopierade från fliken API-åtkomst .
Spara mallen genom att välja Spara i huvudversionens mallfönster.
Kommentar
Begränsningar för API-nycklar beskrivs i dokumentationen om REST API-hastighetsbegränsningar.
Övergång till den nya versionsanteckningen
Så här använder du de nya versionsanteckningarna:
- Ta bort tillägget Versionsanteckningar.
- Ta bort uppgiften Application Insights Release Annotation i din Azure Pipelines-distribution.
- Skapa nya versionsanteckningar med Azure Pipelines eller Azure CLI.
Med integreringsfunktioner för arbetsobjekt kan du enkelt skapa arbetsobjekt i GitHub eller Azure DevOps som har relevanta Application Insights-data inbäddade i dem.
Den nya arbetsobjektintegrering erbjuder följande funktioner jämfört med klassiska:
- Avancerade fält som tilldelad, projekt eller milstolpar.
- Lagringsplatsikoner så att du kan skilja mellan GitHub- och Azure DevOps-arbetsböcker.
- Flera konfigurationer för valfritt antal lagringsplatser eller arbetsobjekt.
- Distribution via Azure Resource Manager-mallar.
- Fördefinierade och anpassningsbara KQL-frågor (Keyword Query Language) för att lägga till Application Insights-data i dina arbetsobjekt.
- Anpassningsbara arbetsboksmallar.
Om du vill skapa en mall för arbetsobjekt går du till Application Insights-resursen och till vänster under Konfigurera väljer du Arbetsobjekt och väljer sedan Skapa en ny mall högst upp
Du kan också skapa en mall för arbetsobjekt från fliken transaktionsinformation från slutpunkt till slutpunkt, om det för närvarande inte finns någon mall. Välj en händelse och välj Skapa ett arbetsobjekt till höger och sedan Börja med en arbetsboksmall.
När du har valt att skapa en ny mall kan du välja spårningssystem, namnge din arbetsbok, länka till det valda spårningssystemet och välja en region som mallen ska lagras i (standardvärdet är den region som Application Insights-resursen finns i). URL-parametrarna är standard-URL:en för lagringsplatsen, https://github.com/myusername/reponame
till exempel eller https://dev.azure.com/{org}/{project}
.
Du kan ange specifika egenskaper för arbetsobjekt direkt från själva mallen. Detta inkluderar tilldelningsobjektet, iterationssökvägen, projekt och mer beroende på din versionskontrollprovider.
Kommentar
För lokala Azure DevOps-miljöer kan en exempel-URL som kan användas som https://dev.azure.com/test/test platshållare för Azure DevOps-projekt-URL:en. När arbetsobjektmallen har skapats kan du ändra URL:en och dess verifieringsregel i den genererade Azure-arbetsboken.
Skapa ett arbetsobjekt
Du kan komma åt den nya mallen från valfri transaktionsinformation från slutpunkt till slutpunkt som du kan komma åt från prestanda, fel, tillgänglighet eller andra flikar.
Om du vill skapa ett arbetsobjekt går du till Transaktionsinformation från slutpunkt till slutpunkt, väljer en händelse och väljer sedan Skapa arbetsobjekt och väljer mallen för arbetsobjektet.
En ny flik i webbläsaren öppnas för ditt valda spårningssystem. I Azure DevOps kan du skapa en bugg eller uppgift, och i GitHub kan du skapa ett nytt problem på lagringsplatsen. Ett nytt arbetsobjekt skapas automatiskt med sammanhangsinformation från Application Insights.
Redigera en mall
Om du vill redigera mallen går du till fliken Arbetsobjekt under Konfigurera och väljer pennikonen bredvid den arbetsbok som du vill uppdatera.
Välj redigera i det övre verktygsfältet.
Du kan skapa mer än en arbetsobjektskonfiguration och ha en anpassad arbetsbok som uppfyller varje scenario. Arbetsböckerna kan också distribueras av Azure Resource Manager för att säkerställa standardimplementeringar i dina miljöer.
Integrering av klassiska arbetsobjekt
I Application Insights-resursen under Konfigurera väljer du Arbetsobjekt.
Välj Växla till klassisk, fyll i fälten med din information och auktorisera.
Skapa ett arbetsobjekt genom att gå till transaktionsinformationen från slutpunkt till slutpunkt, välj en händelse och välj sedan Skapa arbetsobjekt (klassisk).
Migrera till integrering av nya arbetsobjekt
Om du vill migrera tar du bort den klassiska arbetsobjektkonfigurationen och skapar och konfigurerar sedan en mall för arbetsobjekt för att återskapa integreringen.
Om du vill ta bort går du till i Application Insights-resursen under Konfigurera välj Arbetsobjekt och väljer sedan Växla till klassisk och *Ta bort överst.