'

Outils pour utilisateurs

Outils du site


accueil

Les bases de données temporelles

Le principe de données temporelles est le suivant, chaque entrée est un horodatage et une valeur, souvent numérique. Exemple :

  • 1455475000 : 12
  • 1455475600 : 40
  • 1455476200 : 49

Il existe de nombreuses solutions pour stocker ce genre de données dans une base. Cet article s'intéressera seulement à quelques unes :

Ces trois outils sont utilisables avec collectd qui permet de collecter des données systèmes et grafana qui permet de créer des tableaux de bord.

rrdtool

rrdtool est la solution la plus ancienne. L'outil crée des bases de données « tournantes ». On définit le nombre de points, la période entre chaque point et les vieilles données poussent les anciennes. Rrdtool permet de stocker la moyenne, le minimum et maximum en agrégeant les données. Garder un point toutes les 10 secondes sur un an nécessite 3139000 points, on a donc tendance à agréger.

Les avantages

  • robuste, stable, éprouvé
  • rapide : implémentation en C

Les inconvénients

  • les fichiers de base de données ne sont pas portables : un fichier créé sur une machine 32 bits ne fonctionne pas sur 64 bits et inversement
  • Impossible de mettre à jour d'ancienne données : si on entre un valeur pour le 14 février 2015 à 20h00, on ne peut plus entrer aucune valeur avant cette date
  • Le protocole client serveur pour mettre à jour ou interroger les données n'est pas très utilisé
  • Pas d'API HTTP native pour interroger les données
  • Pas d'outil web natif pour faire des graphes. Il existe de trop nombreuses solutions, pas toujours simples

Graphite supporte les fichiers rrdtool. Cela apporte l'API HTTP et la possibilité de créer des graphes simplement.

graphite

Graphite a été implémenté pour pallier des inconvénients de rrdtool.

Le premier inconvénient était l'impossibilité de gérer un cache pour écrire les données. Au moment de la création de graphite, rrdtool écrivait chaque donnée immédiatement ce qui nécessitait de nombreuses petites écritures sur le disque. graphite propose un système de cache pour faire les écritures plus eficaces. Depuis, rrdtool propose cette fonctionnalité avec rrdcached.

Graphite permet de mettre à jour d'anciennes données ce que ne permet pas rrdtool. Je ne trouve pas cette fonctionnalité indispensable.

Graphite se compose d'une une application en Python Django qui gère les tableaux de bord et l'API et d'un moteur qui écrit et lit les données : carbon. Il existe une implémentation de carbon en langage go. Le projet annonce des performances nettement supérieures.

Avantages

Inconvénients

influxdb

Influxdb est le dernier arrivé. Il est écrit en go, langage réputé pour sa rapidité et très en vogue pour les outils système. Le développement est très (trop) dynamique.

Avantages

  1. Rapide, notamment sur Rapsberry pi
  2. Si les promesses sont tenues, une occupation disque très efficace
  3. Influxdb intègre un serveur collectd et graphite, il implémente également un https://docs.influxdata.com/influxdb/v0.10/write_protocols/line/serveur texte simple. Ceci permet à Influxdb de recevoir des données de multiples sources sans rien avoir à modifier

Inconvénients

  • Le langage de requête que je trouve beaucoup moins simple que celui de Graphite mais plus puissant
  • L'API et le langage de requête qui ont pas mal changé d'une version à l'autre
  • L'entreprise derrière Influxdb a tendance a vouloir réinventer beaucoup de roues pourtant éprouvées : telegraph pour remplacer collectd, chronograph pour grafana.

Personnellement, le point 1 m'a fait préférer Graphite et le 3 pose question.

Conclusion

En terme de performance, Influxdb semble bien meilleur mais tout le monde n'a pas des dizaines de milliers de données à stocker. Pouvoir lui envoyer des données via plusieurs protocoles est un gros avantage en cas de migration.

En terme d'usage, Graphite et son API sont vraiment pratiques mais les performances sur Rapsberry Pi semblent limitées même avec peu de données.

Pour le moment, j'utilise collectd + graphite + grafana. J'ai testé influxdb mais j'ai trouvé que la peinture était encore un peu fraiche, ça manque de finition.

Le 14/02/2016 à 23:15 · sylvain

Quelques applications ownCloud

J'utilise ownCloud depuis quelques années maintenant. L'outil propose quelques applications par défaut comment le calendrier, la gestion des contacts et de fichiers et il est possible d'ajouter des applications supplémentaires listée sur un site dédié apps.owncloud.com.

Pour compléter les fonctions d'ownCloud, j'ai installé et adopté récemment :

  • Le webmail Rainloop passé sous licence AGPLv3 récemment et qui a avantageusement remplacé Roundcube dans mon usage quotidien
  • Le lecteur de flux RSS News m'a fait abandonner Tiny Tiny RSS dont jétais pourtant fan depuis de lonononongues années
  • un client XMPP qui fonctionne avec prosody
  • L'étonnant GPX Viewer extended qui permet d'afficher ses fichiers GPX sur un fond de carte OpenStreetMap tout en ajoutant diverses informations sur le parcours : vitesse moyenne, altitude, etc.

L'installation et la mise à jour de ces applications n'est pas encore complètement intégré. Il faut manier tar. Le résultat est tout a fait satisfaisant. J'ai été par exemple très agréablement surpris par GPX Viewer extended et je conseille de jeter un œil au webmail Rainloop. Il mériterait d'être mieux intégré à ownCloud mais c'est vraiment un très bon début en attendant le client mail « officiel » de ownCloud qui n'est pas terminé.

Le 27/05/2015 à 21:22 · sylvain · 0 Pas de commentaires

Paquets amd64 sur une Debian i386

J'ai eu besoin d'installer des paquets Debian amd64 sur une installation Debian i386. C'est possible avec uniquement quelques commandes et un redémarrage. Debian, c'est vraiment un système pour les admin paresseux ;-).

J'ai écrit une petite doc pour ceux que cela intéresse.

Le 14/08/2014 à 21:40 · sylvain

Extraire des pièces jointes avec mu

Imaginons que vous ayez plusieurs mails (au hasard 28) et que chaque mail contiennent une pièce jointe. Pour détacher chaque pièce jointe, on peut « cliquer » plusieurs fois ou… utiliser mu (paquet Debian maildir-utils). Ce logiciel libre permet de faire quelques opérations bien pratiques sur des dossiers de messagerie au format Maildir.

En utilisant mu il est possible d'extraire les informations des messages et les pièces jointes. J'ai choisi d'extraire ces pièces jointes dans un répertoire par expéditeur. Voilà ce que ça donne (il faut lancer la commande depuis le répertoire Maildir qui contient les messages à traiter) :

tmpdir=/tmp/mail
for mail in *
do
    email=$(mu view $mail | grep From | sed -e 's/From: //' -e 's/.*<//' -e 's/>.*//')
    dir="$tmpdir/$email"
    mkdir -p "$dir"
    mu extract --save-attachments --target-dir="$dir" $mail
done

Le répertoire /tmp/mail va contenir un répertoire par expéditeur avec toutes les pièces jointes de chaque message. En combinant avec un carnet d'adresse, il est possible de renommer ces pièces jointes pour qu'elles portent le nom de l'expéditeur.

C'est pratique et rapide.

Le 27/11/2013 à 23:34 · sylvain

Le corbeau et le renard by Scratch

[[http://scratch.mit.edu/|Scratch]] est une implémentation visuelle et dynamique du langage de programmation Smalltalk basé sur Squeak

(source Wikipédia Scratch).

Cette implémentation permet de « créer des histoires, des jeux et des animations » de manière ludique avec des enfants, ou des grands ;-). Il y a des tas d'exemples. Vous pouvez également consulter ma modeste version de la fable de la Fontaine « le corbeau et le renard » (sous licence WTFPL).

Voilà ce que donne l'interface :

Interface de Scratch

Petit bémol : la version 1.4 est téléchargeable et utilisable sous différents systèmes d'exploitation mais la v2 nécessite Adobe AIR :-(. Il existe aussi une version en HTML5 qui fait chauffer mon PC…

Amusez-vous bien !

Sylvain et son fiston

Le 18/11/2013 à 00:12 · sylvain

Anciens billets >>

accueil.txt · Dernière modification: Le 10/02/2015 à 23:58 par sylvain