Lors d'une demande d'affichage d'une page de météo dans l'UI de Visualisation, un appel est fait au module de la WebUI : webui-module-element-weather.
Dans l'optique de conserver de bonnes performances, et ce, même dans le cas où un très grand nombre de requêtes étaient envoyées, le module utilise un système de cache, permettant de conserver l'état des météos afin de ne pas les recalculer à chaque demande.
Son fonctionnement est expliqué en détail dans les chapitres suivants.
Le fonctionnement du cache se décompose en trois composants :
C'est par lui que passent le cache intra-processus et le composant de mise à jour des météos pour sauvegarder et récupérer les météos.
|
Chaque module webui_module_service_weather possède sa propre version des données ( directement en mémoire ) appelée cache intra-processus.
Afin de maintenir les météos à jour, ce composant est présent sur chaque module webui_module_service_weather.
Exemple :
Les informations de la météo seront mises à jour comme décrit dans le chapitre Calcul des informations.
C'est le composant qui fait l'intermédiaire entre l'espace de stockage contenant les météos ( stockées dans /dev/shm/shinken ) et les autres composants.
Les autres composants vont alors s'adresser à lui pour chacune de ces raisons :
Les fichiers sont sauvegardés :
Dans /dev/shm/shinken/service_weather/daemons/broker/modules/webui/modules/webui_module_service_weather/weather_data
Ils sont nommés de la sorte : shinken_WEATHER_UUID.json
Le dossier |
L'espace en mémoire partagée offre un accès plus rapide aux météos, cependant elle est vidée à chaque redémarrage du serveur.
Pour palier ce problème, le gestionnaire de stockage effectue une rétention toutes les 15 minutes sur un espace de stockage persistant à l'endroit suivant : /var/lib/shinken/persistent_data
Cela permet qu'après un redémarrage, si le gestionnaire de stockage ne trouve pas une météo dans la mémoire partagée, il est capable de la récupérer depuis le disque avant de la ré-écrire en mémoire partagée.
Les fichiers sont sauvegardés :
Les fichiers enregistrés dans |
Les informations affichées par la météo sont récupérées à différents endroits :
Il est possible si la base MongoDB est trop chargée de ne pas afficher les données SLA sur la page.
Il est aussi possible de réduire le nombre de widgets maximal des météos dans le cas où les appels aux météos sont trop long et qu'ils impactent la lecture des broks.
|