Timelion : la composante chronologique de Kibana
Je compile actuellement une démo de Kibana et je me dis : j'aimerais tellement pouvoir faire plus avec les données chronologiques dans Kibana. Au même moment, j'étais en train de travailler sur une nouvelle syntaxe d'expression pour Kibana : et s'il existait une façon de décrire les requêtes, les transformations et la visualisation en un seul endroit, et une seule ligne ? Le lendemain je devais prendre un vol transatlantique et j'avais un plan : un mini hackathon mobilisant une personne pendant la durée d'un vol dans le but de concevoir une expérience qui s'attaque à la fois aux cas d'utilisation « chronologie » et « expression ».
Lorsque j'ai atterri à Houston, j'avais une syntaxe, des graphiques et quelques fonctions très simples. Quelques heures de brainstorming plus tard et j'étais à Phoenix avec les réponses aux questions que je n'avais même pas pu poser auparavant :
- Combien de pages un utilisateur unique voit-il au fil du temps ?
- Quelle est la différence entre ce vendredi et vendredi dernier ?
- Quel pourcentage de la population japonaise a visité mon site aujourd'hui ?
- Quelle est la moyenne glissante sur 10 jours du S&P 500 ?
- Quelle est la somme cumulée de toutes les recherches faites depuis les deux dernières années ?
Avec Timelion, tout cela est possible et bien plus encore. Timelion est un projet Elastic {Re}search sur les données chronologiques, mais c'est bien plus qu'une simple expérimentation : c'est un outil totalement utilisable. Par vous. Dès maintenant.
Vous avez dit Elastic {Re}search ?
{Re}search est le labo d'Elastic sur les technologies de pointe. {Re}search est notre terrain de jeu, le bac à sable qui voit s'élever nos châteaux les plus ambitieux. Les projets {Re}search sont lancés par les ingénieurs d'Elastic qui souhaitent partir sur une idée, voir ce que ça donne et la partager. Les projets lancés sous la bannière {Re}search englobent nos prochaines révolutions, dans des packs que vous pouvez utiliser aujourd'hui. Certains sont indépendants, et d'autres des plugins et extensions pour nos produits existants. Nous vous invitons à les installer, les tester et nous faire part de vos expériences avec {Re}search : voilà pourquoi ils existent, pour recueillir votre avis sur nos idées.
Voici Timelion
Timelion, prononcé "Timeline", réunit des sources de données totalement indépendantes dans une seule interface, obtenue grâce à un langage qui tient en une ligne et qui associe récupération des données, combinaison chronologique et transformation plus visualisation. Chaque expression Timelion commence avec une fonction identifiant la source de données. Par exemple .elasticsearch(*)
(ou .es(*)
en raccourci). C'est aussi simple que ça. Prendre en compte tout ce qui se trouve dans Elasticsearch au fil du temps. Un jeu d'enfant. Comme vous pouvez le voir, les fonctions commencent toujours par un point ".". Comment faire pour répondre à la première question énoncée : « Combien de pages un utilisateur unique voit-il au fil du temps ? ». Je pourrais représenter les deux parties ensemble sur le même graphique, en les séparant par une virgule, mais il y a une meilleure façon de faire...
On peut faire mieux que deux fonctions individuelles, on peut enchaîner les fonctions ! Ce que je veux vraiment faire, c'est diviser les impressions totales par le nombre d'utilisateurs uniques. FACILE. Ce que l'on fait ici c'est de dire : prenons le total, divisons chaque point dans cette série par chaque point dans cette série de champs d'utilisateurs que j'envoie vers .divide()
Ça on peut le faire, mais on peut faire mieux encore :Timelion peut interroger d'autres sources de données, en utilisant la même syntaxe. Par exemple, l'API des données de la Banque mondiale. Les séries peuvent même être regroupées en listes avec des parenthèses et une fonction appliquée au groupe. Toutes les sources de données peuvent recevoir un argument de décalage par exemple = -1M pour comparer le mois dernier comme s'il avait lieu maintenant. Timelion peut même adapter les séries aux intervalles irréguliers sur une référence, ce qui vous permet par exemple de diviser des séries Elasticsearch précises à la seconde près par des données annuelles de la Banque mondiale.
Il devient alors possible de faire son choix parmi des sources variées, en restant dans la même expression. Nous pouvons ainsi répondre à des questions insensées comme « Quel pourcentage du PIB américain le chiffre d'affaires de mon entreprise représente-t-il sur l'année en cours ? » Et si ce chiffre est trop grand, pourquoi ne pas partager les résultats avec votre vieux copain Rashid ? Je plaisante. Quoi que...
En pratique
Il existe 25 fonctions différentes, des fonctions simples comme l'addition et la division aux moyennes glissantes, sommes cumulées et dérivées. Ceci dit, les fonctions et sources de données de Timelion sont entièrement modulables et très faciles à écrire. Nous acceptons toutes les propositions de nouvelles fonctions, alors à vos claviers !
Allez-y c'est permis
Mais je ne vais pas tout dévoiler ici. Timelion lancera un tutoriel pour vous aider dans votre configuration et pour certaines fonctions simples, à vous de découvrir le reste !
L'installation est facile, exécutez-le, redémarrez le serveur de Kibana et rafraîchissez votre navigateur : ./bin/kibana plugin -i kibana/timelion
. Vous pouvez aussi l'essayer sur Found, la meilleure version Elasticsearch hébergée de l'histoire de l'univers, et c'est gratuit : Found par Elastic.
Utilisez-le, sans limite.
Une fois installé, une nouvelle icône apparaît dans Kibana, qui permet d'ouvrir l'outil de changement d'appli et de rentrer d'autres applications.
Si vous nous avez rejoint pour la tournée Elastic{ON} vous avez déjà vu cette vidéo. Si vous n'étiez pas là, eh bien, je pense que vous avez compris la leçon ? Vous devriez peut-être vous inscrire pour Elastic{ON}16 ?
Gardez un œil sur ce blog pour recevoir des conseils et astuces. N'oubliez pas de consulter le compte Twitter d'Elastic pour ne rien manquer des nouveautés. Vous avez une idée géniale ? Vous avez écrit une fonction Timelion qui mérite le détour ? Dites-le nous sur GitHub.