Les aperçus des versions et des éléments de travail sont essentiels pour optimiser le cycle de vie du développement de logiciels. À mesure que les applications évoluent, il est primordial de surveiller étroitement chaque version et ses éléments de travail. Ces aperçus mettent en évidence les goulots d’étranglement des performances et permettent aux équipes de résoudre les problèmes de manière proactive, ce qui garantit un déploiement et une expérience utilisateur fluides. Ils permettent aux développeurs et aux parties prenantes de prendre des décisions, d’ajuster les processus et de fournir des logiciels de haute qualité.
Azure Pipelines s’intègre à Application Insights pour permettre l’analyse continue de votre pipeline de mise en production Azure DevOps tout au long du cycle de vie du développement logiciel.
Avec l’analyse continue, les pipelines de mise en production peuvent incorporer des données d’analyse à partir de Application Insights et d’autres ressources Azure. Lorsque le pipeline de mise en production détecte une alerte Application Insights, le pipeline peut déterminer ou restaurer le déploiement jusqu’à ce que l’alerte soit résolue. Si toutes les vérifications réussissent, les déploiements passent automatiquement de la phase de test à la mise en production sans nécessiter d’intervention manuelle.
Dans Azure DevOps, sélectionnez une organisation et un projet.
Dans le menu de gauche de la page projet, sélectionnez Pipelines>Mises en production.
Sélectionnez la flèche à côté de Nouveau et sélectionnez Nouveau pipeline de mise en production. Ou, si vous n’avez pas encore de pipeline, sélectionnez Nouveau pipeline dans la page qui s’affiche.
Dans le volet Sélectionner un modèle, recherchez et sélectionnez Déploiement avec analyse continue Azure App Service, puis sélectionnez Appliquer.
Dans la zone Étape 1, sélectionnez le lien hypertexte pour Afficher les tâches d’étape.
Dans le volet configuration de l’Étape 1, complétez les champs suivants :
Paramètre |
Valeur |
Nom de l’étape |
Fournissez un nom d’étape ou laissez-le en tant que Étape 1. |
Abonnement Azure |
Sélectionnez la flèche déroulante et sélectionnez l’abonnement Azure lié que vous souhaitez utiliser. |
Type d’application |
Sélectionnez la flèche déroulante, puis sélectionnez votre type d’application. |
Nom de l’App Service |
Entrez le nom de votre Azure App Service. |
Nom du groupe de ressources pour Application Insights |
Sélectionnez la flèche déroulante et sélectionnez le groupe de ressources que vous souhaitez utiliser. |
Nom de la ressource Application Insights |
Sélectionnez la flèche déroulante et sélectionnez la ressource Application Insights pour le groupe de ressources que vous avez sélectionné. |
Pour enregistrer le pipeline avec les paramètres de règle d’ alerte par défaut, sélectionnez Enregistrer dans le coin en haut à droite dans la fenêtre Azure DevOps. Entrez un commentaire descriptif, et sélectionnez OK.
Modifier les règles d’alerte
Prêt à l’emploi, le modèle de déploiement avec analyse continue Azure App Service comporte quatre règles d’alerte : Disponibilité, Requêtes ayant échoué, Temps de réponse du serveur et Exceptions du serveur. Vous pouvez ajouter d’autres règles ou modifier les paramètres de règle en fonction de vos besoins de niveau de service.
Pour modifier les paramètres de règle d’alerte :
Dans le volet gauche de la page pipeline de mise en production, sélectionnez Configurer des alertes Application Insights.
Les quatre règles d’alerte par défaut sont créées à l’aide d’un script inline :
$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";
Vous pouvez modifier le script et ajouter d’autres règles d’alerte. Vous pouvez également modifier les conditions d’alerte. Vous pouvez également supprimer les règles d’alerte qui n’ont pas de sens pour vos besoins de déploiement.
Ajouter des conditions de déploiement
Lorsque vous ajoutez des jalons de déploiement à votre pipeline de mise en production, une alerte de dépassement des seuils que vous définissez empêche la promotion des mises en production indésirables. Après que vous avez résolu l’alerte, le déploiement peut se poursuivre automatiquement.
Pour ajouter des jalons de déploiement :
Dans la page pipeline principal, sous Étapes, sélectionnez le symbole Conditions de pré-déploiement ou Conditions de post-déploiement, en fonction de l’étape nécessitant une jalons d’analyse continue.
Dans le volet configuration des Conditions de pré-déploiement, définissez Jalons à Activé.
À côté de Jalons de déploiement, sélectionnez Ajouter.
Dans le menu déroulant, sélectionnez Interroger les alertes Azure Monitor. Cette option vous permet d’accéder aux alertes Azure Monitor et Application Insights.
Sous Options d’évaluation, entrez les valeurs souhaitées pour les paramètres tels que Le délai entre la réévaluation des jalons et Le délai d’attente après lequel les jalons échouent.
Afficher les journaux des mises en production
Vous pouvez voir le comportement du jalon de déploiement et d’autres étapes de mise en production dans les journaux des mises en production. Pour ouvrir les journaux :
Sélectionnez Mises en production dans le menu de gauche de la page Pipeline.
Sélectionnez n’importe quelle mise en production.
Sous Étapes, sélectionnez une étape pour afficher un résumé de la mise en production.
Pour afficher les journaux, sélectionnez Afficher les journaux dans le résumé de la mise en production, sélectionnez le lien hypertexte ayant Réussi ou Échoué à n’importe quelle étape, ou passez la souris sur une étape et sélectionnez Journaux.
Les annotations indiquent où vous avez déployé une nouvelle build, ou d’autres événements importants. Elles vous permettent de mieux voir l’effet de vos modifications sur les performances de votre application. Elles peuvent être créées automatiquement par le système de génération Azure DevOps Services.Azure Pipelines. Vous pouvez également créer des annotations pour tout événement à partir de PowerShell.
Annotations de mise en production avec la build Azure Pipelines
Les annotations de mise en production sont une fonctionnalité du service Azure Pipelines basé sur le cloud d’Azure DevOps.
Si tous les critères suivants sont remplis, la tâche de déploiement crée automatiquement l’annotation de version :
La ressource sur laquelle vous effectuez le déploiement est liée à Application Insights via le paramètre d’application APPINSIGHTS_INSTRUMENTATIONKEY
.
La ressource Application Insights se trouve dans le même abonnement que la ressource sur laquelle vous effectuez le déploiement.
Vous utilisez l’une des tâches de pipeline Azure DevOps suivantes :
Code de tâche |
Nom de la tâche |
Versions |
AzureAppServiceSettings |
Paramètres d’Azure App Service |
Quelconque |
AzureRmWebAppDeployment |
Déploiement Azure App Service |
V3 et ultérieures |
AzureFunctionApp |
Azure Functions |
Quelconque |
AzureFunctionAppContainer |
Azure Functions pour conteneur |
Quelconque |
AzureWebAppContainer |
Azure Web App pour conteneurs |
Quelconque |
AzureWebApp |
Application web Azure |
Quelconque |
Notes
Si vous utilisez toujours la tâche de déploiement d’annotations Application Insights, vous devez la supprimer.
Si vous ne pouvez pas utiliser l’une des tâches de déploiement de la section précédente, vous devez ajouter une tâche de script inlined dans votre pipeline de déploiement.
Accédez à un pipeline nouveau ou existant, puis sélectionnez une tâche.
Ajoutez une nouvelle tâche, puis sélectionnez Azure CLI.
Spécifiez l’abonnement Azure correspondant. Définissez Type de script sur PowerShell et Emplacement du script sur Inlined.
Ajoutez le script PowerShell de l’étape 2 de la section suivante dans la zone Script inlined.
Ajoutez les arguments suivants : Remplacez les espaces réservés entre crochets par vos valeurs dans Arguments de script. Les -releaseProperties
sont facultatives.
-aiResourceId "<aiResourceId>" `
-releaseName "<releaseName>" `
-releaseProperties @{"ReleaseDescription"="<a description>";
"TriggerBy"="<Your name>" }
L’exemple suivant présente les métadonnées que vous pouvez définir dans l’argument releaseProperties
facultatif à l’aide des variables build et release.
-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)" }
Sélectionnez Enregistrer.
Créer des annotations de version avec Azure CLI
Vous pouvez utiliser le script PowerShell CreateReleaseAnnotation
pour créer des annotations à partir de tout processus de votre choix sans utiliser Azure DevOps.
Connectez-vous à Azure CLI.
Effectuez une copie locale du script suivant et appelez-la 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
Notes
- La Catégorie des annotations doit être définie sur Déploiement pour qu’elles s’affichent dans le portail Azure.
- Si vous recevez une erreur, « The request contains an entity body but no Content-Type header » (La requête contient un corps d'entité, mais pas d'en-tête Content-Type), essayez de supprimer les paramètres de remplacement dans la ligne suivante.
$body = (ConvertTo-Json $annotation -Compress)
Appelez le script PowerShell avec le code suivant. Remplacez les espaces réservés entre crochets par vos valeurs. Les -releaseProperties
sont facultatives.
.\CreateReleaseAnnotation.ps1 `
-aiResourceId "<aiResourceId>" `
-releaseName "<releaseName>" `
-releaseProperties @{"ReleaseDescription"="<a description>";
"TriggerBy"="<Your name>" }
Argument |
Définition |
Notes |
aiResourceId |
ID de la ressource Application Insights cible. |
Exemple : /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MyRGName/providers/microsoft.insights/components/MyResourceName |
releaseName |
Nom à donner à l’annotation de version créée. |
|
releaseProperties |
Utilisé pour joindre des métadonnées personnalisées à l’annotation. |
Facultatif |
Afficher les annotations
Notes
Les annotations de version ne sont actuellement pas disponibles dans le volet Métriques d’Application Insights.
Lorsque vous utilisez le modèle de version pour déployer une nouvelle publication, une annotation est envoyée à Application Insights. Vous pouvez afficher les annotations dans les emplacements suivants :
Pour activer les annotations dans votre classeur, accédez à Paramètres avancés et sélectionnez Afficher les annotations.
Sélectionnez un marqueur d’annotation pour ouvrir les détails sur la version, notamment le demandeur, la branche de contrôle de code source, le pipeline de mise en production et l’environnement.
Annotations de version à l’aide de clés API
Les annotations de mise en production sont une fonctionnalité du service Azure Pipelines basé sur le cloud d’Azure DevOps.
Important
Les annotations effectuées en utilisant des clés API sont déconseillées. Nous vous recommandons d’utiliser Azure CLI à la place.
Installer l’extension Annotations (une fois)
Pour créer des annotations de version, installez l’une des nombreuses extensions Azure DevOps disponibles dans Visual Studio Marketplace.
Connectez-vous à votre projet Azure DevOps.
Dans la page Extension Annotations de publication Visual Studio Marketplace, sélectionnez votre organisation Azure DevOps. Sélectionnez Installer pour ajouter l’extension à votre organisation Azure DevOps.
Vous ne devez installer l’extension qu’une seule fois pour votre organisation Azure DevOps. Vous pouvez désormais configurer des annotations de mise en production pour tout projet au sein de votre organisation.
Créez une clé API distincte pour chacun de vos modèles de mise en production Azure Pipelines.
Connectez-vous au portail Azure et ouvrez la ressource Application Insights qui surveille votre application. Si vous n’en avez pas, créez une ressource Application Insights.
Ouvrez l’onglet Accès à l’API et copiez l’ID d’Application Insights.
Dans une fenêtre de navigateur distincte, ouvrez ou créez le modèle de mise en production qui gère vos déploiements Azure Pipelines.
Sélectionnez Ajouter une tâche, puis choisissez la tâche Annotation de version Application Insights dans le menu.
Notes
À l’heure actuelle, la tâche Annotation de version prend uniquement en charge les agents basés sur Windows. Elle ne s’exécute pas sur Linux, macOS ni d’autres types d’agents.
Sous ID d’application, collez l’ID Application Insights que vous avez copié à partir de l’onglet Accès d’API.
De retour dans la fenêtre Accès d’API d’Application Insights, sélectionnez Créer une clé API.
Dans la fenêtre Créer une clé API, entrez une description, sélectionnez Écrire des annotations, puis sélectionnez Générer une clé. Copiez la nouvelle clé.
Dans la fenêtre du modèle de mise en production, sous l’onglet Variables, sélectionnez Ajouter pour créer une définition de variable pour la nouvelle clé API.
Sous Nom, entrez ApiKey. Sous Valeur, copiez la clé API que vous avez copiée à partir de l’onglet Accès d’API.
Sélectionnez Enregistrer dans la fenêtre principale du modèle de mise en production pour enregistrer le modèle.
Transition vers la nouvelle annotation d’exécution
Pour utiliser les nouvelles annotations d’exécution :
- Supprimez l’extension Annotations d’exécution.
- Supprimez la tâche d’Annotation d’exécution des Insights d’application dans votre déploiement Azure Pipelines.
- Créez des annotations d’exécution avec Azure Pipelines ou l’interface Azure CLI.
La fonctionnalité d’intégration d’éléments de travail vous permet de créer facilement des éléments de travail dans GitHub ou Azure DevOps, contenant des données Application Insights incorporées.
La nouvelle intégration d’éléments de travail offre les fonctionnalités suivantes par rapport à la version classique :
- Champs avancés tels que destinataire, projets ou jalons.
- Icônes du référentiel pour vous permettre de faire la différence entre les classeurs GitHub et Azure DevOps.
- Configurations multiples pour un nombre quelconque de référentiels ou d’éléments de travail.
- Déploiement par le biais de modèles Azure Resource Manager.
- Requêtes KQL (Keyword Query Language) pré-générées et personnalisables pour ajouter des données Application Insights à vos éléments de travail.
- Modèles de classeur personnalisables.
Pour créer un modèle d’élément de travail, accédez à votre ressource Application Insights, à gauche sous Configurer, sélectionnez Éléments de travail, puis en haut, choisissez Créer un modèle
Vous pouvez également créer un modèle d’élément de travail à partir de l’onglet Détails de la transaction de bout en bout, si aucun modèle n’existe actuellement. Sélectionnez un événement et, à droite, choisissez Créer un élément de travail, puis Démarrer avec un modèle de classeur.
Après avoir sélectionné Créer un modèle, vous pouvez choisir vos systèmes de suivi, nommer votre classeur, créer un lien vers votre système de suivi sélectionné, puis choisir une région pour le stockage du modèle (la valeur par défaut est la région dans laquelle se trouve votre ressource Application Insights). Les paramètres d’URL sont l’URL par défaut de votre référentiel, par exemple, https://github.com/myusername/reponame
ou https://dev.azure.com/{org}/{project}
.
Vous pouvez définir des propriétés spécifiques de l’élément de travail directement à partir du modèle lui-même. Cela comprend le destinataire, le chemin d’itération, les projets et plus encore, en fonction de votre fournisseur de contrôle de version.
Remarque
Pour les environnements Azure DevOps locaux, un exemple d’URL tel que https://dev.azure.com/test/test peut être utilisé comme espace réservé pour l’URL du projet Azure DevOps. Une fois le modèle d’élément de travail créé, vous pouvez modifier l’URL et sa règle de validation dans le classeur Azure généré.
Créer un élément de travail
Vous pouvez accéder à votre nouveau modèle à partir de l’onglet Détails de la transaction de bout en bout, auquel vous pouvez accéder à partir des onglets Performances, Échecs, Disponibilité, entre autres.
Pour créer un élément de travail, accédez à l’onglet Détails de la transaction de bout en bout, sélectionnez un événement, choisissez Créer un élément de travail, puis sélectionnez votre modèle d’élément de travail.
Votre système de suivi s’ouvre dans un nouvel onglet de votre navigateur. Dans Azure DevOps, vous pouvez créer un bogue ou une tâche et, dans GitHub, vous pouvez créer un problème dans votre référentiel. Un nouvel élément de travail est automatiquement créé avec des informations contextuelles fournies par Application Insights.
Modifier un modèle
Pour modifier votre modèle, accédez à l’onglet Éléments de travail sous Configurer, puis sélectionnez l’icône en forme de crayon en regard du classeur que vous souhaitez mettre à jour.
Sélectionnez modifier dans la barre d’outils supérieure.
Vous pouvez créer plusieurs configurations d’élément de travail et disposer d’un classeur personnalisé pour répondre à chaque scénario. Les classeurs peuvent également être déployés par Azure Resource Manager afin de garantir des implémentations standard dans tous vos environnements.
Intégration des éléments de travail classiques
Dans votre ressource Application Insights, sous Configurer, sélectionnez Éléments de travail.
Sélectionnez Basculer vers classique, renseignez les champs avec vos informations et autorisez.
Créer un élément de travail en accédant aux détails de la transaction de bout en bout, sélectionnez un événement, choisissez Créer un élément de travail (classique) .
Migrer vers une nouvelle intégration d’éléments de travail
Pour migrer, supprimez votre configuration d’éléments de travail classique, puis créez et configurez un modèle d’élément de travail pour recréer votre intégration.
Pour supprimer, accédez à votre ressource Application Insights sous Configurer sélectionnez Éléments de travail puis sélectionnez Basculer vers classique et *Supprimer en haut.