====== Supervision REFIMEVE ======
L'outil de supervision REFIMEVE a plusieurs enjeux impliquant des acteurs différents :
* exploitation : administrateurs et utilisateurs
* maintenance et développement : équipe IT (SYRTE, LPL ?) et ingénieurs logiciels REFIMEVE
===== Administration technique =====
* **Installation**: La documentation associée à l'installation des outils de supervision est accessible sur le [[https://refimeve-gitlab.obspm.fr/supervision/webapp/-/blob/master/docs/install.md|dépôt gitlab]]
* **Développement**: La documentation associée au développement de la supervision est accessible sur le [[https://refimeve-gitlab.obspm.fr/supervision/webapp/-/blob/master/docs/dev.md|dépôt gitlab]]
===== Administration de la base de données =====
[[https://refimeve-supervision.obspm.fr/admin | Page admin de supervision]] \\
L'administration client consiste à gérer la base de données de supervision. Elle est composée d'un ensemble d'objets permettant de décrire le réseau REFIMEVE. \\ \\
La base de données de Supervision est dite //relationnelle//. Un objet peut donc être lié à un ou plusieurs objets qui doivent donc, si nécessaire, être créés avec l'objet initial. Mais ces objets liés peuvent eux-mêmes être liés à d'autres... La procédure de mise à jour de la base de données peut donc vite conduire à avoir de nombreux onglets ouverts, ce qui n'est vraiment pas pratique.. \\
**Note : Une base de données de type NoSQL (MongoDB) simplifierait la phase de saisie, mais apporterait son lot de contraintes pour assurer la robustesse des informations saisies**. \\
Pour cette raison, il est conseillé de [[wiki:supervision:crud|créer les nouveaux objets]] dans l'ordre suivant :
==== Infrastructure ====
**Définition** : C'est l'objet le plus global dans la hiérarchie. Une infrastructure peut contenir un ou plusieurs [[wiki:supervision:welcome#network|(sous-)réseaux]]. \\
**Exemples** :
* REFIMEVE+ (France) est une infrastructure
* IQB (Italie) est une infrastructure
**Liaisons** : Aucune
==== Site ====
**Définition** : Un site représente un lieu géographique et structurel. Un site peut contenir un ou plusieurs [[wiki:supervision:welcome#Node|noeuds]]. \\
**Exemples** :
* Le Datacenter de Strasbourg est un site
* Le SYRTE est un site
* Le Laboratoire 3 du SYRTE **n'est pas** un site
**Liaisons** : Aucune
==== Network ====
**Définition** : La notion de réseau désigne un ensemble de [[wiki:supervision:welcome#Node|noeuds]] qui dépendent d'un même point d'entrée. Un sous-réseau n'a pas de source de signal propre.\\
**Exemples**:
* Réseau REFIMEVE+ : point d'entrée au SYRTE, source venant de la Cavité Ultra-Stable(CUS)
* Sous-Réseau Aquitaine : point d'entrée à Bordeaux, pas de source propre
**Liaisons** :
* [[wiki:supervision:welcome#infrastructure|Infrastructure]]
* [[wiki:supervision:welcome#module|Module]] : source du réseau (optionnel)
==== Node ====
**Définition** : Un noeud est un lieu (une pièce) dans lequel transitent les signaux REFIMEVE. Dans un noeud, on trouve des [[wiki:supervision:welcome#Module|modules]] et des [[wiki:supervision:welcome#Measuring Instrument|instruments de mesure]].\\
**Exemples** :
* Le Laboratoire 3 du SYRTE est un noeud
* Modane Bureau est un noeud
* Le Datacenter de Strasbourg est un noeud
* Le SYRTE **n'est pas** un noeud
**Liaisons**:
* [[wiki:supervision:welcome#network|Network]]
* [[wiki:supervision:welcome#site|Site]]
==== Technique ====
**Définition** : Une technique représente une méthode/technologie matérielle/logicielle de transfert Temps/Fréquence. \\
** Exemples **:
* transfert de fréquence par liens optiques fibrés REFIMEVE
* transfert de temps par liens optiques fibrés White Rabbit
* protocole NTP
**Liaisons** : Aucune
==== File access ====
**Définition** : Cet objet contient les métadonnées nécessaires pour accéder à un fichier de [[wiki:supervision:welcome#Mesurand|mesurandes]] en lecture (serveur hôte, chemin du répertoire, format du fichier, ...). Il permet l'automatisation de la lecture des fichiers. \\
** Liaisons **: Aucune
==== Measuring Instrument ====
=== Infos ===
**Définition** : Un instrument de mesure désigne un appareil permettant l'acquisition de données ([[wiki:supervision:welcome#Mesurand|mesures/mesurandes]]). Ces données mesurées sont stockées dans des fichiers dont on connaît la localisation et la manière de les lire grâce aux métadonnées présentes dans les [[wiki:supervision:welcome#File access|file access]]. \\
** Exemples **:
* Un KKCounter est un instrument de mesure de fréquence
* Un Time Interval Counter (TIC) est un instrument de mesure d'intervalle de temps
* Un serveur NTP est un instrument de mesure, dans le sens où le protocole NTP permet de mesurer la différence de temps entre deux horloges internes de deux ordinateurs appartenant à un réseau NTP.
** Liaisons **:
* [[wiki:supervision:welcome#node|Node]]: localisation physique du module
* [[wiki:supervision:welcome#module|Module]] : serveur NTP de référence pour l'instrument
* [[wiki:supervision:welcome#file_access|File access]] : localisation des fichiers de données sur le serveur de calcul
=== Créer un objet ===
{{:wiki:supervision:measuring_instrument.png?800|}} \\
Chaque nouvel [[wiki:supervision:welcome#measuring_instrument|instrument]] //newInstrument// s'accompagne d'un serveur d'acquisition de données //serverAcq// avec une synchronisation NTP de son horloge locale //localClock//. Pour cette raison, on crée d'abord la logique NTP si ce n'est pas déjà fait, avant de créer //newInstrument//:
* Créer le fichier [[wiki:supervision:welcome#file_access|File access]] pour accéder aux [[wiki:supervision:welcome#mesurand|mesurandes]] offset et delay NTP de //localClock//
* Créer l'[[wiki:supervision:welcome#measuring_instrument|instrument]] //serverAcq// en laissant le champ "Ntp server" vide
* Créer le [[wiki:supervision:welcome#module|module]] "horloge locale du serveur d'acquisition" //localClock// en laissant les champs "[[wiki:supervision:welcome#mesurand|mesurandes]]" vides
* Mettre à jour l'[[wiki:supervision:welcome#measuring_instrument|instrument]] //serverAcq// en insérant le [[wiki:supervision:welcome#module|module]] //localClock// dans le champ "ntp server"
* Créer les [[wiki:supervision:welcome#mesurand|mesurandes]] offset et delay NTP du [[wiki:supervision:welcome#module|module]] //localClock//
* Remplir les champs "Delay mesurand" et "Offset mesurand" du [[wiki:supervision:welcome#module|module]] //localClock//
Maintenant que la logique NTP est en place, vous avez tout en main pour créer l'[[wiki:supervision:welcome#measuring_instrument|instrument]] //newInstrument//
==== Mesurand ====
=== Infos ===
**Définition** : Une mesurande désigne n'importe quelle donnée acquise - par un [[wiki:supervision:welcome#Measuring Instrument|instrument de mesure]]- utile dans le cadre de REFIMEVE. \\
** Exemples **:
* les mesures E2E sur les liens fibrés
* les mesures Freelink sur les liens fibrés
* la mesure de synchronisation des compteurs
* le décalage temporel entre deux horloges internes de serveurs NTP
* la température dans le labo3 du SYRTE
** Liaisons **:
* [[wiki:supervision:welcome#measuring_instrument|Measuring Instrument]]: instrument acquiérant la mesurande
=== Créer un objet ===
Chaque nouvelle [[wiki:supervision:welcome#mesurand|mesurand]] //newMesurand// s'accompagne d'un [[wiki:supervision:welcome#measuring_instrument|instrument]] //newInstrument//. On doit donc créer //newInstrument// d'abord. \\
**output_value_column** : starting from 0 (python-wise)
==== Counter ====
**Définition** : Un compteur est un type d'[[wiki:supervision:welcome#measuring_instrument|instrument de mesure]] mesurant des données Temps/Fréquence. \\
**Exemples**:
* Un KKCounter est un compteur de fréquence
* Un TIC est un compteur d'intervalle de temps
** Liaisons **:
* [[wiki:supervision:welcome#measuring_instrument|Measuring Instrument]] : un compteur est associé à un instrument de mesure du même nom
* [[wiki:supervision:welcome#mesurand|mesurandes]] : la fréquence de référence du compteur (optionnel) et son niveau de synchronisation (optionnel).
==== Module ====
=== Infos ===
**Définition** : Un module est un terme générique pour désigner tout système matériel appartenant à un réseau de transfert Temps-Fréquence en lien avec REFIMEVE : (ré)génération / comparaison / transmission / étalon / ... \\
On peut dire qu'un module est un intermédiaire dans un réseau technique possèdant une sortie [[wiki:supervision:welcome#Mesurand|mesurée]] (délai, offset, sortie fréquence, sortie temps, ...).\\
**Exemples** :
* La fontaine Césium FO1
* Le Maser Hydrogène H-Maser H810S
* Un peigne de fréquence
* La cavité ultra-stable
* La station de régénération du signal REFIMEVE à Grenoble
* Le Switch White-Rabbit M00
* Un serveur NTP
** Liaisons **:
* [[wiki:supervision:welcome#node|Node]]: localisation physique du module
* [[wiki:supervision:welcome#mesurand|Mesurands]]: Clock Out, PPS Out, Delay, Offset (optionnels)
=== Créer un objet ===
**maintainer_id**: ID of the object in the SI of the external contractor if any. \\
Example : ID of RLS Lyon DC4 in iXBlue SI is 26
==== Campaign Request ====
**Définition** :
==== Campaign ====
=== Infos ===
**Définition** : Une campagne désigne un intervalle de temps pendant lequel les utilisateurs peuvent s'attendre à avoir un signal reçu des plus performants en stabilité et en précision du fait d'une attention accrue des équipes du SYRTE. Une campagne est souvent synonyme de [[wiki:supervision:welcome#Clock Comparison|comparaisons d'horloges atomiques|optiques]].\\
**Exemples**
* La campagne SYRTE-INRIM en décembre 2021.
* La campagne ROCIT2022 impliquant SYRTE, INRIM, PTB en 2022.
** Liaisons **:
* [[wiki:supervision:welcome#file_access|File access]] : localisation des fichiers de données des [[wiki:supervision:welcome##comparator_output|comparateurs]] sur le serveur de calcul, conformément au protocole défini à partir de la campagne ROCIT2022.
==== Clock Comparison ====
**Définition** : Une comparaison d'horloges désigne un couple de [[wiki:supervision:welcome#module|modules]] (horloges atomiques|optiques) dans le cadre d'une [[wiki:supervision:welcome#campaign|campagne]]. Pour pouvoir réaliser une comparaison entre deux horloges //A// et //B//, il faut avoir un jeu de [[wiki:supervision:welcome##comparator_output|comparateurs]] qui, mis dans le bon ordre, forment une chaîne allant de //A// à //B//.\\
** Cas explicatif **: Le seul intérêt de cet objet est de déclarer des comparaisons à effectuer automatiquement.
**Exemples** :
* INRIM_HM-SYRTE-H810: comparaison entre le [[wiki:supervision:welcome#module|module]] Maser Hydrogène Pivot de IQB et le [[wiki:supervision:welcome#module|module]] Maser Hydrogène Pivot de REFIMEVE
* PTB_Sr3_CombKnoten-SYRTE_Sr2: comparaison entre le [[wiki:supervision:welcome#module|module]] horloge Strontium3 du PTB et le [[wiki:supervision:welcome#module|module]] horloge Strontium2 du SYRTE.
** Liaisons **:
* [[wiki:supervision:welcome#campaign|Campaign]]
==== Comparator Output ====
=== Infos ===
**Définition** : Un comparateur désigne une [[wiki:supervision:welcome#Mesurand|mesure]] entre deux [[wiki:supervision:welcome#Module|modules]] successifs. Cette mesure peut être un ratio, une différence, une modulation, ... Cela dépend de la nature des modules dans le camparateur.\\
**Exemples**:
* SYRTE_CUS-SYRTE_H810 est le ratio de fréquences entre la cavité ultra-stable du SYRTE (SYRTE_CUS) et le Maser Hydrogène pivot du SYRTE (SYRTE_H810)
* SYRTE_CUS-SYRTE_SSSYRTE est la différence entre la cavité ultra-stable du SYRTE (SYRTE_CUS) et la SuperStation du SYRTE (SYRTE_SSSYRTE)
* UNISTRA_RLS5-PTB_NIRP est la différence entre la cavité ultra-stable du PTB (PTB_NIRP) et la Station de Strasbourg (UNISTRA_RLS5)
** Liaisons **:
* [[wiki:supervision:welcome#campaign|Campaign]] : on déclare un certain nombre de comparateurs associés à une campagne dont les données sont disponibles.
=== Créer un objet ===
Le **point d'attention** est : qui est //moduleA// et qui est //moduleB//. \\
La nomenclature adoptée depuis la publication du formalisme défini par Jérôme Lodewyck et al. ([[https://hal.science/hal-02997778]]) est telle que : COMPARATOR_LABEL = ModuleB-ModuleA. \\
**Exemple** :
* TH2_RLS-MODANE_RLS : moduleA est //MODANE_RLS// et moduleB est //TH2_RLS//
* SYRTE_CUS-SYRTE_H810 : moduleA est //SYRTE_H810// et moduleB est //SYRTE_CUS//
==== Link ====
=== Infos ===
**Définition** : Un lien désigne une connexion - physique, immatérielle ou conceptuelle - entre deux [[wiki:supervision:welcome#node|noeuds]]. A un lien on associe :
* une [[wiki:supervision:welcome#technique|technique]] afin d'identifier le type de lien dont il s'agit
* des [[wiki:supervision:welcome#link_infos|link infos]]
** Exemples **:
* CUS - Frequency Comb est un lien de comparaison de fréquences
* TH2-Lille est un lien optique fibré de transfert de fréquence entre les noeuds TH2 et Lille
* WR GM-M00 est un lien optique fibré de transfert de temps entre deux Switch White Rabbit
* r530-pc105 est un lien conceptuel entre deux serveurs NTP, car r530 est la référence NTP de pc105
** Liaisons **:
* [[wiki:supervision:welcome#node|noeuds]]: noeuds de départ et d'arrivée du lien
* [[wiki:supervision:welcome#technique|Technique]]: méthode de transfert d'information Temps/Fréquence
* [[wiki:supervision:welcome#link|Link]] : lien parent. Nécessaire pour bien définir l'architecture des liens.
=== Créer un objet ===
Le **point d'attention** ici est : qui est //from_node// et qui est //to_node//. \\
Le sens à donner dépend du type d'information transmise :
* signal physique : //from_node// est le [[wiki:supervision:welcome#node|noeud]] de départ, //to_node// le [[wiki:supervision:welcome#node|noeud]] d'arrivée
* calibration / synchronisation : //from_node// est le [[wiki:supervision:welcome#node|noeud]] de référence, //to_node// le [[wiki:supervision:welcome#node|noeud]] à caler/calibrer/synchroniser
**Exemples**:
* lien fibré Grenoble - Modane : //from_node// est Grenoble DSI, //to_node// est Modane Bureau
* synchro NTP de r530 : //from_node// est RNT (pour ntp-p1.obspm.fr), //to_node// est Labo3 (pour r530)
* comparaison par peigne : ???
==== Link infos ====
=== Infos ===
**Définition** : Cet objet rassemble les propriétés des [[wiki:supervision:welcome#Link|liens]] qui varient dans le temps. \\
**Cas explicatif** : à cause d'une défaillance technique, la station RLS-A à Lyon est remplacée par la RLS-B. Pour autant, le [[wiki:supervision:welcome#Link|lien]] optique "Lyon-Grenoble" reste le même. Ainsi on ne modifie pas l'objet [[wiki:supervision:welcome#Link|"lien"]] mais on ajoute un objet [[wiki:supervision:welcome#Link infos|liens info]] qui va décrire ce changement dans le temps. \\
** Exemples **:
* TH2_L3 - RLS Lille : les modules //TH2_L3// et //RLS1 Lille// pour le [[wiki:supervision:welcome#Link|lien]] fibré //TH2-Lille//
* WR GM-M00 : les modules //GM// et //M00// pour le [[wiki:supervision:welcome#Link|lien]] WR //GM-M00//
* ntp-p1.obspm.fr-r530 : pour le [[wiki:supervision:welcome#Link|lien]] NTP synchronisant l'horloge du //serveur r530// sur //ntp-p1.obspm.fr//
** Liaisons **:
* [[wiki:supervision:welcome#module|Modules]] : modules de "début" et de "fin" du lien
* [[wiki:supervision:welcome#link|Link]] : lien associé à ces informations
=== Créer un objet ===
Le **point d'attention** ici est : qui est //from_module// et qui est //to_module//. \\
Le sens à donner dépend du type d'information transmise :
* signal physique : //from_module// est le module de départ, //to_module// le module d'arrivée
* calibration / synchronisation : //from_module// est le module de référence, //to_module// le module à caler/calibrer/synchroniser
* comparaison : "distance" par rapport à la source ???
**Exemples**:
* lien fibré Grenoble - Modane : //from_module// est RLS Grenoble, //to_module// est RLS Modane Bureau
* synchro NTP de r530 : //from_module// est ntp-p1.obspm.fr, //to_module// est r530
* comparaison par peigne : ???
==== E2E Freelink ====
**Définition** : Cet objet représente le système de stabilisation (mesure Freelink) et de vérification (mesure E2E) associé à un ensemble de liens optiques fibrés pour le transfert de fréquence via REFIMEVE. \\
**Exemples** :
* SYRTE-TH2: le [[wiki:supervision:welcome#node|noeud]] //Labo3 SYRTE// et revenant via [[wiki:supervision:welcome#node|noeud]] //TH2//
* TH2-Modane: le [[wiki:supervision:welcome#node|noeud]] //TH2// et revenant via [[wiki:supervision:welcome#node|noeud]] //Modane Bureau//
** Liaisons **:
* [[wiki:supervision:welcome#mesurand|Mesurands]] : mesures E2E et/ou Freelink
* [[wiki:supervision:welcome#node|Nodes]] : noeud de début et noeud de retour
==== Two Way ====
**Définition** : Cet objet représente, comme son nom l'indique, le système de Two Way entre deux [[wiki:supervision:welcome#module|Modules]].\\
**Exemples** :
* Île-de-France loop: battement entre le [[wiki:supervision:welcome#module|module]] Cavité Ultra-Stable (CUS) contre lui-même après transfert dans des [[wiki:supervision:welcome#node|noeuds]] d'Île-de-France
* SYRTE-PTB: battement à Strasbourg entre le [[wiki:supervision:welcome#module|module]] Station côté REFIMEVE et [[wiki:supervision:welcome#module|module]] Station côté PTB
** Liaisons **:
* [[wiki:supervision:welcome#mesurand|Mesurands]] : beatnope up et beatnote down
* [[wiki:supervision:welcome#module|Modules]] : modules involved in the two-way
* [[wiki:supervision:welcome#technique|Technique]] : ??
===== Paramétrage des filtres par défaut d'un observable =====
A chaque observable doit être associé un fichier .yml sur le [[:informatique:gestionit:refimeve-syrte-dl380:externe1_data-from | serveur de calcul]] contenant la liste des méthodes de filtrage par défaut pour évaluer la qualité de la trace fournie, ainsi que les paramètres pour chacune d'entre elles. Ces fichiers sont présents dans le dossier // /opt/palantir/conf/filters/ //
Pour un observable donné, on trouve sous forme de liste les méthodes de filtrage et la valeur des paramètres sous l'attribut "methods" :
- carrier_value: 194.4e12
counting_value: 21.4e6
description: Default config
end: null
label: Default
methods:
- label: palantir.filters.fat_filter.FatFilterMethod
parameters:
filter_fat: 8e-15
- label: palantir.filters.good_periods.GoodPeriodsMethod
parameters:
cut_f: 1e-16
cut_mean_factor: 2
cut_q_factor: 3
cut_rstd_q_factor: 10000
filter_a: 3e-15
window_mean: 9
window_rmean_q: 271
window_rstd_q: 1000
window_std: 200
- label: palantir.filters.good_periods.RestrictMethod
parameters:
cut_f: 1e-16
cut_mean_factor: 30
window_mean: 1000
- label: palantir.filters.cycle_slips.CycleSlipsMethod
parameters:
filter_m_factor: 6e-15
window_rm: 5
multiplication_factor: 1
start: null
window_dedrift: 100
alerts:
- label: palantir.filters.differential.DiscrepancyMethod
critical: True
parameters:
filter_fat: 10
Pour **modifier les paramètres de filtre par défaut**: il faut éditer ces fichiers directement.\\ \\
Pour **modifier les paramètres de filtre dans le code, à la volée** : voir [[https://refimeve-palantir.obspm.fr/tutorial/code_snippets/filtering_parameters.html | documentation utilisateur de Palantir]]
===== Paramétrage des alertes par défaut d'un observable =====
A chaque observable doit être associé un fichier .yml sur le [[:informatique:gestionit:refimeve-syrte-dl380:externe1_data-from | serveur de calcul]] contenant la liste des types d'alerte à vérifier, ainsi que les paramètres pour chacune d'entre elles. Ces fichiers sont présents dans le dossier // /opt/palantir/conf/filters/ //
Pour un observable donné, on trouve sous forme de liste les méthodes de filtrage et la valeur des paramètres sous l'attribut "alerts" :
- carrier_value: 194.4e12
counting_value: 21.4e6
description: Default config
end: null
label: Default
...
alerts:
- label: palantir.filters.differential.DiscrepancyMethod
critical: True
parameters:
filter_fat: 10
Pour **modifier les paramètres d'alerte par défaut**: il faut éditer ces fichiers directement.\\ \\