Passer en revue les résultats du test TrackAvailability()
Cet article explique comment passer en revue les résultats du test TrackAvailability() sur le portail Azure et comment interroger les données à l’aide de Log Analytics. Les tests standard doivent toujours être utilisés si possible, car ils nécessitent peu d’investissements, pas de maintenance et peu de conditions préalables.
Prérequis
- Ressource Application Insights basée sur un espace de travail
- Accès au code source d’une application de fonction dans Azure Functions
- Expertise des développeurs capable de créer du code personnalisé pour TrackAvailability(), en fonction des besoins spécifiques de votre entreprise
Important
TrackAvailability() nécessite un investissement de développeur dans l’écriture et la maintenance du code personnalisé potentiellement complexe.
Vérifier la disponibilité
Commencez par consulter le graphique sous l’onglet Disponibilité de votre ressource Application Insights.
Notes
Les tests créés à l’aide de TrackAvailability()
s’affichent avec CUSTOM à côté du nom du test.
Pour voir les détails de la transaction de bout en bout, sous Explorer, sélectionnez Réussite ou Échec. Sélectionner ensuite un exemple. Vous pouvez également accéder aux détails de la transaction de bout en bout en sélectionnant un point de données sur le graphe.
Requête dans Log Analytics
Vous pouvez utiliser Log Analytics pour voir les résultats de la disponibilité, les dépendances, et plus encore. Pour en savoir plus sur Log Analytics, consultez Vue d’ensemble des requêtes de journal.
Exemple de code de base
Remarque
Cet exemple est conçu uniquement pour vous montrer comment fonctionne l’appel d’API TrackAvailability()
au sein d’une fonction Azure. Il ne vous montre pas comment écrire le code de test HTTP sous-jacent ou la logique métier nécessaires pour convertir cet exemple en test de disponibilité entièrement fonctionnel. Par défaut, si vous suivez cet exemple, vous allez créer un test HTTP GET de disponibilité de base.
Pour suivre ces instructions, vous devez utiliser le plan dédié pour autoriser la modification du code dans l’Éditeur App Service.
Créer une fonction de déclencheur de minuteur
Créez une ressource Azure Functions.
Si vous avez déjà une ressource Application Insights :
Par défaut, Azure Functions crée une ressource Application Insights. Toutefois, si vous souhaitez utiliser une ressource que vous avez créée précédemment, vous devez le spécifier lors de la création.
Suivez les instructions de création d'une ressource Azure Functions en intégrant la modification suivante :
Sous l’onglet Monitoring, sélectionnez la zone déroulante Application Insights, puis entrez ou sélectionnez le nom de votre ressource.
Si vous n’avez encore aucune ressource Application Insights créée pour votre fonction déclenchée par un minuteur :
- Par défaut, quand vous créez votre application Azure Functions, une ressource Application Insights est automatiquement créée. Suivez les instructions de création d'une ressource Azure Functions.
Remarque
Vous pouvez héberger vos fonctions sur un plan Consommation, Premium ou App Service. Si vous effectuez un test derrière un réseau virtuel ou que vous testez des points de terminaison non publics, vous devez utiliser le plan Premium à la place du plan Consommation. Sélectionnez votre plan sous l’onglet Hébergement. Vérifiez que la dernière version de .NET est sélectionnée lorsque vous créez l’application de fonction.
Créez une fonction de déclencheur de minuteur.
- Sous votre application de fonction, sélectionnez l'onglet Fonction.
- Sélectionnez Ajouter. Sous le volet Ajouter une fonction, sélectionnez les configurations suivantes :
- Environnement de développement : Développer dans le portail
- Sélectionner un modèle : Déclencheur de minuteur
- Sélectionnez Ajouter pour créer la fonction de déclencheur de minuteur.
Ajouter et modifier le code dans l'Éditeur App Service
Accédez à votre application de fonction déployée et, sous Outils de développement, sélectionnez l’onglet Éditeur App Service.
Pour créer un fichier, cliquez avec le bouton droit sous votre fonction de déclencheur de minuteur (par exemple, TimerTrigger1) et sélectionnez Nouveau fichier. Entrez ensuite le nom du fichier, puis sélectionnez Entrée.
Créez un fichier appelé function.proj, puis collez-y le code suivant :
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>netstandard2.0</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.ApplicationInsights" Version="2.15.0" /> <!-- Ensure you’re using the latest version --> </ItemGroup> </Project>
Créez un fichier nommé runAvailabilityTest.csx, puis collez-y le code suivant :
using System.Net.Http; public async static Task RunAvailabilityTestAsync(ILogger log) { using (var httpClient = new HttpClient()) { // TODO: Replace with your business logic await httpClient.GetStringAsync("https://www.bing.com/"); } }
Définissez la variable d’environnement
REGION_NAME
en tant qu’emplacement de disponibilité Azure valide.Exécutez la commande suivante dans Azure CLI pour obtenir la liste des régions disponibles.
az account list-locations -o table
Copiez le code suivant dans le fichier run.csx. (Vous allez remplacer le code préexistant.)
#load "runAvailabilityTest.csx" using System; using System.Diagnostics; using Microsoft.ApplicationInsights; using Microsoft.ApplicationInsights.Channel; using Microsoft.ApplicationInsights.DataContracts; using Microsoft.ApplicationInsights.Extensibility; private static TelemetryClient telemetryClient; // ============================================================= // ****************** DO NOT MODIFY THIS FILE ****************** // Business logic must be implemented in RunAvailabilityTestAsync function in runAvailabilityTest.csx // If this file does not exist, please add it first // ============================================================= public async static Task Run(TimerInfo myTimer, ILogger log, ExecutionContext executionContext) { if (telemetryClient == null) { // Initializing a telemetry configuration for Application Insights based on connection string var telemetryConfiguration = new TelemetryConfiguration(); telemetryConfiguration.ConnectionString = Environment.GetEnvironmentVariable("APPLICATIONINSIGHTS_CONNECTION_STRING"); telemetryConfiguration.TelemetryChannel = new InMemoryChannel(); telemetryClient = new TelemetryClient(telemetryConfiguration); } string testName = executionContext.FunctionName; string location = Environment.GetEnvironmentVariable("REGION_NAME"); var availability = new AvailabilityTelemetry { Name = testName, RunLocation = location, Success = false, }; availability.Context.Operation.ParentId = Activity.Current.SpanId.ToString(); availability.Context.Operation.Id = Activity.Current.RootId; var stopwatch = new Stopwatch(); stopwatch.Start(); try { using (var activity = new Activity("AvailabilityContext")) { activity.Start(); availability.Id = Activity.Current.SpanId.ToString(); // Run business logic await RunAvailabilityTestAsync(log); } availability.Success = true; } catch (Exception ex) { availability.Message = ex.Message; throw; } finally { stopwatch.Stop(); availability.Duration = stopwatch.Elapsed; availability.Timestamp = DateTimeOffset.UtcNow; telemetryClient.TrackAvailability(availability); telemetryClient.Flush(); } }
Exemple de code de test web à plusieurs étapes
Suivez les mêmes instructions indiquées ci-dessus, mais au lieu de coller le code suivant dans le fichier runAvailabilityTest.csx :
using System.Net.Http;
public async static Task RunAvailabilityTestAsync(ILogger log)
{
using (var httpClient = new HttpClient())
{
// TODO: Replace with your business logic
await httpClient.GetStringAsync("https://www.bing.com/");
// TODO: Replace with your business logic for an additional monitored endpoint, and logic for additional steps as needed
await httpClient.GetStringAsync("https://www.learn.microsoft.com/");
}
}
Étapes suivantes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : pendant toute l’année 2024, nous allons éliminer progressivement Problèmes GitHub comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, voir :Soumettre et afficher des commentaires pour