Rubrique précédente: Flux d'événementsRubrique suivante: Métriques groupées de registre


Enregistrement

L'enregistrement est le processus au cours duquel la logique applicative soumet une demande au moteur de calcul pour l'ensemble des événements de données brutes qui doivent intégrer le calcul.

Vous pouvez maîtriser le processus d'enregistrement de deux façons : avec l'assistant d'enregistrement ou en utilisant manuellement l'objet Dispatcher dans la logique applicative.

L'utilisation de l'assistant d'enregistrement consiste simplement à choisir entre les options disponibles. Vous disposez de toutes les mêmes options que lorsque vous effectuez l'enregistrement manuellement, sans la possibilité d'utiliser des paramètres. Si vous avez besoin d'utiliser des paramètres, vous devrez effectuer l'enregistrement manuellement. Le flux de base de l'assistant nécessite de déterminer d'abord quel type d'enregistrement vous souhaitez accomplir, puis de définir les types de ressource et d'événements dans lesquels l'enregistrement doit être accompli, et finalement quel gestionnaire d'événements sera utilisé pour traiter les événements rassemblés.

Une fois que les enregistrements sont terminés, ils sont répertoriés dans l'onglet Enregistrement de la métrique. Notez également qu'il est possible d'avoir plusieurs instructions d'enregistrement pour une métrique.

En fait, l'assistant d'enregistrement utilise la même fonctionnalité que l'enregistrement manuel, et toutes ces options sont traitées dans la section suivante.

Dans le cas d'un enregistrement manuel dans la logique applicative, l'enregistrement de la formule est traité par le gestionnaire d'événements OnRegistration. Cette opération doit être implémentée dans la formule et déclenchée quand un événement de moteur d'enregistrement est déclenché. L'événement d'enregistrement est déclenché une fois, lorsque le contrat est activé, puis à chaque fois qu'une ressource pertinente ou l'ensemble de modifications est activé. Un changement dans la ressource concernée est considéré comme pertinent s'il affecte les événements que la métrique est supposée recevoir. Par exemple, si l'enregistrement est effectué par un contractant (RegisterByContractParty), cela signifie que tous les événements du type défini dont les ressources sont attachées au contractant de la métrique font partie du calcul. Dans ce cas, à chaque fois qu'une nouvelle ressource est attachée ou détachée à ce contractant, la méthode d'enregistrement sera déclenchée pour notifier le moteur du changement.

Les méthodes d'enregistrement sont fournies par l'objet Dispatcher qui est transféré à OnRegistration comme argument. Des méthodes différentes fournissent plusieurs méthodes pour définir les critères de filtre selon la définition de type d'événement et un critère d'allocation de ressources, comme les ressources d'un groupe de ressources, ou les ressources d'un certain type.

L'utilisation du contractant et des méthodes d'enregistrement de service est fortement recommandée parce qu'elle facilite l'utilisation de la logique applicative en tant que module ou modèle. De cette manière, le contractant et le service pertinents sont extraits de la définition de la métrique associée et lors de la ré-utilisation de la formule pour des contrats et/ou des composants de service différents, il n'est pas nécessaire de modifier l'enregistrement.

Une autre méthode d'enregistrement courante est RegisterByResourceGroup qui est utile pour travailler avec des ressources qui sont logiquement regroupées mais qui ne sont pas toujours associées à des contractants ou à des services. L'affectation de ressources aux groupes dans ce contexte peut être prise en charge par le catalogue de ressources (individuellement ou via des ensembles de modifications) et pourrait même être mise à jour automatiquement par des scripts de conversion.

En général, la méthode d'enregistrement est déterminée pendant la phase de conception et est directement pilotée par le modèle de données défini.

Remarque : Afin de vérifier si l'objet Dispatcher a correctement été utilisé, la fonction OnRegistration est également appelée pendant la vérification de syntaxe du SLALOM. Pour cette raison, il ne faut pas supposer qu'OnLoad a été exécuté avant la fonction OnRegistration et il ne faut pas utiliser certaines propriétés de l'objet de contexte, telles que TimeUnit, IntervalLength, IsPeriod, CorrectionsApply, et ExceptionsApply dans l'agent d'événement OnRegistration.

Les méthodes d'enregistrement sont également chargées d'associer les événements à une procédure qui sera déclenchée en fonction de l'horodatage de l'événement. La procédure définie peut avoir un nom, mais aura toujours l'objet eventDetails pour paramètre. L'objet eventDetails reflète l'événement de données brutes reçu et contient tous les détails d'événement comme des champs de données, comme indiqué dans l'enregistrement suivant :

Sub OnRegistration(dispatcher)
dispatcher.RegisterByContractPartyAndService "OnMemUseEvent", "MemUse", "Server"
'the parameters of the method are: <procedure name>, <Event Type>, <Resource Type>
End Sub

L'instruction d'enregistrement ci-dessus nous indique que tous les événements de données brutes du type d'événement MemUse, et associé au type de ressource Server, sera envoyée au gestionnaire d'événements OnMemUseEvent dans la logique applicative.

La procédure suivante devra également être définie en amont dans la logique applicative :

Sub OnMemUseEvent(eventDetails)
 If InTimeSlot And eventDetails("MemoryUsage")>MaxMemoryUse Then
       MaxMsmoryUse = eventDetails("MemoryUsage)"
     End If
End Sub

En faisant référence à l'objet eventDetails et en utilisant le paramètre MemoryUsage, l'instruction extrait la valeur du champ MemoryUsage de l'événement qui a été passé dans la fonction. Ces champs sont les mêmes que définis dans le type d'événement, et les noms de champ respectent la casse.