Résoudre les problèmes d’OpenTelemetry dans Python
Cet article explique comment résoudre les problèmes d’OpenTelemetry dans Python.
Liste de pour la résolution des problèmes
Étape 1 : Activer la journalisation des diagnostics
L’exportateur Microsoft Azure Monitor utilise la bibliothèque de journalisation standard Python pour sa journalisation interne. Les journaux de l’API OpenTelemetry et de l’exportateur Azure Monitor se voient attribuer un niveau de gravité de WARNING
ou ERROR
pour une activité irrégulière. Le INFO
niveau de gravité est utilisé pour une activité régulière ou réussie.
Par défaut, la bibliothèque de journalisation Python définit le niveau de gravité sur WARNING
. Par conséquent, vous devez modifier le niveau de gravité pour afficher les journaux sous ce paramètre de gravité. L’exemple de code suivant montre comment générer des journaux de tous les niveaux de gravité vers la console et un fichier :
...
import logging
logging.basicConfig(format = "%(asctime)s:%(levelname)s:%(message)s", level = logging.DEBUG)
logger = logging.getLogger(__name__)
file = logging.FileHandler("example.log")
stream = logging.StreamHandler()
logger.addHandler(file)
logger.addHandler(stream)
...
Étape 2 : Tester la connectivité entre votre hôte d’application et le service d’ingestion
Les kits de développement logiciel (SDK) et les agents Application Insights envoient des données de télémétrie pour être ingérés en tant qu’appels REST sur nos points de terminaison d’ingestion. Pour tester la connectivité de votre serveur web ou ordinateur hôte d’application aux points de terminaison du service d’ingestion, utilisez des commandes cURL ou des requêtes REST brutes à partir de PowerShell. Pour plus d’informations, consultez Résoudre les problèmes de télémétrie des applications manquantes dans Azure Monitor Application Insights.
Étape 3 : Éviter les données de télémétrie en double
Les données de télémétrie en double sont souvent provoquées si vous créez plusieurs instances de processeurs ou d’exportateurs. Veillez à n’exécuter qu’un seul exportateur et processeur à la fois pour chaque pilier de télémétrie (journaux, métriques et suivi distribué).
Les sections suivantes décrivent les scénarios qui peuvent entraîner des données de télémétrie en double.
Journaux de trace en double dans Azure Functions
Si vous voyez une paire d’entrées pour chaque journal de suivi dans Application Insights, vous avez probablement activé les types d’instrumentation de journalisation suivants :
- Instrumentation de journalisation native dans Azure Functions
- Instrumentation
azure-monitor-opentelemetry
de journalisation au sein de la distribution
Pour éviter la duplication, vous pouvez désactiver la journalisation de la distribution, mais laissez l’instrumentation de journalisation native dans Azure Functions activée. Pour ce faire, définissez la OTEL_LOGS_EXPORTER
variable d’environnement sur None
.
Données de télémétrie dupliquées dans le Azure Functions « Always On »
Si le paramètre Always On dans Azure Functions est défini sur Activé, Azure Functions maintient certains processus en cours d’exécution en arrière-plan une fois chaque exécution terminée. Par instance, supposons que vous ayez une fonction de minuteur de cinq minutes qui appelle configure_azure_monitor
chaque fois. Après 20 minutes, vous pouvez alors avoir quatre exportateurs de métriques qui s’exécutent en même temps. Cette situation peut être la source de vos données de télémétrie en double.
Dans ce cas, définissez le paramètre Always On sur Désactivé, ou essayez d’arrêter manuellement les fournisseurs entre chaque configure_azure_monitor
appel. Pour arrêter chaque fournisseur, exécutez des appels d’arrêt pour chaque compteur actuel, suivi et fournisseur d’enregistreurs d’événements, comme indiqué dans le code suivant :
get_meter_provider().shutdown()
get_tracer_provider().shutdown()
get_logger_provider().shutdown()
Classeurs Azure et notebooks Jupyter
Les classeurs Azure et les notebooks Jupyter peuvent maintenir les processus d’exportation en cours d’exécution en arrière-plan. Pour éviter les données de télémétrie en double, effacez le cache avant d’effectuer d’autres appels à configure_azure_monitor
.
Contactez-nous pour obtenir de l’aide
Pour toute demande ou assistance, créez une demande de support ou posez une question au support de la communauté Azure. Vous pouvez également soumettre des commentaires sur les produits à la communauté de commentaires Azure.
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour