InsightIQ « Délai d’expiration de la demande HTTP » ou vide lors de la génération de rapports FSA
Summary: L’interface utilisateur InsightIQ ne parvient pas à charger tout ou partie d’un rapport d’analytique du système de fichiers (FSA) si le délai d’expiration de l’API (Application Programming Interface) OneFS est trop faible. ...
Symptoms
Dans InsightIQ 4.0 à 4.2 et OneFS 8.0.x (ou versions supérieures), l’API RESTful OneFS collecte les données du rapport FSA. Si InsightIQ ne parvient pas à collecter ces données, il se peut que le rapport FSA ne se charge pas, se charge partiellement ou ne permette pas aux utilisateurs de naviguer dans les répertoires.
Cause
Ce problème se produit lorsque le serveur InsightIQ expire trop tôt l’appel d’API à OneFS.
Pour valider cette cause, exécutez la commande suivante (en remplaçant CLUSTER_GUID avec le répertoire approprié) :
$ grep "HTTP request timed out" /var/log/insightiq_clusters/CLUSTER_GUID/api_connection.log
Un résultat similaire à celui qui suit apparaît :
2017-06-12 13:07:50,114,114 ERROR [api.py: 187] HTTP request timed out: https://172.22.33.27:8080/platform/3/fsa/results/4505/directories/4321902598 2017-06-12 13:08:13,782,782 ERROR [api.py: 187] HTTP request timed out: https://172.22.33.27:8080/platform/3/fsa/results/4505/directories/4321902598
La valeur du délai d’expiration défini s’affiche en exécutant cette commande :
$ grep 'read timeout=' /var/log/insightiq.log
Le résultat se présente comme suit. Dans cet exemple de sortie, le délai d’expiration est de 20 secondes :
2018-04-12 04:18:30,203 WARNI [insightiq.lib.cluster.errors] APITimedOutError: HTTPSConnectionPool(host='10.104.6.138', port=8080): Read timed out. (read timeout=20) URI: https://10.104.6.138:8080/platform/3/statistics/history
Resolution
Pour résoudre ce problème, augmentez le délai d’expiration par défaut des appels d’API à OneFS en modifiant api.py .
Exécutez cette commande pour modifier InsightIQ api.py fichier :
$ sudo vi /usr/share/isilon/lib/python2.7/site-packages/insightiq/lib/api_connection/api.py
À la ligne 35, modifiez TIMEOUT = 20 to TIMEOUT = 300.
Redémarrez ensuite le serveur InsightIQ :
$ sudo service insightiq restart
Pour InsightIQ 4.2, le chemin est le suivant : /usr/share/isilon/lib/python3.10/site-packages/insightiq/lib/api_connection/api.py.