Giter Site home page Giter Site logo

lpouillo / kwapi-g5k Goto Github PK

View Code? Open in Web Editor NEW

This project forked from openstack-archive/kwapi

4.0 4.0 2.0 2.62 MB

Experimental Testbed Distributed Monitoring Framework

Home Page: http://kwapi-g5k.readthedocs.org

License: Apache License 2.0

Python 38.98% Shell 0.93% CSS 8.07% JavaScript 46.00% HTML 5.68% Puppet 0.33%

kwapi-g5k's People

Contributors

allen57 avatar clement-parisot avatar dmargery avatar jd avatar lpouillo avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

kwapi-g5k's Issues

[LIVE] Génération des graphiques sur le client

Générer les graphiques sur le client via une bibliothèque Javascript.

  • Trouver une bibliothèque supportant les fichiers RRD actuels et le formatage des arguments
  • Rendre les RRD disponibles au téléchargement
  • S'assurer de la performance de la nouvelle solution
  • Intégrer la solution aux template actuel

[LIVE] SVG instead of PNG ?

Les fichiers SVG apporte l'avantage qu'ils ne sont pas compressés comme le sont les fichiers PNGs. On peut effectuer des zooms et les fiichiers SVG sont parfois plus légers.

La question ne se pose pas si l'on utilise une bibliothèque Javascript pour le rendu. On aurait alors le choix entre d'autres formats de sortie (Canvas par exemple).

Fix memory leak

Occurs on rennes, reims, nancy, not on lyon. A leak in SNMP driver ?

[LIVE] Summary cache problems when there is missing files

Quand des fichiers RRD sont manquants (drivers ne renvoyant pas de données pour une sonde donnée), le résumé du site n'est jamais récupéré dans le cache mais regénéré à chaque fois.

Beaucoup de fichiers PNG inutiles (car identiques) sont présent dans /tmp à cause de ça.
Il faudrait vérifier la valeur de la propriété cachable lorsqu'il s'agit d'un résumé.

[HDF5] Job field request doesn't work for power multiprobes or network probes

Si l'on exécute cette commande:

curl -kn https://api.grid5000.fr/sid/sites/reims/metrics/power/timeseries/?job_id=1234

On obtient aucun résultat si les noeuds du job sont:

  • Power:
    • des noeuds multiprobes
  • Network_in ou network_out:
    • n'importe quelle requête

Message d'erreur:

2015-01-28 10:22:02 - INFO - _internal - 172.16.79.118 - - [28/Jan/2015 10:22:02] "GET /power/timeseries/?job_id=604063 HTTP/1.0" 500 -
2015-01-28 10:23:00 - ERROR - hdf5_collector - group ``/`` does not have a child named ``/nancy/griffon_9``
2015-01-28 10:23:00 - ERROR - hdf5_collector - group ``/`` does not have a child named ``/nancy/griffon_71``
2015-01-28 10:23:00 - INFO - _internal - 172.16.79.118 - - [28/Jan/2015 10:23:00] "GET /network_in/timeseries/?job_id=604063 HTTP/1.0" 200 -
2015-01-28 10:23:30 - ERROR - hdf5_collector - group ``/`` does not have a child named ``/nancy/griffon_9``
2015-01-28 10:23:30 - ERROR - hdf5_collector - group ``/`` does not have a child named ``/nancy/griffon_71``

Exemple Nancy:

  • Job: 604063
  • Noeuds: griffon-9, griffon-71
  • Identifiants HDF5:
    • Power: griffon_5_6_7_8_9_10_11_12_13_14_15_16_17_18_19_20_21_58_59, griffon_65_66_67_68_69_70_71_72_73_74_75_76_77_78_79_80_81_82_83_84
    • Network: griffon_9__sgriffon1, sgriffon1__griffon_9, griffon_71__sgriffon3, sgriffon3__griffon_71
  • Identifiants de la requête:
    • Power: griffon-9, griffon-71
    • Network: griffon-9, griffon-71

Les identifiants interrogés sont différents de ceux présents dans le fichier HDF5.

Cela est dû à la façon dont le fichier HDF5 est interrogé. L'identifiant dans la base de donnée HDF5 peut différer du simple identifiant de sonde.

incoherence in KWAPI

from cruiz

Hello,

I've just noted an incoherence in the KWAPI API. When executing the following request:

$curl -kn "https://api.grid5000.fr/3.0/sites/rennes//metrics/network_in/timeseries/?from=1450370360&to=1450370860&only=paranoia-3"
{
"items": [
{
"from": 1450370360,
"links": [
{
"href": "/sid/sites/rennes/metrics/network_in/timeseries/paranoia-3",
"rel": "self",
"type": "application/vnd.fr.grid5000.api.Timeseries+json;level=1"
},
{
"href": "/sid/sites/rennes/metrics/network_in",
"rel": "parent",
"type": "application/vnd.fr.grid5000.api.Metric+json;level=1"
}
],
"resolution": 1,
"timestamps": [
1450370362.236516,
1450370364.270576,
1450370365.856885,
1450370368.721628,

I'm able to get the data without any problem. However, the REST links are incoherent. They point to the sid version even though I use the version 3.0 of the API to perform the request.

[GANGLIA] Allow kwapi to push datas in Ganglia

Ganglia monitore déjà de nombreuses données dans Grid'5000.
Kwapi pourrait pousser les données qu'il récupère dans le Ganglia de chaque site.

Il faut écrire un plugin kwapi-ganglia qui envoie via multicast au bon format les informations des drivers récupérées.

[HDF5] Corriger le problème de format de l'API (/sid//site)

Dans l'API on a:

  "items": [
    {
      "links": [
        {
          "href": "/sid//sites/reims/timeseries/stremi-23",
          "rel": "self",
          "type": "application/vnd.fr.grid5000.api.Timeseries+json;level=1"
        },
       ...
        ],
    },
  ],
  "links": [
    {
      "href": "/sid//sites/reims",
      "rel": "parent",
      "type": "application/vnd.fr.grid5000.api.Metric+json;level=1"
    }
  ],

On devrait avoir: /sid/sites/reims à la place de /sid//sites/reims.

[Log] Too many logs filled memory when NFS is unreachable

A Sophia, la VM de kwapi s'est arrétée car son disque était plein. La raison est un fichier de log trop gros sur la machine qui a rempli le disque (plusieurs Giga en quelques jour).

Kwapi-rrd n'arrivant pas à écrire dans les fichiers RRD, un message d'erreur était écrit plusieurs fois par seconde.

La solution serait:

  • réduire le niveau de verbosité de kwapi
  • mettre en place un système de rotation de logs (logrotate)

[LIVE] Network global summary from sites is wrong

La valeur de bande passante affichée sur le résumé globale du site pour le réseau est fausse.
On a une moyenne de plusieurs Pb/s (Petabits/s) sur le site de nancy.

Une erreur est sans-doute présente dans le calcul via rrdtool (fichier kwapi-g5k/kwapi/plugin/live/live.py)

Trouble with debian packaging or service installation

insserv: warning: script 'kwapi' missing LSB tags and overrides
insserv: There is a loop between service minidlna and kwapi if stopped
insserv: loop involving service kwapi at depth 2
insserv: loop involving service minidlna at depth 1
insserv: Stopping kwapi depends on minidlna and therefore on system facility `$all' which can not be true!
insserv: exiting now without changing boot order!
update-rc.d: error: insserv rejected the script header

[API][GANGLIA][HDF5] Power measure are not aggregated anymore

Dans la version 1.0, les valeurs d'énergie correspondant au même nom de sonde ne sont plus agrégées. Exemple: graphite-1 à nancy.

En effet, l’agrégation se fait sur le probe_id et non sur le probe_name.

Doit-on:

  1. garder les deux mesures distinctes au niveau driver et les réunir ensuite dans les plugins (ce qui est déjà fait pour le live). Ceci implique de modifier les plugins pour sommer les mesures qui correspondent. Cela ne semble pas trivial (somme des mesures ayant un timestamp identique ?)
  2. Faire comme avant et n'envoyer qu'une mesure avec les drivers correspondant à la somme des mesures des sondes ?
  3. Modifier les fichiers de configuration: associer le même probe_id aux sondes dont on veut agréger les données:
    AVANT:
[pdu1]
probes=[pdu1.1, pdu1.2, pdu1.3]
probes_names=[nancy.graphite-1, nancy.graphite-1, nancy.graphite-2]

MAINTENANT

[pdu1]
probes=[pdu1.1-2, pdu1.1-2,pdu1.3]
probes_names=[nancy.graphite-1, nancy.graphite-1, nancy.graphite-2]

Dans ce cas les mesures de pdu1.1 et pdu1.2 sont toujours sommées sous le nouveau nom pdu1.1-2. Cela devrait fonctionner au niveau plugin.

[Conf] Problem with link aggregation

L'aggregation de lien peut poser problème dans Kwapi.
Actuellement:

  • Les traffics interswitchs n'apparaissent pas lorsque l'on trace le graphique de SW1 ou SW2.
  • Chaque aggégation de lien créé une nouvelle entrée dans la liste des sondes qui ne correspond à rien (exemple sw02 au luxembourg)

Le script de configuration kwapi-g5k-conf créé différentes entrée pour chacun des liens. Si 2 switchs sont reliés par 2 câbles on aura alors:

  • dans SW1-IN
    • SW1_SW2-A: lien 1 de SW1 vers SW2
    • SW1_SW2-B
  • dans SW1-OUT
    • SW2-A_SW1
    • SW2-B_SW1
  • dans SW2-IN
    • SW2_SW1-C
    • SW2_SW1-D
  • dans SW2-OUT
    • SW1-C_SW2
    • SW1-D_SW2

Or dans la topologie on a:

  • voisins de SW1: SW2
  • voisins de SW2: SW1

En construisant les données, kwapi créé de nouvelles entrées SW2-A, SW2-B, SW1-C, SW1-D au lieu d'aggréger les données comme lien interswitch.

Objectifs:

  • Identifier les liens interswitchs pour ne pas créer de nouvelles entrées buggées
  • S'assurer que la topologie est en accord avec le format Switch-PortAggree
    • Récupérer les ports aggréés dans l'API (ils n'apparaissent pas dans la topologie execo)
    • Créer un nouveau voisin pour les switchs. On aurait alors:
      • voisins de SW1: SW2-A, SW2-B
      • voisins de SW2: SW1-C, SW1-D
  • Ne pas compter les aggrégations de lien dans le résumé de site (traffic interswitch non pertinent).

[RRD] Clean rrd.conf configuration file

Plusieurs paramètres de rrd.conf sont désormais inutiles, le plugin RRD ne faisant que stocker les metriques et ne générant plus les graphiques.
Un nettoyage s'impose.

[RRD] Export to zip file is broken

L'exportation des fichiers rrd sous la forme d'un zip est cassé depuis la dernière version de Kwapi.
L'objectif serait:

  • identifier via le cookie les probes sélectionnées par le client
  • identifier la métrique visualisée par le client
  • récupérer l'ensemble des fichiers RRD correspondants
  • générer les graphiques pour toutes les échelles (minute, heure, jour, année)
    • par sonde
    • en cumulé (résumé)
  • récupérer le nom des sondes correspondant aux fichiers
  • zipper ces fichiers avec une hiérarchie
    • png
      • diférentes échelles
        • 1 png par sonde
        • 1 résumé
    • rrd
      • tous les fichiers

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.