Activer la télémétrie pour les indicateurs de fonctionnalité dans une application Python

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

Ajouter des données de télémétrie à votre application Python

  1. Installez les packages requis à l’aide de pip :

    pip install azure-appconfiguration-provider
    pip install featuremanagement["AzureMonitor"]
    pip install azure-monitor-opentelemetry
    
  2. Ouvrez et configurez app.py votre application pour vous connecter à Application Insights et publier des données de télémétrie. Vérifiez que l’instruction import existante from flask import Flask apparaît après l’appel configure_azure_monitor(...) affiché dans le code suivant. Cet ordre est requis pour que l’instrumentation automatique OpenTelemetry fonctionne correctement.

    import os
    from azure.monitor.opentelemetry import configure_azure_monitor
    
    # Configure Azure Monitor
    configure_azure_monitor(connection_string=os.getenv("APPLICATIONINSIGHTS_CONNECTION_STRING"))
    
  3. app.py Chargez également vos indicateurs de fonctionnalité à partir d’App Configuration et chargez-les dans la gestion des fonctionnalités. FeatureManager utilise la fonction de rappel publish_telemetry pour 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)
    
  4. Ouvrez routes.py et mettez à jour votre code pour suivre vos propres événements dans votre application. Lorsqu’on appelle track_event, un événement personnalisé est publié sur Azure Monitor avec l'utilisateur spécifié.

    from featuremanagement import track_event
    from flask import jsonify
    
    @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"})
    
  5. Ouvrez index.html et mettez à jour le code pour implémenter le bouton like. Le bouton like envoie une requête POST au /heart point 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

  1. Application Insights nécessite une chaîne de connexion pour se connecter à votre ressource Application Insights. Définissez la APPLICATIONINSIGHTS_CONNECTION_STRING variable d’environnement sur la chaîne de connexion de votre ressource Application Insights. Pour localiser le chaîne de connexion, ouvrez le portail Azure, accédez à Application Insights, sélectionnez votre ressource Application Insights créée précédemment, puis accédez à Vue d’ensemble. Copiez la valeur de la chaîne de connexion. Remplacez la valeur par défaut dans la commande suivante par la chaîne de connexion que vous avez copiée depuis 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'
    

Collecter les données de télémétrie

Déployez votre application pour commencer à collecter des données de télémétrie à partir de vos utilisateurs. Pour tester ses fonctionnalités, vous pouvez simuler l’activité utilisateur en créant de nombreux utilisateurs de test. Chaque utilisateur connaît une variante différente des messages d’accueil et peut interagir avec l’application en cliquant sur le bouton cœur pour aimer une citation. À mesure que votre base d’utilisateurs augmente, vous pouvez surveiller le volume croissant de données de télémétrie collectées dans Azure App Configuration. En outre, vous pouvez explorer les données pour analyser la façon dont chaque variante de l’indicateur de fonctionnalité influence le comportement de l’utilisateur.

Ressources supplémentaires