OpQL
De ISPWiki.
Sommaire |
Fonctionnalités
OpQL est un langage-micro à gérer oProxy. La syntaxe simule SQL.
Syntaxe de programme
Le programme contient des requêtes séparant par point-virgule (non-obligatoire après la dernière requête).
Commandes
stop daemon
La requête stop daemon stoppe le processus oProxy.
show workers
Cette requête affiche le statut de tous les processus.
show nodes http
La requête reçoit le statut des noeuds backend de HTTP.
show nodes mysql
La requête reçoit le statut des noeuds backend de MySQL.
show traffic http
Recevoir le trafic en fonction des hosts-HTTP qui n'a pas été déjà envoyé dans les logs.
show traffic mysql
Recevoir le trafic en fonction des utilisateurs-MySQL qui n'a pas été déjà envoyé dans les logs.
reset traffic
Remettre au zéro le trafic.
set param "value"
Veuillez spécifier la valeur du fichier de configuration "Param" dans la valeur "value" sans le redémarrage du serveur-proxy. Par exemple: si vous souhaitez changer la valeur de la temporisation KeepAlive dans HTTP:
set keepalive_http "1.5"
start SAVE_QUERY
Veuillez commencer à enregistrer l'information sur les requêtes à HTTP/MySQL dans le log fichier indiqué (voir. syntaxe SAVE_QUERY).
Les requêtes sous cette condition seront enregistrées dans le log fichier indiqué. C'est utile pour le débogage du chargement du site approprié ou de l'utilisateur-MySQL.
stop SAVE_QUERY
Stopper enregistrer l'information sur les requêtes appropriées (voir. syntaxe SAVE_QUERY). La requête indiquée sera supprimée de la liste.
show queries
La requête affcihe la liste de requêtes activées de SAVE_QUERY.
Syntaxe SAVE_QUERY
SAVE_QUERY := NOMBRE_DE_CHAMPS from <http|mysql> [where CONDITION] into file NOM_DE_FICHIER
LISTE_DE_CHAMPS := EXPRESSION [, LISTE_DE_CHAMPS]
EXPRESSION :=
EXPRESSION OPERANDE D'OPERATION EXPRESSION
| ( EXPRESSION )
| FONCTION ( LISTE_D_'_ARGUMENTS )
| CHAMP
| CHIFFRE
| LIGNE
OPERANDE D'OPERATION := + | - | * | /
CHAMP := current_time | time | received | sent | host | uri | user | query
CONDITION :=
CONDITION OPERANDE_D_'_OPERATION_LOGIQUE CONDITION
| ( CONDITION )
| not CONDITION
| EXPRESSION
OPERANDE_D_'_OPERATION_LOGIQUE := > | < | = | >= | <= | <> | !=
NOM_DE_FICHIER := LIGNE
LIGNE := " ligne " | ' ligne '
NOMBRE :=
chiffres
| chiffres . chiffres
| . chiffres
| chiffres .
FONCTION := ligne
LISTE_D_'_ARGUMENTS := EXPRESSION [, EXPRESSION]
Information sur le champ
oProxy reçoit les données de la requête.
- current_time
- le temps local courant - quand la requête arrête d'exécuter
- time
- le temps en secondes qui a passé entre l'envoi de la requête-backend et le début de la réception des données (temps de requête)
- received
- le nombre de bytes du client
- sent
- le nombre de client au client
- host
- le nom de site requêté. Il est applicable seulement pour les requêtes "from http"
- uri
- l'adresse url requêtée. Il est applicable seulement pour les requêtes "from http"
- user
- le nom d'utilisateur-MySQL identifié. Il est applicable seulement pour les requêtes "from mysql"
- query
- le premier nombre de bytes de la requête-MySQL (N ne dépasse pas de valeur du fichier de configuration max_mysql_query_length_save). Il est applicable seulement pour les requêtes "from mysql"
Fonctions disponibles
concat (séparateur, argument1, argument2, ...)
Cela intégre tous les arguments dans la ligne en installant le séparateur entre ces éléments.
replace (expression régulière, remplacement, ligne)
Cela remplace toutes les sous-lignes <ligne> coïncidentes dans l'expression régulière <expression régulière> par <remplacement>.
Exempels
- Recevoir l'information sur les travailleurs:
show workers
- Recevoir l'information sur les travailleurs et puis arrêter oProxy:
show workers; stop daemon
- Commencer à enregistrer l'adresse-url requêtée et le temps de réponse dans la fichier /tmp/test.com:
start save uri, time from http into file '/tmp/test.com'
- Commencer à enregistrer l'adresse-url requêtée et le temps de réponse en minutes dans le fichier /tmp/test.com:
start save uri, time/60 from http into file '/tmp/test.com'
- Commencer à enregistrer le temps courant, le nombre de bytes envoyés et la requête-MySQL dans le fichier /tmp/root si le temps est supérieur à un seconde:
start save current_time, sent, query from mysql where time > 1 into file "/tmp/root"
- Commencer à enregistrer les requêtes-MySQL durant plus que 10 heures et le nom d'utilisateur-MySQL qui n'est pas de root dans le fichier /tmp/not_root:
start save query from mysql where (time > 10*3600 and user!="root") or sent<100 into file '/tmp/not_root'
- Ajouter la requête "save uri, time from http into file '/tmp/test.com'" et supprimer "save uri, time/60 from http into file '/tmp/test.com'":
start save uri, time from http into file '/tmp/test.com'; stop save uri, time/60 from http into file '/tmp/test.com'
