Utiliser Publisher Reports dans OEM 12c

Je trouve que la version OEM 12c est une réussite, ne serait-ce que pour l’interface graphique qui marque une étape par rapport à ses prédécesseurs. C’est un logiciel hyper complet mais … j’ai été confronté à ce qui m’a semblé dans un premier temps une limite, puis j’ai fini par comprendre la richesse et la versatilité du produit. Je vous explique ma problématique et sa résolution. Dans de nombreuses interfaces d’OEM, il est possible de visualiser graphiquement l’activité des « targets », c’est à dire des serveurs, des bases de données, serveurs d’application, …
 
Mais comment obtenir ce même graphique à l’aide de l’outil Publisher Report ? En effet si je parcours la liste des reports qu’il est possible d’éditer, aucun ne correspond à ce genre de demandes.
Comment faire ?
Après de nombreuses recherches, j’ai enfin trouvé mon bonheur sur support.oracle.com, mais adapté à une problématique de remontée d’informations pour des disques ASM. Je vous propose donc la démarche suivante pour, partant de l’exemple donné par le support, trouver le fil conducteur nous emmenant à réaliser ce que l’on veut (ou presque) avec Publisher Reports.
Le lien de départ est la note du support suivante :
EM 12c: How to Create an Information Publisher Reports for ASM Disk Usage in Enterprise Manager 12c Cloud Control (Doc ID 1921426.1)
https://support.oracle.com/epmos/faces/DocumentDisplay?id=1921426.1&displayIndex=1#FIX
Requête contenu dans la note du support :

select target_name, KEY_VALUE, TARGET_TYPE, metric_column, column_label, value, nvl((select 'Y' from dual where 50 < value and column_label = 'Disk Group Used %'),
(select 'N' from dual where 50 >= value and column_label = 'Disk Group Used %')) Flag
from mgmt$metric_current
where metric_name = 'DiskGroup_Usage'
and metric_column in ('percent_used','free_mb','total_mb') order by KEY_VALUE,target_name , column_label

 

1)  Recherche des vues OEM

En utilisant la table contenue dans la requête donnée dans la note support, je recherche sur internet la documentation contenant les vues internes du modèle du repository OEM. J’ai trouvé celle-ci sur le lien suivant :
http://docs.oracle.com/cd/E24628_01/doc.121/e25161/views.htm#EMPRF12085

2) Recherche des éléments pertinents dans le repository OEM

nous pouvons nous appuyer sur la vue mgmt$metric_current pour connaitre les possibilités de reporting pour les autres targets suivies dans Enterprise Manager, autres qu’ASM. J’utilise pour cela Publisher Reports en créant un « report definition » de type « table from SQL » pour utiliser ce « report definition » comme un outil de requêtage SQL sur le repository OEM.
Voici les premières étapes pour la création de ce report :
 
reporting_infos2
Il est à noter que le report est positionné dans la catégorie Cisco, mais que l’on peut le modifier ensuite.
 
 
reporting_infos3
 
reporting_infos1
reporting_infos4
 
A l’aide donc de cette interface, je désire obtenir les informations concernant l’activité sur des serveurs Oracle VM. J’utilise les requêtes suivantes pour parvenir à mes fins :
a)

select distinct target_type
 from  MGMT$METRIC_CURRENT;

elle peut durer quelques minutes au plus, elle remonte les types de targets disponibles sur mon OEM. Ayant trouvé que le type de target pour Oracle VM est ‘oracle_vm_server’, je lance la requête :
b)

select distinct metric_column
 , metric_name, column_label, metric_label
 from  MGMT$METRIC_DAILY
 where target_type = 'oracle_vm_server';

J’obtiens parmi d’autres métriques ceux qui m’intéressent : l’utilisation CPU et mémoire.

target_type metric_column column_label
 oracle_vm_server cpuutil CPU Utilization (%)
 oracle_vm_server memutil Physical Memory Utilization (%)

 

3) obtention du résultat final

Je peux maintenant m’attaquer à la requête que je vais utiliser pour réaliser le graphe qui sera produit par le report. Je m’appuie sur la vue MGMT$METRIC_DAILY pour rechercher la table contenant la variation des mes métriques / temps.
Maintenant je crée un report de type « Chart from SQL », qui demande les éléments suivants sur la clause Select : métrique (=libellé de la courbe),variation du temps (=axe x), valeur du métrique (=axe y).

select  metric_column, rollup_timestamp, avg(average)
from MGMT$METRIC_DAILY
where metric_column in ('cpuutil','memutil')
and target_type = 'oracle_vm_server'
group by metric_column, rollup_timestamp;

 
reporting_infos11
 
Voici le fruit de mes efforts, la courbe d’utilisation CPU et mémoire sur une période glissante de deux mois :
reporting_infos10
 

2 réflexions sur “Utiliser Publisher Reports dans OEM 12c”

  1. Merci Jean-Pierre pour ce partage :o)
    Pour aller plus loin, j’ai souhaité implémenter en OEM12c un rapport avec des données directement lues dans les vues de la database target……pas evident dans cette version12c.
    En Version OEM 10g et 11g, il y avait une astuce pour créer une type de rapport permettant l’interrogation des vues d’une target.
    En 12c, il faudrait à priori implémenter des « métrics extension »……
    Il est bien dommage de ne pas pouvoir interroger directement la database target.
    Avez-vous rencontré ce cas de figure ?
    Merci
    Gram

Les commentaires sont fermés.