Les journaux Application Insights sont manquants ou incorrects pour les applications Azure Functions
Vous pouvez surveiller étroitement l’application de fonction via l’intégration entre Azure Functions et Application Insights. Vous pouvez également utiliser Application Insights sans configuration personnalisée.
Si les journaux Application Insights sont manquants ou si les données semblent partielles ou inexactes, procédez comme suit pour résoudre le problème.
Vérifier la configuration de l’application de fonction
Accédez à votre application de fonction sur le Portail Azure.
Sélectionnez Diagnostiquer et résoudre les problèmes pour ouvrir les diagnostics Azure Functions.
Dans la barre de recherche , tapez Vérifications de configuration de la fonction et ouvrez-la.
Vous voyez un rapport de diagnostic de toutes les vérifications de configuration d’application de fonction. En particulier pour Application Insights, les vérifications suivantes sont effectuées :
Seul l’un des paramètres de connexion suivants existe :
APPINSIGHTS_INSTRUMENTATIONKEY
Clé d’instrumentation Application InsightsAPPLICATIONINSIGHTS_CONNECTION_STRING
connexionNous vous recommandons d’utiliser le APPLICATIONINSIGHTS_CONNECTION_STRING pour un comportement plus stable. La possibilité d’utiliser
APPINSIGHTS_INSTRUMENTATIONKEY
sera déconseillée d’après 2025.
La journalisation intégrée
AzureWebJobsDashboard
est désactivée, comme cela est recommandé.L’échantillonnage est activé pour la télémétrie Azure Functions (activée par défaut).
Recommandation : l’application de fonction doit se trouver sur la version 4 et la version du runtime doit être au moins 4.15.2xx. Cela est dû au fait que, à partir de cette version, vous pouvez suivre les flux de journal d’Azure Functions vers le service Application Insights. En surveillant les flux de journal, vous pouvez rechercher les journaux manquants.
Les journaux sont manquants ou partiels
Application Insights collecte des données de journal, de performances et d’erreur. La configuration d’échantillonnage est utilisée pour réduire le volume de données de télémétrie. La fonctionnalité d’échantillonnage est activée par défaut avec les paramètres indiqués dans l’exemple de host.json suivant. Les types exclus ne sont pas échantillonné.
{
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"maxTelemetryItemsPerSecond" : 20,
"excludedTypes": "Request;Exception"
}
}
}
}
Si vous remarquez des journaux partiellement manquants, cela peut se produire en raison de l’échantillonnage. Pour déterminer le taux d’échantillonnage réel, utilisez une requête Analytics qui utilise l’intervalle de temps requis indiqué dans l’extrait de code suivant. Si vous observez que le TelemetrySavedPercentage
type d’échantillonnage est inférieur à 100, ce type de télémétrie est échantillonné.
union requests,dependencies,pageViews,browserTimings,exceptions,traces
| where timestamp > todatetime("mm/dd/yyyy hh:mm:ss") and timestamp < todatetime("mm/dd/yyyy hh:mm:ss")
| summarize TelemetrySavedPercentage = 100/avg(itemCount), TelemetryDroppedPercentage = 100-100/avg(itemCount) by bin(timestamp, 1d), itemType
| sort by timestamp asc
Pour plus d’informations, voir Collecte, rétention et stockage des données dans Application Insights.
Contrôler le volume et la détail des journaux
Vous pouvez augmenter ou supprimer les journaux écrits. Pour ce faire, vous pouvez utiliser une combinaison de niveaux de journal et de catégories comme configuré dans host.json.
L’enregistreur d’événements d’Azure Functions inclut une catégorie par journal. La catégorie indique quelle partie du code d’exécution ou votre code de fonction a généré le journal. Par exemple :
Function.<YOUR_FUNCTION_NAME>
VoiciHost.Results
quelques-unes des catégories disponibles.- Un niveau de journal est affecté à chaque journal. La valeur indique une importance relative, telle que
Warning
ouInformation
.
Pour plus d’informations, consultez les autres catégories et niveaux de journaux disponibles.
Vous pouvez configurer la façon dont votre application doit écrire les journaux en suivant l’exemple d’extrait de code :
{
"version": "2.0",
"logging": {
"logLevel": {
"default": "Information", // catch all default, with modifications below for individual categories.
"Function": "Warning", // Warning level from all Functions (except the ones configured below).
"Host.Aggregator": "Trace", // Log all traces in the 'customMetrics' table of (and shown on Metrics/Alerts blade in AI) - use either this or Host.Results
"Host.Results": "Error", // Error and Critical requests are only logged in the 'requests' table of the AI (and shown on Monitor Functions blade in Functions App) - use either this or Host.Aggregator
"Function.Function1": "Information", //Information level logs from Function 1, logged in 'traces', 'dependencies' and 'customMetrics' tables of AI
"Function.Function2.User": "Information" //user code logs from Function2, logged in 'traces' table of AI
},
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"maxTelemetryItemsPerSecond": 1,
"excludedTypes": "Exception"
}
}
}
}
Pour configurer ces valeurs au niveau des paramètres de l’application (pour éviter le redéploiement sur host.json modifications), remplacez les valeurs spécifiques host.json en créant une valeur équivalente en tant que paramètre d’application. Pour plus d’informations, consultez Substituer les valeurs de host.json.
Pour plus d’exemples sur la suppression des journaux, consultez functions-log-suppression.
L’application de fonction intégrée de réseau virtuel ne génère aucun journal
Si une application de fonction est intégrée à un réseau virtuel, vous devez ouvrir le port 443 pour le trafic sortant dans votre pare-feu de serveur afin de permettre au Kit de développement logiciel (SDK) Application Insights ou à l’agent Application Insights d’envoyer des données au portail pour les URL suivantes :
- dc.applicationinsights.azure.com
- dc.applicationinsights.microsoft.com
- dc.services.visualstudio.com
- *.in.applicationinsights.azure.com
Pour plus d’informations, consultez Adresses IP utilisées par 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.