Collecte de données par script batch
Dernière mise à jour – 24 juillet 2025
Marché
La méthode de collecte de données BatchScript est idéale pour les sources de données qui :
- Collecter des données provenant d'un grand nombre d'instances via un script, ou
- Nous collecterons des données à partir d'un appareil qui ne prend pas en charge les requêtes de données provenant d'une instance unique.
Le Méthode de collecte de données par script Il est également possible de collecter des données via un script, mais les données sont alors interrogées pour chaque instance détectée. Pour les sources de données collectant des données sur un grand nombre d'instances, cette méthode peut s'avérer inefficace et surcharger l'appareil sur lequel les données sont collectées. Pour les appareils ne prenant pas en charge les requêtes de données provenant d'une seule instance, il est nécessaire d'introduire une complexité inutile pour obtenir des données par instance. La méthode de collecte de données par script par lots résout ces problèmes en collectant les données de plusieurs instances simultanément (au lieu d'une par instance).
Remarque:
- Pour cette méthode de collecte, les méthodes d'interprétation des points de données sont limitées aux paires clé-valeur multilignes et au format JSON. Pour plus d'informations sur les méthodes d'interprétation des points de données, consultez la documentation. Points de données normaux.
- La valeur WILDVALUE des instances ne peut pas contenir les caractères suivants :
:
#
\
spaceCes caractères doivent être remplacés par un trait de soulignement ou un tiret dans WILDVALUE, aussi bien dans Active Discovery que dans la collection.
Fonctionnement du collecteur BatchScript
Comme lors de la collecte de données pour une source de données utilisant le collecteur de scripts, le collecteur de scripts par lots exécute le script désigné (intégré ou téléchargé) et capture sa sortie depuis la sortie standard du programme. Si le programme se termine correctement (vérifié en contrôlant si le code de sortie est 0), les méthodes de post-traitement sont appliquées à la sortie. extraire la valeur des points de données de cette source de données (comme pour les autres collecteurs).
Format de sortie
Le résultat du script doit être au format JSON ou ligne par ligne.
La sortie ligne par ligne doit être au format suivant :
La sortie JSON doit être au format suivant :
{
data: {
instance1: {
values: {
"key1": value11,
"key2": value12
}
},
instance2: {
values: {
"key1": value21,
"key2": value22
}
}
}
}La méthode de collecte de données BatchScript recueillant simultanément les informations de plusieurs instances, le jeton ##WILDVALUE## doit être utilisé dans chaque définition de point de données pour transmettre le nom de l'instance. La valeur « NoData » sera renvoyée si votre WILDVALUE contient les caractères invalides mentionnés précédemment dans cet article.
En utilisant la sortie ligne par ligne ci-dessus, les définitions des points de données doivent utiliser la méthode de post-traitement des paires clé-valeur multilignes, avec les clés suivantes :
- ##WILDVALUE##.key1
- ##WILDVALUE##.key2
En utilisant la sortie JSON ci-dessus, les définitions des points de données doivent utiliser la méthode de post-traitement d'objet JSON/BSON, avec les chemins JSON suivants :
- données.##WILDVALUE##.values.key1
- données.##WILDVALUE##.values.key2
Exemple de collecte de données par script batch
Si un script génère la sortie suivante :
La définition du point de données IOPS peut alors utiliser la méthode de post-traitement par paires clé-valeur comme ceci :

Le jeton ##WILDVALUE## serait remplacé par disk1 puis disk2, de sorte que ce point de données renverrait les valeurs IOPS pour chaque instance. La définition du point de données de débit aurait '##WILDVALUE##.throughput' dans le champ Clé.
Exemple de récupération de valeurs génériques avec BatchScript
Les valeurs génériques peuvent être récupérées dans le script de collecte :
def listOfWildValues = datasourceinstanceProps.values().collect { it.wildvalue }datasourceinstanceProps.each { instance, instanceProperties ->
instanceProperties.each
{ it -> def wildValue = it.wildvalue // Do something with wild value }
}