Introduction
Les données collectées par le job de capture de Replay via la procédure DSIDE_REPLAY.GATHER sont habituellement exploitées par d.side Interactive Replay.
Elles sont également faciles à transmettre via les outils d’export / import fournis.
Désormais, on peut même exploiter ces données sans passer par l’interface Replay.
En effet, le package PL/SQL DSIDE_REPLAY_API fournit des fonctions permettant d’extraire les données collectées dans le schéma Replay.
La plupart de ces fonctions renvoient une liste de (SNAPSHOT, VALUE) qui peuvent ainsi facilement être exploitées directement en SQL ou par des outils tiers d’analyse.
Installation
Pour accéder à l’API il suffit de créer le package DSIDE_REPLAY_API à l’aide du script dsreplay_api.sql fourni sur demande à notre équipe support.
SQL> @dsreplay_api.sql Package dropped. Type dropped. Type dropped. Type created. Type created. Package created. Package body created. SQL>
Extraction de données à l’aide de l’API
Utilisation de l’API via des requêtes SQL
Une fois le package DSIDE_REPLAY_API créé, on a accès à de nombreuses fonctions permettant d’explorer ce qui a été collecté.
Voici trois exemples d’utilisation.
Pic de CPU atteint sur la machine au cours des 3 derniers jours :
SELECT MAX(VALUE) FROM TABLE(DSIDE_REPLAY_API.GET_HOST_CPU) WHERE SNAP_DATE>SYSDATE-3;
Nombre de requêtes exécutées par heure, sur les 24 dernières heures :
SELECT to_char(snap_date, 'YYYYMMDDHH24'), sum(VALUE) FROM TABLE(DSIDE_REPLAY_API.GET_EXECUTE_COUNT) WHERE SNAP_DATE>SYSDATE-1 GROUP BY to_char(snap_date, 'YYYYMMDDHH24') ORDER BY to_char(snap_date, 'YYYYMMDDHH24');
“TOP 10” des requêtes les plus consommatrices sur les 7 derniers jours :
column minsnap new_value beginsnap; SELECT MIN(SNAP_ID) minsnap FROM TABLE(DSIDE_REPLAY_API.GET_SNAPS_LIST) WHERE SNAP_DATE>SYSDATE-7; SELECT * FROM TABLE(DSIDE_REPLAY_API.GET_PERIOD_QUERIES(limit=>10, begin_snap=>&beginsnap));
Interface avec des outils tiers
Nous venons de voir comment il est très simple d’exploiter en SQL les données collectées.
Il est également possible de confier le résultat de ces extractions à des outils tiers.
Par exemple pour injecter les données collectées dans une base destinée à grafana, afin de produire des graphiques avec vos outils habituels.
Services REST
Enfin, de la même manière, il est possible d’interfacer l’API d.side avec une architecture REST.
Pour cela Oracle propose par exemple ORDS (Oracle REST Data Services) : https://docs.oracle.com/en/database/oracle/oracle-rest-data-services/index.html
Remarque : l’utilisation de l’API d.side nécessite une version minimale d’Oracle. Le schéma de collecte Replay doit avoir été créé sur une base en Oracle 11g ou supérieure. Elle n’est donc pas compatible avec Oracle 10g.