Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Dans ce tutoriel, vous utilisez la télémétrie dans votre application Python pour suivre les évaluations des indicateurs de fonctionnalité et les événements personnalisés. La télémétrie vous permet de prendre des décisions éclairées sur votre stratégie de gestion des fonctionnalités. Vous utilisez l’indicateur de fonctionnalité avec la télémétrie activée dans la vue d’ensemble pour activer la télémétrie pour les indicateurs de fonctionnalité. Avant de continuer, veillez à créer un indicateur de fonctionnalité nommé Greeting dans votre magasin de configuration avec la télémétrie activée. Ce tutoriel s’appuie sur le didacticiel pour utiliser des indicateurs de fonctionnalité variant dans une application Python.
Conditions préalables
- Indicateur de fonctionnalité variant avec télémétrie activée depuis Activer la télémétrie pour les indicateurs de fonctionnalité.
- L’application à partir de Utiliser les indicateurs de fonctionnalité de variante dans une application Python.
Ajouter des données de télémétrie à votre application Python
Installez les packages requis à l’aide de pip :
pip install azure-appconfiguration-provider pip install featuremanagement["AzureMonitor"] pip install azure-monitor-opentelemetryOuvrez et configurez
app.pyvotre code pour vous connecter à Application Insights pour publier des données de télémétrie.import os from azure.monitor.opentelemetry import configure_azure_monitor # Configure Azure Monitor configure_azure_monitor(connection_string=os.getenv("APPLICATIONINSIGHTS_CONNECTION_STRING"))app.pyChargez également vos indicateurs de fonctionnalité à partir d’App Configuration et chargez-les dans la gestion des fonctionnalités.FeatureManagerutilise la fonction de rappelpublish_telemetrypour publier de la télémétrie sur Azure Monitor.from featuremanagement.azuremonitor import publish_telemetry feature_manager = FeatureManager(config, on_feature_evaluated=publish_telemetry)Ouvrez
routes.pyet mettez à jour votre code pour suivre vos propres événements dans votre application. Lorsqu’on appelletrack_event, un événement personnalisé est publié sur Azure Monitor avec l'utilisateur spécifié.from featuremanagement import track_event @bp.route("/heart", methods=["POST"]) def heart(): if current_user.is_authenticated: user = current_user.username # Track the appropriate event based on the action track_event("Liked", user) return jsonify({"status": "success"})Ouvrez
index.htmlet mettez à jour le code pour implémenter le bouton like. Le bouton like envoie une requête POST au/heartpoint de terminaison en cliquant dessus.<script> function heartClicked(button) { var icon = button.querySelector('i'); // Toggle the heart icon appearance icon.classList.toggle('far'); icon.classList.toggle('fas'); // Only send a request to the dedicated heart endpoint when it's a like action if (icon.classList.contains('fas')) { fetch('/heart', { method: 'POST', headers: { 'Content-Type': 'application/json', } }); } } </script>
Générer et exécuter l’application
Application Insights nécessite une chaîne de connexion pour se connecter à votre ressource Application Insights. Définissez la
APPLICATIONINSIGHTS_CONNECTION_STRINGvariable d’environnement sur la chaîne de connexion de votre ressource Application Insights.setx APPLICATIONINSIGHTS_CONNECTION_STRING "applicationinsights-connection-string"Si vous utilisez PowerShell, exécutez la commande suivante :
$Env:APPLICATIONINSIGHTS_CONNECTION_STRING = "applicationinsights-connection-string"Si vous utilisez macOS ou Linux, exécutez la commande suivante :
export APPLICATIONINSIGHTS_CONNECTION_STRING='applicationinsights-connection-string'Exécutez l’application, consultez l’étape 2 de l’utilisation des indicateurs de fonctionnalité variant.
Créez 10 utilisateurs différents et connectez-vous à l’application. Lorsque vous vous connectez avec chaque utilisateur, vous obtenez une variante de message différente pour certains d’entre eux. ~50%% du temps vous ne recevez aucun message. 25 % du temps vous recevez le message « Bonjour ! » et 25 % du temps vous obtenez « J’espère que cela embellit votre journée ! ».
Avec certains utilisateurs, sélectionnez le bouton Like pour déclencher l’événement de télémétrie.
Ouvrez votre ressource Application Insights dans le portail Azure et sélectionnez Journaux sous Surveillance. Dans la fenêtre de requête, exécutez la requête suivante pour afficher les événements de télémétrie :
// Step 1: Get distinct users and their Variant from FeatureEvaluation let evaluated_users = customEvents | where name == "FeatureEvaluation" | extend TargetingId = tostring(customDimensions.TargetingId), Variant = tostring(customDimensions.Variant) | summarize Variant = any(Variant) by TargetingId; // Step 2: Get distinct users who emitted a "Like" let liked_users = customEvents | where name == "Liked" | extend TargetingId = tostring(customDimensions.TargetingId) | summarize by TargetingId; // Step 3: Join them to get only the evaluated users who also liked let hearted_users = evaluated_users | join kind=inner (liked_users) on TargetingId | summarize HeartedUsers = dcount(TargetingId) by Variant; // Step 4: Total evaluated users per variant let total_users = evaluated_users | summarize TotalUsers = dcount(TargetingId) by Variant; // Step 5: Combine results let combined_data = total_users | join kind=leftouter (hearted_users) on Variant | extend HeartedUsers = coalesce(HeartedUsers, 0) | extend PercentageHearted = strcat(round(HeartedUsers * 100.0 / TotalUsers, 1), "%") | project Variant, TotalUsers, HeartedUsers, PercentageHearted; // Step 6: Add total row let total_sum = combined_data | summarize TotalUsers = sum(TotalUsers), HeartedUsers = sum(HeartedUsers) | extend Variant = "All", PercentageHearted = strcat(round(HeartedUsers * 100.0 / TotalUsers, 1), "%") | project Variant, TotalUsers, HeartedUsers, PercentageHearted; // Step 7: Output combined_data | union (total_sum)
Vous voyez une « FeatureEvaluation » pour chaque fois que la page a été chargée et un événement « J’aime » pour chaque fois que le bouton j’aime a été cliqué. L’événement « FeatureEvaluation » a une propriété personnalisée appelée
FeatureNameavec le nom de l’indicateur de fonctionnalité qui a été évalué. Les deux événements ont une propriété personnalisée appeléeTargetingIdavec le nom de l'utilisateur qui a aimé la citation.