Activation des diagnostics Azure dans Azure Cloud Services (classique)
Important
Cloud Services (classique) est désormais déconseillé pour tous les clients depuis le 1er septembre 2024. Tous les déploiements existants en cours d’exécution seront arrêtés par Microsoft, et les données seront définitivement perdues à partir d’octobre 2024. Les nouveaux déploiements doivent utiliser le nouveau modèle de déploiement basé sur Azure Resource Manager Azure Cloud Services (support étendu) .
Consultez la page Présentation des diagnostics Azure pour obtenir des informations sur les diagnostics Azure.
Activation de Diagnostics dans un rôle de travail
Cette procédure pas à pas décrit comment mettre en oeuvre un rôle de travail Azure qui émet des données télémétriques à l'aide de la classe EventSource .NET. Diagnostics Azure est utilisé pour collecter des données télémétriques et les stocker dans un compte de stockage Azure. Lorsque vous créez un rôle de travail, Visual Studio active automatiquement Diagnostics 1.0 dans le cadre de la solution dans les Kits de développement logiciel (SDK) pour .NET 2.4 et versions antérieures. Les instructions suivantes décrivent le processus de création d'un rôle de travail, de désactivation de Diagnostics 1.0 de la solution, et de déploiement de Diagnostics 1.2 ou 1.3 sur votre rôle de travail.
Prérequis
Cet article part du principe que vous disposez d’un abonnement Azure et que vous utilisez Visual Studio avec le Kit de développement logiciel (SDK) Azure. Si vous n’avez pas d’abonnement Azure, vous pouvez vous inscrire à l’évaluation gratuite. Assurez-vous d'avoir installé et configuré Azure PowerShell version 0.8.7 ou ultérieure.
Étape 1 : création d’un rôle de travail
- Lancez Visual Studio.
- Créez un projet Azure Cloud Services à partir du modèle Cloud qui cible .NET Framework 4.5. Nommez le projet « WadExample » et sélectionnez OK.
- Sélectionnez Rôle de travail et Ok. Le projet est créé.
- Dans Explorateur de solutions, double-cliquez sur le fichier de propriétés WorkerRole1.
- Dans l’onglet Configuration, décochez Activer Diagnostics pour désactiver Diagnostics 1.0 (Kit de développement Azure 2.4 et versions antérieures).
- Générez votre solution pour vérifier que vous n'avez pas d'erreurs.
Étape 2 : instrumentalisation de votre code
Remplacez le contenu de WorkerRole.cs par le code suivant : La classe SampleEventSourceWriter, héritée de la classe EventSource implémente quatre méthodes de journalisation : SendEnums, MessageMethod, SetOther et HighFreq. Le premier paramètre de la méthode WriteEvent définit l’ID de l’événement respectif. La méthode Run implémente une boucle infinie qui appelle chacune des méthodes de journalisation implémentées dans la classe SampleEventSourceWriter toutes les 10 secondes.
using Microsoft.WindowsAzure.ServiceRuntime;
using System;
using System.Diagnostics;
using System.Diagnostics.Tracing;
using System.Net;
using System.Threading;
namespace WorkerRole1
{
sealed class SampleEventSourceWriter : EventSource
{
public static SampleEventSourceWriter Log = new SampleEventSourceWriter();
public void SendEnums(MyColor color, MyFlags flags) { if (IsEnabled()) WriteEvent(1, (int)color, (int)flags); }// Cast enums to int for efficient logging.
public void MessageMethod(string Message) { if (IsEnabled()) WriteEvent(2, Message); }
public void SetOther(bool flag, int myInt) { if (IsEnabled()) WriteEvent(3, flag, myInt); }
public void HighFreq(int value) { if (IsEnabled()) WriteEvent(4, value); }
}
enum MyColor
{
Red,
Blue,
Green
}
[Flags]
enum MyFlags
{
Flag1 = 1,
Flag2 = 2,
Flag3 = 4
}
public class WorkerRole : RoleEntryPoint
{
public override void Run()
{
// This is a sample worker implementation. Replace with your logic.
Trace.TraceInformation("WorkerRole1 entry point called");
int value = 0;
while (true)
{
Thread.Sleep(10000);
Trace.TraceInformation("Working");
// Emit several events every time we go through the loop
for (int i = 0; i < 6; i++)
{
SampleEventSourceWriter.Log.SendEnums(MyColor.Blue, MyFlags.Flag2 | MyFlags.Flag3);
}
for (int i = 0; i < 3; i++)
{
SampleEventSourceWriter.Log.MessageMethod("This is a message.");
SampleEventSourceWriter.Log.SetOther(true, 123456789);
}
if (value == int.MaxValue) value = 0;
SampleEventSourceWriter.Log.HighFreq(value++);
}
}
public override bool OnStart()
{
// Set the maximum number of concurrent connections
ServicePointManager.DefaultConnectionLimit = 12;
// For information on handling configuration changes
// see the MSDN topic at https://go.microsoft.com/fwlink/?LinkId=166357.
return base.OnStart();
}
}
}
Étape 3 : déploiement de votre rôle de travail
Avertissement
Quand vous activez les diagnostics pour un rôle existant, toutes les extensions que vous avez déjà définies sont désactivées lors du déploiement du package. Ce sont, entre autres, les suivantes :
- Extension Microsoft Monitoring Agent Diagnostics
- Surveillance de la sécurité de Microsoft Azure
- Microsoft Antimalware
- Microsoft Monitoring Agent
- Agent du profileur de service Microsoft
- Extension de domaine Microsoft Azure
- Extension Diagnostics Azure pour Windows
- Extension Bureau à distance de Microsoft Azure
- Collecteur de journaux Microsoft Azure
Vous pouvez réinitialiser vos extensions via le portail Azure ou PowerShell une fois que le rôle mis à jour est déployé.
- Déployez votre rôle de travail vers Azure à partir de Visual Studio en sélectionnant le projet WadExample dans l’Explorateur de solutions, puis Publier à partir du menu Générer.
- Choisissez votre abonnement.
- Dans la boîte de dialogue Paramètres de publication Microsoft Azure, sélectionnez Créer.
- Dans la boîte de dialogue Créer un service cloud et un compte de stockage, saisissez un Nom (par exemple « WadExample »), puis sélectionnez une région ou un groupe d’affinités.
- Définissez l’Environnement sur Intermédiaire.
- Modifiez d’autres Paramètres le cas échéant, puis sélectionnez Publier.
- Une fois le déploiement terminé, vérifiez dans le portail Azure Classic que votre service cloud est en cours d’Exécution .
Étape 4 : création de votre fichier de configuration Diagnostics et installation de l’extension
Téléchargez la définition de schéma de fichier de configuration publique en exécutant la commande PowerShell suivante :
(Get-AzureServiceAvailableExtension -ExtensionName 'PaaSDiagnostics' -ProviderNamespace 'Microsoft.Azure.Diagnostics').PublicConfigurationSchema | Out-File -Encoding utf8 -FilePath 'WadConfig.xsd'
Ajoutez un fichier XML à votre projet WorkerRole1 en cliquant avec le bouton droit sur le projet WorkerRole1, puis sélectionnez Ajouter ->Nouvel élément... ->Éléments Visual C# ->Données ->Fichier XML. Nommez le fichier
WadExample.xml
.Associez le fichier WadConfig.xsd avec le fichier de configuration. Assurez-vous que la fenêtre de l'éditeur WadExample.xml est la fenêtre active. Appuyez sur F4 pour ouvrir la fenêtre Propriétés. Sélectionnez la propriété Schémas dans la fenêtre Propriétés. Sélectionnez les … dans la propriété Schémas. Sélectionnez le bouton Add… et naviguez jusqu’à l’emplacement où vous avez enregistré le fichier XSD, puis sélectionnez le fichier WadConfig.xsd. Cliquez sur OK.
Remplacez le contenu du fichier de configuration WadExample.xml par le XML suivant, puis enregistrez le fichier. Ce fichier de configuration définit deux compteurs de performances à collecter : un pour l'utilisation du processeur et l'autre pour l'utilisation de la mémoire. Ensuite, la configuration définit les quatre événements correspondant aux méthodes de la classe SampleEventSourceWriter.
<?xml version="1.0" encoding="utf-8"?>
<PublicConfig xmlns="http://schemas.microsoft.com/ServiceHosting/2010/10/DiagnosticsConfiguration">
<WadCfg>
<DiagnosticMonitorConfiguration overallQuotaInMB="25000">
<PerformanceCounters scheduledTransferPeriod="PT1M">
<PerformanceCounterConfiguration counterSpecifier="\Processor(_Total)\% Processor Time" sampleRate="PT1M" unit="percent" />
<PerformanceCounterConfiguration counterSpecifier="\Memory\Committed Bytes" sampleRate="PT1M" unit="bytes"/>
</PerformanceCounters>
<EtwProviders>
<EtwEventSourceProviderConfiguration provider="SampleEventSourceWriter" scheduledTransferPeriod="PT5M">
<Event id="1" eventDestination="EnumsTable"/>
<Event id="2" eventDestination="MessageTable"/>
<Event id="3" eventDestination="SetOtherTable"/>
<Event id="4" eventDestination="HighFreqTable"/>
<DefaultEvents eventDestination="DefaultTable" />
</EtwEventSourceProviderConfiguration>
</EtwProviders>
</DiagnosticMonitorConfiguration>
</WadCfg>
</PublicConfig>
Étape 5 : installation de Diagnostics sur votre rôle de travail
Les applets de commande PowerShell pour la gestion de Diagnostics sur un rôle Web ou de travail sont : Set-AzureServiceDiagnosticsExtension, Get-AzureServiceDiagnosticsExtension et Remove-AzureServiceDiagnosticsExtension.
- Ouvrez Azure PowerShell.
- Exécutez le script pour installer Diagnostics sur votre rôle de travail (remplacez StorageAccountKey par la clé du compte de stockage de votre compte de stockage wadexample) et config_path par le chemin du fichier WadExample.xml) :
$storage_name = "wadexample"
$key = "<StorageAccountKey>"
$config_path="c:\users\<user>\documents\visual studio 2013\Projects\WadExample\WorkerRole1\WadExample.xml"
$service_name="wadexample"
$storageContext = New-AzureStorageContext -StorageAccountName $storage_name -StorageAccountKey $key
Set-AzureServiceDiagnosticsExtension -StorageContext $storageContext -DiagnosticsConfigurationPath $config_path -ServiceName $service_name -Slot Staging -Role WorkerRole1
Étape 6 : examen de vos données télémétriques
Dans l' Explorateur de serveurs de Visual Studio, naviguez jusqu'au compte de stockage wadexample. Une fois que le service cloud a été exécuté pendant environ cinq (5) minutes, vous devriez voir les tables WADEnumsTable, WADHighFreqTable, WADMessageTable, WADPerformanceCountersTable et WADSetOtherTable. Double-cliquez sur l'une des tables pour afficher les données télémétriques collectées.
Schéma des fichiers de configuration
Le fichier de configuration des diagnostics définit les valeurs qui sont utilisées pour initialiser les paramètres de configuration de diagnostic lorsque l’agent de diagnostics démarre. Consultez la dernière référence de schéma pour obtenir les valeurs valides et des exemples.
Dépannage
Si vous rencontrez des problèmes, consultez la page Résolution de problèmes des diagnostics Azure pour obtenir de l’aide.
Étapes suivantes
Consultez la liste des articles connexes sur les diagnostics relatifs aux machines virtuelles Azure pour modifier les données que vous collectez, résoudre des problèmes ou pour en savoir plus sur les diagnostics en général.