Serveurs Statuts sur JoL.

Répondre
Partager Rechercher
Je vous présente une version beta d'un afficheur du statut des serveurs.

Celle-ci, étant en beta comme précisé, n'est pas sur d'être 100% fonctionnelle et réaliste.

En effet il faut interprêter ce fichier: http://probes.funcom.com/ao.xml et ensuite generer l'affichage en fonction des valeurs.

Hors Funcom n'as jamais fourni de documentation sur ce fichier, et sur comment interpreter les valeurs.

La version actuelle montre de manière sûr:

-Si un serveur est online, boule verte.
Si il offline, boule rouge.

-Idem pour les serveur de chat, zone et login.

-Idem pour les playfield, si une playfield est en idle, boule rouge aussi, je peux pas gerer mieux actuellement.

-La charge, verte dans le cas tout vas bien.
Orange, si ca va mal ou très très mal... (il me manque certaines valeurs ici, je ne peux donc actuellement indiquer de manière précise celle-ci).

-La répartition Omni/Clan/Neutre.

-Le pourcentage de joueurs par rapport au nombre de joueurs total sur le serveur par playfield (le total fait pas 100% et c'est normal, car il y a les indors playfield que FC ne fourni pas).

Donc en l'état actuel, je traite la totalité des infos du fichier XML de funcom conçernant le statut des serveur.

Voila le lien vers mon appli: https://ao.jeuxonline.info/statuts
Bravo Thekkeht c'est superbe. Mais je n'ai pas trop compris ton affaire de 4° dimension Et dis moi, Jobe Plateforme apparais systématiquement en rouge, même dans ton ancienne version ... hors je suis sur d'être passé par Jobe Plateforme alors que ton ancienne version l'indiquait tout rouge ... tu peux m'en dire plus ou c'est un mystère pour toi aussi ?
Funcom fourni un fichier xml de stats pourri, ca va comme réponse .

Sinon si tu va voir le fichier xml a l'oeil nu, tu vois que ces zones on un statut 2 je crois au lieu de 1, donc je sais pas.

Les 4 dimensions c'est un tableau, dans un tableau, dans un tableau, dans un tableau ca fait 4d.
non, ils ne donnent de "docs" avec..
ca fait quelques mois que j'avais fais le mien, je l'avais limite
a Rimor uniquement, puisque Phoenix ne joue que sur Rimor.
Mais le fichier XML est assez explicite:
Code:
<?xml version="1.0"?>
<aostats version="0.6" timestamp="2004-02-23 17:54:31 UTC">
    <dimension name="d1" display-name="Atlantean" loadmax="2" locked="0" players="100%">
        <servermanager status="1"/>
        <clientmanager status="1"/>
        <chatserver status="1"/>
        <playfield id="505" name="Avalon" status="1" load="0" players="0.4%"/>
        <playfield id="540" name="Athen Old" status="1" load="0" players="5.7%"/>
        ...
Pour ma part, je me contente d'affichier le status des instances de
Rimor ainsi que les zones qui sont down au moment de la consultation,
c'est a dire, une fois toutes les 5 minutes (crontab)

Je peux poster le code en shell si ca interresse quelqu'un..
Pour ma part, il me sert a checker le status des servers lors des
patchs.. La version a Thek est surement plus efficace que la
mienne, puisque le shell ne se prete pas tellement aux traitements
de chaines, et encore moins au XML

Les histoires de status, c'est pas clair.. 0 voudrait dire inactif, mais
pas down, 1 voudrait dire up'n'running. 2 .. aucune idee.
le load, la charge de la zone telle que je le comprends.. dans
le range de 0 et de "loadmax" (definition de la dimension). Si
le paramettre load == loadmax, toutes les chances du monde que
cette zone soit overcrowded, et risque de crasher (peut etre ?)

enfin, avec l'abscence de reelle doc sur ces valeurs, c'est de la
speculation gratuite

tijup..
Pour le moment je gère ce que je connais dans le script.

A propos de la doc c'est en cours, mon mail à été transmit au gars qui gère le site, en esperant que il lache les infos, sinon je vais insister .

Pour le moment mon script n'est qu'une simple lecture du fichier, stockage dans un tableau, puis recrashage en HTML, mon but était principalement d'obtenir la lecture et le stockage complet du fichier xml dans un tableau, qui peut être réutilisé ensuite facilement .
oui. ton script doit etre surement mieux que le mien, mais je ne
fais que de l'affichage brut, je ne prevois pas d'en faire autre
chose
http://ao.phoenix-fr.org/cgi-bin/server2.cgi

Code:
#!/bin/sh
# il y a 56 lignes / dimensions.. 
# 
# affiche l'etat de Rimor.. tanne d'aller voir ca sur AO stratics.. trop de frames.
# tijup.. 08 dec 2003
#
echo "Content-type: text/html"
echo
echo "<HTML>"
echo
echo "<HEAD> <Title> RIMOR STATUS </Title></HEAD>"
echo
echo "<BODY bgcolor=\"#CBCCB8\" LINK=\"#7777FF\" ALINK=\"#7777FF\" VLINK=\"#7777FF\">"
echo


FILE="/tmp/ao.xml"
TEMPLATE="/tmp/templ_dim"
RIMOR="/tmp/newRimor"

__date__=`cat $FILE | grep aostats | cut -d '"' -f 4 | grep -v "/"`

start_at=`cat  -n $FILE | grep Rimor | awk '{print $1}'`
end_at=`echo $start_at | awk '{print $1+81}'`

head -$end_at $FILE | tail -$(($end_at-$start_at+1)) > /tmp/newRimor

server=`cat $RIMOR | grep servermanager | cut -d '"' -f 2| awk '{printf("%s", ($1==1)?"UP":"DOWN");}'`
chatserver=`cat $RIMOR | grep chatmanager | cut -d '"' -f 2 | awk '{printf("%s", ($1==1)?"UP":"DOWN");}'`
loginserver=`cat $RIMOR | grep clientmanager | cut -d '"' -f 2 | awk '{printf("%s", ($1==1)?"UP":"DOWN");}'`
omni=`cat $RIMOR | grep omni | cut -d '"' -f 2`
clan=`cat $RIMOR | grep clan | cut -d '"' -f 2`
neut=`cat $RIMOR | grep neutral | cut -d '"' -f 2`

echo "<table border=1>"
echo "<td> Dimension </td> <td>"$server"</td><tr>"
echo "<td> Login servers </td> <td>"$loginserver"</td><tr>"
echo "<td> chat servers </td> <td>"$loginserver"</td><tr>"
echo "<td center>Repartition<td><tr>"
echo "<td> OMNI </td> <td> "$omni"</td><tr>"
echo "<td> CLAN </td> <td> "$clan"</td><tr>"
echo "<td> NEUTRAL </td> <td> "$neut"</td><tr>"
echo "</table>"

echo "Playfields: <BR>"
cat $RIMOR | grep playfield | awk -F'"' '{ if ( $6 == 0 ) {printf ( "%s - %s\n",$4, ( $6==1 ) ?"UP":"DOWN/weird") ;}}'

echo "<BR>"
echo "Last update: "$__date__
le ao.xml est genere par une crontab aux 5 minutes.
Pour les playfields, je ne sais pas.. j'affiche seulement ceux qui
sont en etat 0.. donc, inactif/down/whatever ..
J'ai modifie ce matin le script, quand j'ai constate que les zones
SL ont ete ajoutee .. en decembre, elles n'y etaient pas encore.

Comme tu vois, c'est relativement simple, mais c'est brutal,
c'est pas un parsing en Lexx, c'est du grep/awk .. bourrin
L'avantage, c'est qu'il va passer partout (sur tout site web unix)
et qu'il ne depends pas de modules perl/php, tres utile quand
une site se balade de provider en provider

Mais contrairement a ta version, ce script n'evoluera pas, il n'est
pas prevu pour, et ne se prete pas a ca, il n'est meme pas maleable
pour de vue presentation. je voulais un truc tres rapide a afficher,
et pas un machin perdu dans les n frames, ou truc du genre, que
ao-stratics utilise. c'est d'une lenteur desesperante a afficher chez
moi.. (browser sur une machine unix exportant le display sur
ma workstation via le tunnel ssh et 2 firewall.)

tijup...
J'ai pas utilisé les fonctions xml php pour lire le fichier, car ca me semblais, dans le cas de ce fichier plus compliquer à gerer et long a traiter.

En fait nos script doivent fonctionner de la meme façon, division des lignes par -> ".

En php, ensuite je récupère les résulats dans un tableau, ainsi je redivisise par -> " pour avoir le resultat propre que je stock dans un tableaux final.

Pour le moment je met pas de codes .
morgoth# ntpdate ntp1.videotron.net ntp2.videotron.net
23 Feb 15:31:29 ntpdate[24082]: step time server 205.151.222.251 offset 581.354045 sec
morgoth# date
Mon Feb 23 15:31:35 EST 2004

ao.xml:
<aostats version="0.6" timestamp="2004-02-23 22:11:30 UTC">

y a un glitch quelque part.. ca devrait etre 20h30 UTC/GMT
et il y a un decalage de 1h30 dans leur clock..

Pour le code, t'en fais pas moi ca m'a pris un gros 5 mins a
ecrire le code, 5 de plus pour formater l'output. J'ai rien investi
en temps ni en travail, c'est un truc vite fait, dans un langage tres
simple, donc, mon code je peux le "donner".. c'est du domaine
publique dans mon cas

tijup..
Vraiment bien sympa, merci a toi thek.

Si je peux faire une request pour la prochaine version :
- Possibilité de trier les zones par population, charge, status, et name (asc et desc, en cliquant sur le nom de la colonne). Ce serait vraiment bien pratique pour voir d'un coup d'oeil les zones à eviter, et les zones les plus peuplées.

Rooh a peine le truc sorti y'a déjà des sagouins qui demandents des updates... Ah bravo !!

Edit : Ah oui et une légende pour les ronds de couleur (vert orange rouge) ca serait pas mal (si y'en a déjà une alors elle est pas assez accessible )
Citation :
Provient du message de Toupix
Vraiment bien sympa, merci a toi thek.

[...]

Rooh a peine le truc sorti y'a déjà des sagouins qui demandents des updates... Ah bravo !!

[...]
Les utilisateurs sont d'éternels insatisfait, d'ailleurs les utilisateurs sont les gros flaws de l'informatique moderne c'est bien connu
Yep, mais l'utilisateur a toujours raison au final... C'est bien ca le probleme des informaticiens modernes

M'enfin là ce sont juste des idées d'ameliorations. Selon comment ca a été fait ca devrait pas représenter de (trop) grosses modifs, et puis c'est pas impératif. Je pense que tout dev aime bien qu'on lui donne des idées pour son produit, qu'elles soient réalisables ou pas. Ca aide a cerner les différentes attentes possibles. A mes débuts au boulot, je faisais que des codes super fermés, presques impossibles à ameliorer après. Au fur et à mesure, on apprends à tout prévoir pour des améliorations futures pas trop compliquées, ca économise du temps
Citation :
Provient du message de Toupix
Yep, mais l'utilisateur a toujours raison au final... C'est bien ca le probleme des informaticiens modernes
Houla, cela dépends des utilisateurs là ... mais normalement si tu pratiques un développement orienté utilisateurs, ben oui ...
Citation :
M'enfin là ce sont juste des idées d'ameliorations. Selon comment ca a été fait ca devrait pas représenter de (trop) grosses modifs, et puis c'est pas impératif. Je pense que tout dev aime bien qu'on lui donne des idées pour son produit, qu'elles soient réalisables ou pas.
Ben un feedback constructif est toujours agréables, et j'ai fait le mien j'avoue, mais ailleurs
Citation :
Ca aide a cerner les différentes attentes possibles. A mes débuts au boulot, je faisais que des codes super fermés, presques impossibles à ameliorer après. Au fur et à mesure, on apprends à tout prévoir pour des améliorations futures pas trop compliquées, ca économise du temps
Ben cela s'apprend aussi à l'école, non ? moi j'ai eut des cours de Génie logicielle plutôt pas mal, mais c'est vrai qu'une expérience pour se sensibiliser a ce type de problème sera toujours meilleurs que la théorie....
Citation :
Provient du message de Toupix
Vraiment bien sympa, merci a toi thek.

Si je peux faire une request pour la prochaine version :
- Possibilité de trier les zones par population, charge, status, et name (asc et desc, en cliquant sur le nom de la colonne). Ce serait vraiment bien pratique pour voir d'un coup d'oeil les zones à eviter, et les zones les plus peuplées.

Rooh a peine le truc sorti y'a déjà des sagouins qui demandents des updates... Ah bravo !!

Edit : Ah oui et une légende pour les ronds de couleur (vert orange rouge) ca serait pas mal (si y'en a déjà une alors elle est pas assez accessible )
Dans une prochaine version oui c'est envisageable.

Je sais déjà trier des tableaux multidimensionel en php.
Bon Toupix, j'ai inclu ta demande.

Actuellement:

tri part défaut: Nom de zones.

Tri possible: Statut, Nom, Charge, Population, puis ensuite tri par nom de zone.

Afin d'assurer un tri cohérent (parce que ce sont des chaines) sur la population, j'ai du formater les pourcentages en xx.x%.

Evolution envisagé: les tri croissant/décroissant.
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés