SQWareWeb:general

From Wiki_dbSQWare
Revision as of 08:52, 10 November 2010 by Expdbtools (talk | contribs) (graphiques)
Jump to: navigation, search

présentation

utilisation

C'est la partie de restitution 'graphique' de expdbTools® pour tous les SGBDs.
C'est un module web fait pour fonctionner avec apache 2 et PHP 5.2 (non compatible 5.3!).
Il est écrit en PHP, ajax, OpenFlash et SQL.
SQWareWeb met en forme (graphiques ou tableaux) les données remontées dans SQWareRepository® par un grande partie des scripts du module SQWareProduction®. La quasie totalité des données présentées sont dynamiquement générées (volumétries, versions, ...), seules les données de type référentiel ou paramétrage sont à stocker à la main dans les tables concernées.

Exemples de pages présentes sur le site:

  • Inventaire pour chaque SGBD avec volumétrie, version, enplacement, environnement ...
  • Répartition des instances en nombre/volumétrie par environnement/client/version
  • Détail des volumétries (FS, databases, TBS, tables, ...)
  • Trace des passages des scripts de SQWareProduction® (début, fin, options, durée, code retour, ...)
  • Données de performances
  • Capacity planning
  • ...


explication de l'arborescence

Arborescences se trouvant dans $gvsqw_RootexpdbWebdba:

  • cache : Fichiers générés par le systeme de cache
  • css : Feuilles de style
  • custom : C'est l'espace de customisation, permet de gérer le menu et ses includes ainsi que le paramétrage des connexions
  • custom_ref : C'est le modèle de ce qui doit se trouver dans custom
  • htdocs : Contient les pages du site
  • images : Contient les images du site
  • js : Contient les librairies ajax
  • lib : Contient le moteur de template
  • scripts : Contient les génrateurs principaux du site (graphiques et tableaux)
  • templates : Menus gauche du site et templates html pour (graphiques, tableaux et exports excel)
Nuvola apps important.png
Warning:
Ne modifier pas les scripts et fichiers de configuration présents dans les arborescences standards (dans la mesure du possible). Utiliser l'arborescence $gvsqw_RootexpdbWebdba/custom pour les customisations afin de faciliter les futures montées de version.


fonctionnement

réécriture

Le site fonctionne par réécriture d'URL avec $gvsqw_RootexpdbWebdba/htdocs/.htaccess
Contenu du fichier:

RewriteEngine On
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*).table$ /table.php?path=/$1 [qsa,l,pt]
RewriteRule ^(.*).chart$ /chart.php?path=/$1 [qsa,l,pt]
RewriteRule ^(.*)/(.*.html)\??(.*)$ /engine.php?path=$1/$2 [qsa,l,pt]
RewriteRule ^(.*)/$ /engine.php?path=/$1/ [qsa,l,pt]
RewriteRule ^$ /engine.php?path=/ [qsa,l,pt]
RewriteRule open-flash-chart.swf$ /images/open-flash-chart.swf [qsa,l,pt]
RewriteRule ^.+/js/(.*)$ /js/$1 [qsa,l,pt]

graphiques

Les graphiques sont générés avec OpenFlashChart qui est sous licence LGPL.
La lib se trouve dans $gvsqw_RootexpdbWebdba/lib/ofc/open-flash-chart.php
Le tout est encapsulé pour SQWareWeb dans $gvsqw_RootexpdbWebdba/scripts/chart.php

Il suffit alors de créer un fichier de configuration du type *.chart pour générer le graphique.
Le fichier doit contenir les sections suivantes:

  • common
  • db
  • y_axis
  • background
  • x_axis
  • data_[0-9]


Exemple de fichier de configuration (GrowthBases.chart):

[common]
title="Growth database {DbName} for {Instance}"

[db]
sql="select vbd.DataServer, convert(char(10),vbd.Gather_date,103) as gather_date, vbd.Database_name,
vbd.Size_db as size_db, vbd.Used as used, vbd.Size_db-vbd.Used as free
  from tsqw_VolDb vbd
where vbd.DataServer = '{Instance}'
and vbd.Database_name = '{DbName}'
order by vbd.Gather_date
"

[y_axis]
legend="Volumetry Mo"
min=0
;max=60000
;step=5000

[background]
color="#ffffff"

[x_axis]
field="gather_date" ; field to display in X
legend="Date"
orientation="verticale" ; verticale or horizontal(by default)
size="12" ; in pixels
step=5
legendstep=10
;maxdata=20

[data_1]
field="size_db" ; field to trace on curve
type="line" ; type of graph line, bar, bar_3d, pie, bar_glass, bar_sketch, line_dot (by default)
colour="#0000ff"
pointsize=2 ; in pixel
text="Size of database"

[data_2]
field="used" ; field to trace on curve
type="line"
colour="#ff4500"
pointsize=2 ; in pixel
text="Used"

[data_3]
field="free" ; field to trace on curve
type="line"
colour="#32cd32"
pointsize=2 ; in pixel
text="Free"
Nuvola apps information.png
Note:
Lorsque vous avez un problème de génération,
vous pouvez utiliser les flags suivants dans la section [db] :
'''debug=true'''
'''debug_before_connectdb=true'''
'''debug_connectdb_error=true'''
.


tableaux

Les graphiques sont générés avec le framework ajax ActiveWidgets 2.5 qui est soumis à licence. Celle-ci a été acquittée par les développeurs de expdbTools et est royalty free distribution of Software in any applications. Pour plus de détail sur la cette licence.
ActiveWidgets se trouve dans $gvsqw_RootexpdbWebdba/js/ActiveWidgets/*
Le tout est encapsulé pour SQWareWeb dans $gvsqw_RootexpdbWebdba/scripts/table.php

Il suffit alors de créer un fichier de configuration du type *.table pour générer le tableau.
Le fichier doit contenir les sections suivantes:

  • common
  • db
  • cols
  • format

Et de manière optionnelle:

  • link
  • targetlink
  • format_number


Exemple de fichier de configuration (GrowthTables.table):

[common]
title="Growth {Owner}.{TableName} in {DbName}@{Instance}"

[db]
sql="select vbd.DataServer, convert(char(19),vbd.Gather_date,23) as gather_date, vbd.Database_name,
vbd.Owner, vbd.TableName, vbd.Size_tb
  from tsqw_VolTables vbd
where vbd.DataServer = '{Instance}'
	and vbd.Database_name='{DbName}'
	and vbd.Owner='{Owner}'
	and vbd.TableName='{TableName}'
order by vbd.Gather_date desc
"
;debug=true

[cols]
; Headers of columns
; Attention \' for quotes ...
col_1="Dataserver"
col_2="Date"
col_3="Database"
col_4="Owner"
col_5="TableName"
col_6="Size in Mo"

[format]
; Format of columns : string, number or date
col_1="string"
col_2="date"
col_3="string"
col_4="string"
col_5="string"
col_6="number"
Nuvola apps information.png
Note:
Lorsque vous avez un problème de génération,
vous pouvez utiliser les flags suivants dans la section [db] :
'''debug=true'''
'''debug_before_connectdb=true'''
'''debug_connectdb_error=true'''
.