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 Szczegółowe informacje, 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 Szczegółowe informacje aplikacji i innych zasobów platformy Azure. Gdy potok wydania wykryje alert aplikacji Szczegółowe informacje, 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 Szczegółowe informacje aplikacji |
Wybierz strzałkę listy rozwijanej i wybierz grupę zasobów, której chcesz użyć. |
Nazwa zasobu Szczegółowe informacje aplikacji |
Wybierz strzałkę listy rozwijanej i wybierz zasób Application Szczegółowe informacje 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 aplikację Szczegółowe informacje Alerty.
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 aplikacji Szczegółowe informacje.
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 aplikacją Szczegółowe informacje za pośrednictwem APPINSIGHTS_INSTRUMENTATIONKEY
ustawienia aplikacji.
Zasób application Szczegółowe informacje 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 |
AzureAppService Ustawienia |
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 application Szczegółowe informacje, 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
$body = $annotation -replace '(\\+)"', '$1$1"' -replace "`"", "`"`""
az rest --method put --uri "$($aiResourceId)/Annotations?api-version=2015-05-01" --body "$($body) "
# Use the following command for Linux Azure DevOps Hosts or other PowerShell scenarios
# Invoke-AzRestMethod -Path "$aiResourceId/Annotations?api-version=2015-05-01" -Method PUT -Payload $body
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 docelowej aplikacji Szczegółowe informacje zasobu. |
Przykład: /subscriptions/000000000-0000-0000-0000-00000000000000/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 Szczegółowe informacje aplikacji.
Za każdym razem, gdy używasz szablonu wydania do wdrożenia nowej wersji, adnotacja jest wysyłana do aplikacji Szczegółowe informacje. Adnotacje można wyświetlić w następujących lokalizacjach:
Aby włączyć adnotacje w skoroszycie, przejdź do pozycji Zaawansowane Ustawienia 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 Marketplacewybierz 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 application Szczegółowe informacje monitorujący aplikację. Jeśli go nie masz, utwórz nowy zasób Szczegółowe informacje aplikacji.
Otwórz kartę Dostęp do interfejsu API i skopiuj identyfikator Szczegółowe informacje aplikacji.
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 Adnotacja wydania aplikacji Szczegółowe informacje 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 Szczegółowe informacje aplikacji skopiowany z karty Dostęp do interfejsu API.
W oknie Application Szczegółowe informacje API Access (Dostęp do interfejsu API Szczegółowe informacje aplikacji) wybierz pozycję Create API Key (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 Szczegółowe informacje aplikacji 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 Szczegółowe informacje aplikacji 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 Szczegółowe informacje aplikacji do elementów roboczych.
- Dostosowywalne szablony skoroszytów.
Aby utworzyć szablon elementu roboczego, przejdź do zasobu Aplikacja Szczegółowe informacje i po lewej stronie w obszarze Konfiguruj 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ę, utworzyć link do wybranego systemu śledzenia i wybrać region do przechowywania szablonu (domyślnym regionem, w którym znajduje się zasób Aplikacja Szczegółowe informacje). 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.
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 dostarczonymi przez aplikację Szczegółowe informacje.
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 Szczegółowe informacje aplikacji 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 obszaru Aplikacja Szczegółowe informacje zasób w obszarze Konfiguruj wybierz pozycję Elementy robocze, a następnie wybierz pozycję Przełącz do wersji klasycznej i *Usuń u góry.