Cartographie (GraphvizBundle)

De SOS Paris
Aller à : navigation, rechercher


GVZ.png
Module GVZ
Nom Cartographie
Version 2.0

Le module de cartographie offre une visualisation graphique des éléments contenus dans le répertoire live et remote de l'ordonnanceur.

Ce module est l'interface d'un script perl utilisable dans un shell unix ou une commande Windows. Cela permet d'automatiser la génération de graphiques sans passer par l'interface web.

Mise en place

Ce module utilise Graphviz qui est un outil de modélisation à partir d'un langage simple en mode texte ( pour plus d'informations : http://graphviz.org ).

Installation

Le module de cartographie utilise un script Perl qui génère un fichier dot à partir des fichiers XML. Il est nécessaire de s'assurer que le serveur web a bien accès aux éléments suivants:

  • Perl + XML::Simple
  • Graphviz

Si l'un de ces composants est manquant, une alerte est remontée au niveau de l'interface utilisateur.

Configuration Perl

Le module d'administration permet de définir le paramètre Perl qui fait appel à l'exécutable du même nom. L'interpréteur est généralement installé au niveau du système de la machine et peut donc être appelé directement. On indiquera donc simplement perl:

Perl install.png

Configuration Graphviz

Pour la partie Graphviz, c'est l'interpréteur dot qui est utilisé. On indique sa localisation grâce au paramètre graphviz_dot. La distribution Ari'i sur Windows embarque une version portable dans le répertoire vendor, l'exécutable est alors défini par défaut comme suit:

../vendor/graphviz/bin/dot

Dot windows.png

Dans le cas de Linux, la distribution est obligatoirement en package, installée par root et accessible par tous. Ce type d'installation est tout aussi valable pour Windows, dans ce cas on indique simplement dot. Dot unix.png

Administration

Ce module ne gère que les objets d'Open Source JobScheduler, il s'appuie sur l'installation locale de JobScheduler qui a le rôle de Supervisor. Il utilise les informations de la connexion "arii_config" pour accéder aux fichiers. Bien que cette connexion soit liée au noeud "Arii", elle peut tout à fait être dissociée et réaffectée à un autre noeud.

A noter que les paramètres perl et graphviz ne sont plus nécessaires car ils font maintenant partis du portail.

Connexion par défaut

Le jobscheduler Arii est installé au même niveau que le framework symfony, le répertoire de configuration par défaut est donc à l'emplacement:

../../jobscheduler/arii/config

Modification de connexion

Si le superviseur est à un autre emplacement ou si on souhaite basculer sur un nouveau JobScheduler, il faut éditer la connexion arii_config:

  • disposer des droits d'administratiokn (ROLE_ADMIN)
  • aller dans le module Administration
  • cliquer sur connexion
  • retrouver arii_config
  • modifier le chemin
  • sauvegarder

Configuration V1 (obsolète)

OBSOLETE. Seulement si vous utilisez l'ancienne version d'Ari'i.

La configuration du module « Cartographie » se limite à déclarer dans le fichier

app/config/parameters.yml 

le chemin d’accès aux langages et bibliothèques nécessaires :

   perl:      perl 
   graphviz_dot:    dot 
   graphviz_images: /home/arii/Symfony/web/arii/images/silk 
   spoolers: 
       - name:          arii 
         type:          osjs 
         database:      arii 
         0: 
           shell: 
             cmd:       ~ 
             user:      arii 
             host:      localhost 
             home:      /home/arii/jobscheduler/arii 
             data:      /home/arii/jobscheduler/arii 
           rest: 
             host:      localhost 
             port:      44444 
             protocol:  http 
             path:      ~ 

Pour chaque moteur distant, un répertoire dédié doit être placé dans le répertoire « remote » du superviseur afin d'utiliser les fonctions natives de déploiement des objets et d'être visible depuis la cartographie.

Ce répertoire dédié peut-être nommé soit avec le couple IP/Port désignant le moteur,
soit avec l'identifiant d'instance du moteur (généralement pour les "cluster"), tel que :

arii@Arii-2016:~$ ls -rtl ~/jobscheduler/arii/config/remote/ 
total 16 
drwxr-xr-x  4 arii arii 4096 oct.  23  2015 _all 
drwxr-xr-x  6 arii arii 4096 avril 14 14:59 scheduler 
drwxr-xr-x 27 arii arii 4096 avril 28 17:14 127.0.0.1#6666 
drwxr-xr-x  4 arii arii 4096 mai    9 12:43 OJS 

Le répertoire « _all » contient les objets qui seront communs à tous les moteurs.

Fonctionnement

Arii fait appel à deux scripts Perl en fonction du type de carte qu'on désire obtenir.

Carte par liens

La carte par liens se crée en indiquant un objet de départ, le script suivra ensuite les liens dans le fichier xml pour retrouver les fichiers suivants. Le graph généré ne montre que les objets utilisés dans le contexte d'exécution. On part généralement de l'ordre pour avoir le graphique le plus complet.

L'appel de ce script par arii se fait en double-cliquant sur un objet dans l'arbre à gauche.

Script oss2gvz.pl

Carte globale

La carte globale reprend tous les objets d'un répertoire, utilisés ou non. Contrairement au graph par lien, tous les objets sont représentés.

L'appel de ce script par arii se fait en double-cliquant sur un répertoire dans l'arbre à gauche.

Script arii_graph.pl

Utilisation

Navigation

Grph-nav.png


La navigation se fait à l'aide de l'encart ci-contre.

Il se situe à gauche de toute les pages du module.


  • Grph-live.png Le répertoire « live » contient les traitements et objets qui sont pris en charge par le superviseur.
  • Grph- all.png Ce répertoire contient les objets qui sont partagés par tous les moteurs du réseau.
  • Grph-dist.png Ce bouton donne accès à un menu déroulant, chaque élément correspond à un moteur ou un cluster.
Grph-dist2.png
Ils peuvent être déclarés soit :
  • Par leur couple « IP : Port ».
  • Par leur identifiant d'instance, généralement pour les clusters.


Le nom du répertoire courant est écrit au sommet de l'arborescence.
A l'arrivée dans le module, c'est le répertoire « live » qui est affiché.

Légende

En dessous de l'arborescence est présentée une légende permettant d'identifier plus facilement la nature des différents objets.

Grph-Legende.png

Arborescence

La sélection des objets se fait dans l'arborescence située dans l'encart de gauche.

Celui-ci reprend l'arborescence mise en place dans les différents répertoires consultés.

Chaque objet y est représenté par un icône indiquant sa nature et par son nom.

Option de visualisation

Grph-action.png

La barre ci-dessus contient les différents icônes permettant d'activer ou de désactiver les options de visualisation.

Icône Nom Description
Grph-lignes.png Lignes Permet de modifier la forme des lignes :
- lignes brisées
- lignes courbes
- lignes droites
- lignes perpendiculaires
- aucune ligne
Grph-chaînes.png Chaîne de traitement Affiche les chaînes de traitement qui sont appelées par l’objet sélectionné.
Grph-jobs.png Traitements Affiche la configuration des jobs liés aux étapes d'une chaîne de traitement.
Grph-confgs.png Config Affiche la configuration de la chaîne de traitement.
Grph-params.png Paramètres Affiche les couples variables/valeurs inscrit dans un traitement ou un ordre.
Grph-events.png Événements
Grph-images.png Image Exporte la cartographie au format sélectionné.

Contenu du fichier

En dessous de la carte, un encart permet d'afficher le contenu du fichier XML : Grph-XML.png

Carte

La cartographie est une représentation graphique utilisant divers éléments (icônes, flèches, formes, couleurs ) pour afficher les objets et leur dépendance éventuelle.

Bloc

Les objets sont représentés par des blocs de couleurs contenant les différentes options.

Icône Nom Description
Grph-rep.png Répertoire La limite d'un répertoire est représentée par un rectangle en pointillé contenant les objets.
Grph-inde.png Traitement indépendant Un traitement indépendant est représenté par un rectangle jaune contenant les différentes options.
Grph-chn.png Chaîne de traitement Une chaîne est représentée par un rectangle violet.
Grph-step.png Étape d'une chaîne Une étape est représentée par un rectangle blanc à l'intérieur de la chaîne.
Grph-order.png Ordre Un ordre est représentée par un rectangle blanc à l’extérieur de la chaîne.
Grph-trait.png Traitement ordonné Un traitement ordonné est affiché dans un rectangle bleu.
Grph-cible.png Agent Un agent est représenté par un rectangle blanc encadré turquoise.
Grph-sched.png Planification Une planification est représenté par un rectangle blanc encadré bleu.
Grph-conf.png Configuration Un fichier de configuration est représenté par un rectangle blanc encadré violet.
Grph-lok.png Ressource Une ressource est représentée simplement par son nom à la suite d'une flèche jaune.

Flèche

Les différentes flèches sont caractérisées par leur couleur, chaque couleur ayant une signification :

  • flèche noir : traitement

Elle démarre d'une étape et pointe vers le traitement qui correspond.

  • flèche verte : successeur OK

Elle démarre d'une étape de la chaîne et pointe sur l'étape suivante en cas de réussite du traitement.

  • flèche rouge : successeur KO

Elle démarre d'une étape et pointe sur l'étape à traiter en cas d'erreur.

  • flèche bleu : cible

Elle démarre d'une tâche et pointe vers l'agent qui doit la traiter, plus exactement vers le "proccess class" qui représente l'agent.

  • flèche jaune : ressource

Elle démarre d'un tâche et pointe vers une ressource (abstraite) qui sert de contrainte de non-simultanéité avec d'autre tâches.

  • autre flèche jaune : "split"

Un flèche jaune partant d'une étape vers une autre étape symbolise la création d'un ordre par un traitement de la bibliothèque JITL.
Ce cas particulier permet de créer des chaînes dites "en diamant", par exemple :

Diams.png

Pour plus d'information Split & Merge

Icône

Le premier icône à l'intérieur d'un objet représente son type tel que décrit dans la légende.

Sur la même ligne est inscrit le chemin d’accès à l'objet ainsi que son nom.

  • chaîne :
Icône Nom Description
Grph-C-titre.png Titre Champ de description.
Bdd.png récupérable Booléen définissant si la chaîne peut être reprise en cas de crash ( voir Haute disponibilité )
Grph-C-oeil.png visible Signifie si la chaîne doit être visible dans la console ( oui ; sur erreur ; non )
  • ordre :
Icône Nom Description
Grph-C-titre.png Titre Champ de description.
Grph-O-sched.png Calendrier Règles pour les jours de déclenchement.
Grph-O-hour.png Horaire Règles pour les heures de déclenchement.
Grph-C-oeil.png Visible Indique si l'ordre doit être visible dans la console ( oui ; sur erreur ; non ).
Grph-param2.png Paramètre Indique la présence de paramètres, il est suivi par le nom du paramètre ainsi que sa valeur.
  • Traitement :
Icône Nom Description
Grph-T-titre.png Titre Champ de description.
Grph-T-mail.png Options mail Indique une configuration d'envoi de mail différente de la configuration par défaut. Elle est suivie par l'adresse de destination, si elle est différente du destinataire par défaut.
Grph-T-script.png Script Indique l'exécution d'un script et est suivi par le langage utilisé.
Grph-T-java.png Java class Indique l'appel à une bibliothèque java et est suivi par la classe appelée.
Grph-T-cible.png Agent Représente l'appel à un agent JobScheduler et est suivi par le nom de l'agent.
Grph-T-onerror.png Sur erreur Indique une relance sur erreur et est suivi par le nombre de tentatives puis le délai entre chaque tentatives ( en secondes )
Grph-T-lock.png Ressource Représente l'utilisation d'une ressource.
Grph-T-ppp.png Pré/post-processing Indique l'exécution d'un script avant ou après le traitement.
Grph-T-cmd.png Commande Représente une commande post-exécution. Elle est suivie d'une flèche verte si la commande est envoyée après une réussite, une flèche rouge si elle est envoyée après un échec.
Grph-param2.png Paramètre Indique la présence de paramètres, il est suivi par le nom du paramètre ainsi que sa valeur.
  • Attente de fichier :

Une attente de fichier peu indifféremment faire partie d'un traitement indépendant ou être en marge d'une chaîne.

Grph-T-file.png Attente de fichier Signifie un déclenchement sur arrivée d'un fichier.
Grph-T-rep.png Répertoire surveillé Indique dans quel répertoire les fichiers sont attendus.
Grph-T-regex.png Regex Règle de nommage des fichiers attendues, pour plus d'information : Expression rationnelle.

Exemples

Chaîne simple

Carto exemple2.png

L'exemple ci-dessus est la représentation d'une chaîne de traitement simple configurée pour s’arrêter en cas d'échec.

Démarrage sur arrivée de fichier

Carto exemple1.png

Cet exemple ci représente une chaîne de traitement déclenché par l'arrivé d'un fichier dans le répertoire "C:\temp".

Chaîne variabilisée

Carto exemple3.png

Cet exemple montre une chaîne contenant des paramètres qui sont déclaré au niveau de l'ordre mais aussi sur l'étape "SQL".

La variabilisation offre l'avantage de pouvoir réutilisé une même chaîne à différente fin, en ajoutant des ordres avec différentes valeurs pour un même paramètre.