Publié le :

Requête d'informations sur les tâches SAS Workload Orchestrator

Ce code est également disponible en : Deutsch English Español
En attente de validation
Attention : Ce code nécessite des droits administrateur.
Le programme utilise `PROC HTTP` pour se connecter à l'API SAS© Workload Orchestrator avec une authentification basique. Il récupère des données JSON sur les tâches (tous les états non archivés), puis utilise une `LIBNAME JSON` pour lire ces données. Enfin, `PROC SQL` est employée pour joindre les différentes parties des informations JSON (jobs, processinginfo, request) et créer une table unique. Les résultats sont ensuite affichés via `PROC PRINT`.
Analyse des données

Type : EXTERNE


Les données sont récupérées via une requête HTTP authentifiée vers l'API REST du SAS Workload Orchestrator. Le corps de la réponse, au format JSON, est ensuite lu et traité comme une source de données SAS.

1 Bloc de code
Variables Macro & FILENAME Statements
Explication :
Ce bloc initialise des variables macro pour l'authentification (`username`, `pw`) et l'URL de base (`baseURL`) de l'API SAS Workload Orchestrator. Il définit également deux filerefs temporaires, `body` et `headout`, pour stocker respectivement le corps et les en-têtes de la réponse HTTP.
Copié !
1%let username = sas;
2%let pw = password;
3%let baseURL = http://wlo-master.demo.sas.com:8901;
4 
5filename body temp;
6filename headout temp;
2 Bloc de code
PROC HTTP Data
Explication :
La procédure `PROC HTTP` est utilisée pour envoyer une requête GET à l'API des jobs du SAS Workload Orchestrator. L'URL est construite dynamiquement avec la variable macro `baseURL` et un paramètre `state=ALL` pour récupérer toutes les tâches non archivées. L'authentification basique est gérée via `webusername` et `webpassword`. Le corps de la réponse est enregistré dans le fileref `body` et les en-têtes dans `headout`. Un en-tête `Accept` est spécifié pour un format JSON spécifique à l'API.
Copié !
1PROC HTTP URL="&baseURL/sasgrid/api/jobs?state=ALL" out=body
2headerout=headout headerout_overwrite webusername="&username" webpassword="&pw";
3headers "Accept"="application/vnd.sas.sasgrid.jobs;version=1;charset=utf-8";
4RUN;
3 Bloc de code
LIBNAME Statement Data
Explication :
Le premier `libname jobinfo;` désassigne toute libname existante portant ce nom, assurant une réinitialisation propre. Le second `libname jobinfo json fileref=body;` crée une bibliothèque SAS `jobinfo` en interprétant le contenu JSON du fileref `body` (qui contient la réponse de l'API) comme des tables SAS. Ceci rend les données JSON accessibles via des tables SAS.
Copié !
1LIBNAME jobinfo;
2LIBNAME jobinfo json fileref=body;
3 
4 Bloc de code
PROC SQL Data
Explication :
Cette procédure `PROC SQL` crée une nouvelle table `jobs` dans la bibliothèque `WORK`. Elle effectue une jointure complexe entre plusieurs tables virtuelles générées par la `LIBNAME JSON` (`jobinfo.jobs`, `jobinfo.jobs_processinginfo`, `jobinfo.jobs_request`) en utilisant les colonnes `ordinal_jobs`. L'objectif est de consolider les informations pertinentes sur les tâches (ID, état, file d'attente, horaires, hôte, code de sortie, nom de la tâche, utilisateur, commande) en une seule vue ordonnée par ID de tâche.
Copié !
1PROC SQL;
2create TABLE jobs as
3 select
4 a.id,
5 b.state, b.queue, b.submitTime, b.startTime, b.endTime,
6 b.processId, b.executionHost, b.exitCode,
7 c.name, c.user, c.cmd from
8 jobinfo.jobs a,
9 jobinfo.jobs_processinginfo b,
10 jobinfo.jobs_request c
11 where a.ordinal_jobs = b.ordinal_jobs and
12 b.ordinal_jobs = c.ordinal_jobs
13 order BY a.id;
14QUIT;
5 Bloc de code
PROC PRINT
Explication :
La procédure `PROC PRINT` affiche le contenu de la table `work.jobs` qui a été créée précédemment, présentant ainsi les informations consolidées sur les tâches du SAS Workload Orchestrator.
Copié !
1PROC PRINT DATA=work.jobs; RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : Author: Greg Wootton Date: 02JAN2019


Banner
Le Conseil de l'Expert
Expert
Michael
Responsable de l'infrastructure Viya.
« L'accès programmatique aux informations du SAS Workload Orchestrator (SWO) est essentiel pour les administrateurs souhaitant automatiser la surveillance de la grille ou créer des rapports de performance personnalisés. Ce script démontre une méthode robuste pour transformer des métriques système complexes en données exploitables au sein de votre session SAS. »