Aktivieren der Telemetrie für Featurekennzeichnungen in einer Python-Anwendung

In diesem Lernprogramm verwenden Sie Telemetrie in Ihrer Python-Anwendung, um Feature-Flag-Bewertungen und benutzerdefinierte Ereignisse nachzuverfolgen. Telemetrie ermöglicht Es Ihnen, fundierte Entscheidungen über Ihre Featureverwaltungsstrategie zu treffen. Sie verwenden das mit aktivierter Telemetrie erstellte Feature-Flag aus der Übersicht, um Telemetrie für Feature-Flags zu aktivieren. Vor dem Fortfahren stellen Sie sicher, dass Sie ein Feature-Flag namens Begrüßung in Ihrem Konfigurationsspeicher mit aktivierter Telemetrie erstellen. Dieses Tutorial baut auf dem Tutorial zur Verwendung von Varianten-Feature-Flags in einer Python-Anwendung auf.

Voraussetzungen

Hinzufügen von Telemetrie zu Ihrer Python-Anwendung

  1. Installieren Sie die erforderlichen Pakete mit pip:

    pip install azure-appconfiguration-provider
    pip install featuremanagement["AzureMonitor"]
    pip install azure-monitor-opentelemetry
    
  2. Öffnen und konfigurieren Sie app.py Ihre Anwendung, um eine Verbindung mit Application Insights herzustellen und Telemetriedaten zu veröffentlichen. Stellen Sie sicher, dass die vorhandene from flask import Flask Importanweisung nach dem configure_azure_monitor(...) aufruf im folgenden Code angezeigt wird. Diese Reihenfolge ist erforderlich, damit die automatische Instrumentierung von OpenTelemetry ordnungsgemäß funktioniert.

    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 Laden Sie auch Ihre Featurekennzeichnungen aus der App-Konfiguration und laden Sie sie in die Featureverwaltung. FeatureManager verwendet die publish_telemetry Rückruffunktion, um Telemetrie in Azure Monitor zu veröffentlichen.

    from featuremanagement.azuremonitor import publish_telemetry
    
    feature_manager = FeatureManager(config, on_feature_evaluated=publish_telemetry)
    
  4. Öffnen Sie routes.py und aktualisieren Sie Ihren Code, um Ihre eigenen Ereignisse in Ihrer Anwendung nachzuverfolgen. Wenn track_event ein benutzerdefiniertes Ereignis aufgerufen wird, wird ein benutzerdefiniertes Ereignis mit dem bereitgestellten Benutzer in Azure Monitor veröffentlicht.

    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. Öffnen Sie index.html und aktualisieren Sie ihn, um die Schaltfläche "Gefällt mir" zu implementieren. Die Schaltfläche "Gefällt mir" sendet beim Klicken eine POST-Anforderung an den /heart Endpunkt.

    <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>
    

Erstellen und Ausführen der App

  1. Application Insights erfordert eine Verbindungszeichenfolge, um eine Verbindung mit Ihrer Application Insights-Ressource herzustellen. Legen Sie die APPLICATIONINSIGHTS_CONNECTION_STRING Umgebungsvariable auf die Verbindungszeichenfolge für Ihre Application Insights-Ressource fest. Um das Verbindungszeichenfolge zu finden, öffnen Sie das Azure-Portal, navigieren Sie zu Application Insights, wählen Sie Ihre zuvor erstellte Application Insights-Ressource aus, und wechseln Sie dann zur Übersicht. Kopieren Sie den Wert der Verbindungszeichenfolge. Ersetzen Sie den Platzhalterwert im folgenden Befehl durch die Verbindungszeichenfolge, die Sie aus Ihrer Application Insights-Ressource kopiert haben.

    setx APPLICATIONINSIGHTS_CONNECTION_STRING "applicationinsights-connection-string"
    

    Wenn Sie PowerShell verwenden, führen Sie den folgenden Befehl aus:

    $Env:APPLICATIONINSIGHTS_CONNECTION_STRING = "applicationinsights-connection-string"
    

    Führen Sie bei Verwendung von macOS oder Linux den folgenden Befehl aus:

    export APPLICATIONINSIGHTS_CONNECTION_STRING='applicationinsights-connection-string'
    

Telemetrie sammeln

Stellen Sie Ihre Anwendung bereit, um mit der Erfassung von Telemetrie von Ihren Benutzern zu beginnen. Um seine Funktionalität zu testen, können Sie Benutzeraktivitäten simulieren, indem Sie viele Testbenutzer erstellen. Jeder Benutzer wird eine andere Variante von Begrüßungsnachrichten erleben, und er kann mit der Anwendung interagieren, indem er auf die Herzschaltfläche klickt, um ein Zitat zu liken. Wenn Ihre Benutzerbasis wächst, können Sie das zunehmende Volumen an Telemetriedaten überwachen, die in der Azure App-Konfiguration gesammelt werden. Darüber hinaus können Sie die Daten vertiefen, um zu analysieren, wie jede Variante des Feature-Flags das Benutzerverhalten beeinflusst.

Weitere Ressourcen