Szczegółowe informacje o wydaniach i elementach roboczych mają kluczowe znaczenie dla optymalizacji cyklu życia tworzenia oprogramowania. W miarę rozwoju aplikacji ważne jest dokładne monitorowanie poszczególnych wersji i jej elementów roboczych. Te szczegółowe informacje podkreślają wąskie gardła wydajności i pozwalają zespołom aktywnie rozwiązywać problemy, zapewniając bezproblemowe wdrażanie i środowisko użytkownika. Umożliwiają deweloperom i uczestnikom projektu podejmowanie decyzji, dostosowywanie procesów i dostarczanie oprogramowania wysokiej jakości.
Usługa Azure Pipelines integruje się z usługą Application Insights, aby umożliwić ciągłe monitorowanie potoku wydania usługi Azure DevOps w całym cyklu tworzenia oprogramowania.
W przypadku ciągłego monitorowania potoki wydań mogą uwzględniać dane monitorowania z usługi Application Insights i innych zasobów platformy Azure. Gdy potok wydania wykryje alert usługi Application Insights, potok może bramować lub wycofać wdrożenie do momentu rozwiązania alertu. Jeśli wszystkie testy przebiegną pomyślnie, wdrożenia mogą automatycznie przechodzić z testowania do środowiska produkcyjnego bez konieczności ręcznej interwencji.
W usłudze Azure DevOps wybierz organizację i projekt.
W menu po lewej stronie projektu wybierz pozycję Wydania potoków>.
Wybierz strzałkę listy rozwijanej obok pozycji Nowy i wybierz pozycję Nowy potok wydania. Jeśli nie masz jeszcze potoku, wybierz pozycję Nowy potok na wyświetlonej stronie.
W okienku Wybierz szablon wyszukaj i wybierz pozycję aplikacja systemu Azure Wdrożenie usługi z ciągłym monitorowaniem, a następnie wybierz pozycję Zastosuj.
W polu Etap 1 wybierz hiperlink, aby wyświetlić zadania etapu.
W okienku Konfiguracja etapu 1 wypełnij następujące pola:
Parametr |
Wartość |
Nazwa etapu |
Podaj nazwę etapu lub pozostaw ją na etapie 1. |
Subskrypcja platformy Azure |
Wybierz strzałkę listy rozwijanej i wybierz połączoną subskrypcję platformy Azure, której chcesz użyć. |
Typ aplikacji |
Wybierz strzałkę listy rozwijanej i wybierz typ aplikacji. |
Nazwa usługi App Service |
Wprowadź nazwę usługi aplikacja systemu Azure Service. |
Nazwa grupy zasobów dla usługi Application Insights |
Wybierz strzałkę listy rozwijanej i wybierz grupę zasobów, której chcesz użyć. |
Nazwa zasobu usługi Application Insights |
Wybierz strzałkę listy rozwijanej i wybierz zasób usługi Application Insights dla wybranej grupy zasobów. |
Aby zapisać potok przy użyciu domyślnych ustawień reguły alertu, wybierz pozycję Zapisz w prawym górnym rogu okna usługi Azure DevOps. Wprowadź opisowy komentarz i wybierz przycisk OK.
Modyfikowanie reguł alertów
Poza tym wdrożenie usługi aplikacja systemu Azure z szablonem ciągłego monitorowania ma cztery reguły alertów: dostępność, żądania niepowodzenia, czas odpowiedzi serwera i wyjątki serwera. Możesz dodać więcej reguł lub zmienić ustawienia reguły, aby spełniały potrzeby dotyczące poziomu usług.
Aby zmodyfikować ustawienia reguły alertu:
W lewym okienku strony potoku wydania wybierz pozycję Konfiguruj alerty usługi Application Insights.
Cztery domyślne reguły alertów są tworzone za pomocą skryptu wbudowanego:
$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";
Możesz zmodyfikować skrypt i dodać więcej reguł alertów. Można również zmodyfikować warunki alertu. Możesz również usunąć reguły alertów, które nie mają sensu w celach wdrażania.
Dodawanie warunków wdrożenia
Po dodaniu bram wdrożenia do potoku wydania alert, który przekracza ustawione progi, uniemożliwia niepożądane podwyższenie poziomu wydania. Po rozwiązaniu alertu wdrożenie może być kontynuowane automatycznie.
Aby dodać bramy wdrożenia:
Na stronie głównej potoku w obszarze Etapy wybierz symbol Warunki przed wdrożeniem lub Warunki po wdrożeniu, w zależności od tego, który etap wymaga bramy ciągłego monitorowania.
W okienku Konfiguracji warunków przed wdrożeniem ustaw wartość Bramy na włączone.
Obok pozycji Bramy wdrożenia wybierz pozycję Dodaj.
Wybierz pozycję Zapytanie o alerty usługi Azure Monitor z menu rozwijanego. Ta opcja umożliwia dostęp zarówno do alertów usługi Azure Monitor, jak i usługi Application Insights.
W obszarze Opcje oceny wprowadź żądane wartości dla ustawień, takich jak Czas między ponowną oceną bram i Limitem czasu, po którym bramy kończą się niepowodzeniem.
Wyświetlanie dzienników wydania
W dziennikach wydania można zobaczyć zachowanie bramy wdrożenia i inne kroki wydania. Aby otworzyć dzienniki:
Wybierz pozycję Wydania z menu po lewej stronie potoku.
Wybierz dowolną wersję.
W obszarze Etapy wybierz dowolny etap, aby wyświetlić podsumowanie wersji.
Aby wyświetlić dzienniki, wybierz pozycję Wyświetl dzienniki w podsumowaniu wydania, wybierz hiperlink Powodzenie lub Niepowodzenie w dowolnym etapie lub umieść kursor na dowolnym etapie i wybierz pozycję Dzienniki.
Adnotacje pokazują, gdzie wdrożono nową kompilację lub inne istotne zdarzenia. Adnotacje ułatwiają sprawdzenie, czy zmiany miały jakikolwiek wpływ na wydajność aplikacji. Mogą być tworzone automatycznie przez system kompilacji usługi Azure Pipelines . Możesz również utworzyć adnotacje, aby oznaczyć dowolne zdarzenie, tworząc je na podstawie programu PowerShell.
Adnotacje wydania za pomocą kompilacji usługi Azure Pipelines
Adnotacje wydania to funkcja usługi Azure Pipelines opartej na chmurze usługi Azure DevOps.
Jeśli zostaną spełnione wszystkie następujące kryteria, zadanie wdrożenia automatycznie utworzy adnotację wydania:
Zasób, do którego wdrażasz, jest połączony z usługą APPINSIGHTS_INSTRUMENTATIONKEY
Application Insights za pośrednictwem ustawienia aplikacji.
Zasób usługi Application Insights znajduje się w tej samej subskrypcji co zasób, do którego wdrażasz.
Używasz jednego z następujących zadań potoku usługi Azure DevOps:
Kod zadania |
Nazwa zadania |
Wersje |
AzureAppServiceSettings |
ustawienia usługi aplikacja systemu Azure |
Dowolne |
AzureRmWebAppDeployment |
wdrażanie usługi aplikacja systemu Azure |
Wersja 3 i nowsze |
AzureFunctionApp |
Azure Functions |
Dowolne |
AzureFunctionAppContainer |
Usługa Azure Functions dla kontenera |
Dowolne |
AzureWebAppContainer |
Azure Web App for Containers |
Dowolne |
AzureWebApp |
Aplikacja internetowa platformy Azure |
Dowolne |
Uwaga
Jeśli nadal używasz zadania wdrażania adnotacji usługi Application Insights, usuń je.
Jeśli nie możesz użyć jednego z zadań wdrażania w poprzedniej sekcji, musisz dodać wbudowane zadanie skryptu w potoku wdrażania.
Przejdź do nowego lub istniejącego potoku i wybierz zadanie.
Dodaj nowe zadanie i wybierz pozycję Interfejs wiersza polecenia platformy Azure.
Określ odpowiednią subskrypcję platformy Azure. Zmień typ skryptu na PowerShell i Lokalizację skryptu na Wbudowany.
Dodaj skrypt programu PowerShell z kroku 2 w następnej sekcji do skryptu wbudowanego.
Dodaj następujące argumenty. Zastąp symbole zastępcze w nawiasach kątowych wartościami argumentów skryptu. Są -releaseProperties
opcjonalne.
-aiResourceId "<aiResourceId>" `
-releaseName "<releaseName>" `
-releaseProperties @{"ReleaseDescription"="<a description>";
"TriggerBy"="<Your name>" }
W poniższym przykładzie przedstawiono metadane, które można ustawić w opcjonalnym releaseProperties
argumencie przy użyciu zmiennych kompilacji i wydania .
-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)" }
Wybierz pozycję Zapisz.
Tworzenie adnotacji wydania za pomocą interfejsu wiersza polecenia platformy Azure
Skrypt programu PowerShell umożliwia CreateReleaseAnnotation
tworzenie adnotacji z dowolnego procesu bez korzystania z usługi Azure DevOps.
Zaloguj się do interfejsu wiersza polecenia platformy Azure.
Utwórz lokalną kopię następującego skryptu i wywołaj go 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
Uwaga
- Adnotacje muszą mieć ustawienie Kategoria na Wdrożenie , aby było wyświetlane w witrynie Azure Portal.
- Jeśli wystąpi błąd "Żądanie zawiera treść jednostki, ale bez nagłówka Content-Type", spróbuj usunąć parametry zamiany w poniższym wierszu.
$body = (ConvertTo-Json $annotation -Compress)
Wywołaj skrypt programu PowerShell przy użyciu następującego kodu. Zastąp symbole zastępcze w nawiasach kątowych wartościami. Są -releaseProperties
opcjonalne.
.\CreateReleaseAnnotation.ps1 `
-aiResourceId "<aiResourceId>" `
-releaseName "<releaseName>" `
-releaseProperties @{"ReleaseDescription"="<a description>";
"TriggerBy"="<Your name>" }
Argument |
Definicja |
Uwaga |
aiResourceId |
Identyfikator zasobu dla docelowego zasobu usługi Application Insights. |
Przykład: /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MyRGName/providers/microsoft.insights/components/MyResourceName |
releaseName |
Nazwa do nadania utworzonej adnotacji wydania. |
|
releaseProperties |
Służy do dołączania niestandardowych metadanych do adnotacji. |
Opcjonalnie |
Wyświetlanie adnotacji
Uwaga
Adnotacje wersji nie są obecnie dostępne w okienku Metryki usługi Application Insights.
Za każdym razem, gdy używasz szablonu wydania do wdrożenia nowej wersji, adnotacja jest wysyłana do usługi Application Insights. Adnotacje można wyświetlić w następujących lokalizacjach:
Aby włączyć adnotacje w skoroszycie, przejdź do pozycji Ustawienia zaawansowane i wybierz pozycję Pokaż adnotacje.
Wybierz dowolny znacznik adnotacji, aby otworzyć szczegóły dotyczące wydania, w tym osoby żądającej, gałęzi kontroli źródła, potoku wydania i środowiska.
Adnotacje wydania przy użyciu kluczy interfejsu API
Adnotacje wydania to funkcja usługi Azure Pipelines opartej na chmurze usługi Azure DevOps.
Ważne
Adnotacje używające kluczy interfejsu API są przestarzałe. Zalecamy zamiast tego używanie interfejsu wiersza polecenia platformy Azure.
Instalowanie rozszerzenia adnotacji (jednorazowo)
Aby utworzyć adnotacje wydania, zainstaluj jedno z wielu rozszerzeń usługi Azure DevOps dostępnych w witrynie Visual Studio Marketplace.
Zaloguj się do projektu usługi Azure DevOps .
Na stronie rozszerzenia Adnotacje wersji w witrynie Visual Studio Marketplace wybierz organizację usługi Azure DevOps. Wybierz pozycję Zainstaluj , aby dodać rozszerzenie do organizacji usługi Azure DevOps.
Rozszerzenie należy zainstalować tylko raz dla organizacji usługi Azure DevOps. Teraz można skonfigurować adnotacje wydania dla dowolnego projektu w organizacji.
Utwórz oddzielny klucz interfejsu API dla każdego szablonu wydania usługi Azure Pipelines.
Zaloguj się do witryny Azure Portal i otwórz zasób usługi Application Insights, który monitoruje aplikację. Jeśli go nie masz, utwórz nowy zasób usługi Application Insights.
Otwórz kartę Dostęp do interfejsu API i skopiuj identyfikator usługi Application Insights.
W osobnym oknie przeglądarki otwórz lub utwórz szablon wydania, który zarządza wdrożeniami usługi Azure Pipelines.
Wybierz pozycję Dodaj zadanie , a następnie wybierz zadanie adnotacji wydania usługi Application Insights z menu.
Uwaga
Zadanie adnotacji wydania obsługuje obecnie tylko agentów opartych na systemie Windows. Nie będzie działać w systemie Linux, macOS ani w innych typach agentów.
W obszarze Identyfikator aplikacji wklej identyfikator usługi Application Insights skopiowany z karty Dostęp do interfejsu API.
W oknie Dostęp do interfejsu API usługi Application Insights wybierz pozycję Utwórz klucz interfejsu API.
W oknie Tworzenie klucza interfejsu API wprowadź opis, wybierz pozycję Napisz adnotacje, a następnie wybierz pozycję Generuj klucz. Skopiuj nowy klucz.
W oknie szablonu wydania na karcie Zmienne wybierz pozycję Dodaj , aby utworzyć definicję zmiennej dla nowego klucza interfejsu API.
W obszarze Nazwa wprowadź wartość ApiKey. W obszarze Wartość wklej klucz interfejsu API skopiowany z karty Dostęp do interfejsu API.
Wybierz pozycję Zapisz w głównym oknie szablonu wydania, aby zapisać szablon.
Przejście do nowej adnotacji wydania
Aby użyć nowych adnotacji wydania:
- Usuń rozszerzenie Adnotacje wydania.
- Usuń zadanie adnotacji wydania usługi Application Insights we wdrożeniu usługi Azure Pipelines.
- Utwórz nowe adnotacje wydania za pomocą usługi Azure Pipelines lub interfejsu wiersza polecenia platformy Azure.
Funkcja integracji elementów roboczych umożliwia łatwe tworzenie elementów roboczych w usłudze GitHub lub Azure DevOps, które mają odpowiednie dane usługi Application Insights osadzone w nich.
Nowa integracja elementu roboczego oferuje następujące funkcje w wersji klasycznej:
- Zaawansowane pola, takie jak przypisywanie, projekty lub punkty kontrolne.
- Ikony repozytorium umożliwiające rozróżnienie między skoroszytami usługi GitHub i Azure DevOps.
- Wiele konfiguracji dla dowolnej liczby repozytoriów lub elementów roboczych.
- Wdrażanie za pomocą szablonów usługi Azure Resource Manager.
- Wstępnie utworzone i dostosowywalne zapytania języka zapytań słów kluczowych (KQL) w celu dodania danych usługi Application Insights do elementów roboczych.
- Dostosowywalne szablony skoroszytów.
Aby utworzyć szablon elementu roboczego, przejdź do zasobu usługi Application Insights, a po lewej stronie w obszarze Konfigurowanie wybierz pozycję Elementy robocze, a następnie w górnej części wybierz pozycję Utwórz nowy szablon
Możesz również utworzyć szablon elementu roboczego na karcie szczegółów transakcji kompleksowej, jeśli szablon obecnie nie istnieje. Wybierz zdarzenie, a następnie po prawej stronie wybierz pozycję Utwórz element roboczy, a następnie pozycję Rozpocznij od szablonu skoroszytu.
Po wybraniu nowego szablonu możesz wybrać systemy śledzenia, nadać skoroszytowi nazwę, połączyć z wybranym systemem śledzenia i wybrać region do przechowywania szablonu (domyślnym regionem, w którym znajduje się zasób usługi Application Insights). Parametry adresu URL są domyślnym adresem URL repozytorium, na przykład https://github.com/myusername/reponame
lub https://dev.azure.com/{org}/{project}
.
Określone właściwości elementu roboczego można ustawić bezpośrednio z samego szablonu. Obejmuje to przypisanie, ścieżkę iteracji, projekty i więcej w zależności od dostawcy kontroli wersji.
Uwaga
W przypadku lokalnych środowisk usługi Azure DevOps przykładowy adres URL, taki jak https://dev.azure.com/test/test można użyć jako symbol zastępczy adresu URL projektu Usługi Azure DevOps. Po utworzeniu szablonu elementu roboczego można zmodyfikować adres URL i jego regułę walidacji w wygenerowanych skoroszytach platformy Azure.
Utwórz element roboczy
Dostęp do nowego szablonu można uzyskać z dowolnego kompleksowego szczegółów transakcji, do których można uzyskać dostęp z poziomu kart Wydajność, Błędy, Dostępność lub inne.
Aby utworzyć element roboczy, przejdź do szczegółów kompleksowej transakcji, wybierz zdarzenie, a następnie wybierz pozycję Utwórz element roboczy i wybierz szablon elementu roboczego.
Nowa karta w przeglądarce zostanie otwarta dla wybranego systemu śledzenia. W usłudze Azure DevOps możesz utworzyć usterkę lub zadanie, a w usłudze GitHub możesz utworzyć nowy problem w repozytorium. Nowy element roboczy jest tworzony automatycznie z informacjami kontekstowymi udostępnianymi przez usługę Application Insights.
Edytowanie szablonu
Aby edytować szablon, przejdź do karty Elementy robocze w obszarze Konfiguruj i wybierz ikonę ołówka obok skoroszytu, który chcesz zaktualizować.
Wybierz pozycję Edytuj na górnym pasku narzędzi.
Można utworzyć więcej niż jedną konfigurację elementu roboczego i mieć skoroszyt niestandardowy, aby spełnić poszczególne scenariusze. Skoroszyty można również wdrożyć za pomocą usługi Azure Resource Manager, zapewniając standardowe implementacje w środowiskach.
Integracja klasycznego elementu roboczego
W zasobie usługi Application Insights w obszarze Konfiguruj wybierz pozycję Elementy robocze.
Wybierz pozycję Przełącz na klasyczny, wypełnij pola swoimi informacjami i autoryzuj.
Utwórz element roboczy, przechodząc do szczegółów kompleksowej transakcji, wybierz zdarzenie, a następnie wybierz pozycję Utwórz element roboczy (klasyczny).
Migrowanie do nowej integracji elementu roboczego
Aby przeprowadzić migrację, usuń konfigurację klasycznego elementu roboczego, a następnie utwórz i skonfiguruj szablon elementu roboczego w celu odtworzenia integracji.
Aby usunąć, przejdź do zasobu usługi Application Insights w obszarze Konfigurowanie wybierz pozycję Elementy robocze, a następnie wybierz pozycję Przełącz na klasyczny i *Usuń u góry strony.