Flux

14/10/2021

InfluxDB et les alertes : Tasks, Checks et Notifications

CérénIT vient de finaliser la migration pour un de ses clients d’un socle InfluxDB/Chronograf/Kapacitor vers InfluxDB2. Ce billet est l’occasion de revenir sur la partie alerting et de la migration de Kapacitor vers des alertes dans InfluxDB2. Dans le cadre du socle InfluxDB/Chronograf/Kapacitor, le fonctionnement était le suivant : Les utilisateurs créent une alerte via l’application métier en définissant un à plusieurs critères d’alertes ; ex: est-ce que l’unité est opérationnelle et est-ce que l’humidité est supérieure à tel taux ou la température supérieure à telle valeur. L’application métier traduisait l’alerte en TickScript et enregistrait l’alerte auprès de Kapacitor via son API HTTP Kapacitor, en mode streaming, évalue si l’alerte doit être levée ou pas au fur et à mesure de l’arrivée des données En cas de seuil franchi, Kapacitor envoie un message à l’application métier via l’API HTTP de cette dernière. L’application métier envoie ensuite un mail et/ou un SMS à l’auteur de l’alerte. Avant d’envisager la migration InfluxDB2, un point de vocabulaire :

influxdb timeseries influxdata task flux check notifications kapacitor alertes
20/11/2020

InfluxDB 2.0 OSS - Notes de mise à jour

InfluxDB 0SS 2.0 étant sortie, j’ai testé la mise à jour d’une instance 1.8.3 vers 2.0.1 sur une VM Debian 10 à jour. Mise à jour La documentation pour une mise à jour 1.x vers 2.x est disponible. La vidéo “Path to InfluxDB 2.0: Seamlessly Migrate 1.x Data” reprend cela et va plus loin en présentant bien tous les points à prendre en compte (y compris pour Telegraf, Chronograf et Kapacitor). Je ne rajouterai donc que mes remarques. Concernant la commande influxd upgrade : Il est fort probable qu’il faille rajouter la commande sudo pour ne pas avoir de problèmes de permisisons. Par défaut, les données migrées vont être mises dans ~/.influxdbV2. Or je doute que vous vouliez que vos données soient à cet endroit. Je vous invite donc à regarder la documentation de influxd upgrade pour définir les propriétés --engine-path et --bolt-path Exemple:

timeseries influxdb flux grafana telegraf
05/11/2020

Calcul de la durée d'un état avec des timeseries

Un client m’a demandé la chose suivante : “Nicolas, je voudrais savoir la durée pendant laquelle mes équipements sont au delà d’un certain seuil ; je n’arrive pas à le faire simplement”. Souvent, quand on manipule des séries temporelles, la requête est de la forme “Sur la période X, donne moi les valeurs de tel indicateur”. On a moins l’habitude de travailler dans le sens inverse, à savoir : “Donne moi les périodes de temps pour laquelle la valeur est comprise entre X et Y”. C’est ce que nous allons chercher à trouver. Influx 1.8 et InfluxQL Avec l’arrivée imminente d’Influx 2.0, j’avoue ne pas avoir cherché la solution mais je ne pense pas que cela soit faisable purement en InfluxQL.

timeseries influxdb flux warp10 warpscript duration
29/07/2020

Web, Ops & Data - Juillet 2020

Cloud Gestion automatisée de certificats TLS avec Let’s Encrypt via Terraform et Ansible sur AWS : exemple d’utilisation du provider acme avec terraform pour la génération et le déploiement d’un certificat Let’s Encrypt dans un contexte AWS. Custom Variable Validation in Terraform 0.13 : introduite en version expérimentale en 0.12.20, la validation personnalisée de variable sera stable en v ersion 0.13. De quoi valider ses ressources plus simplement. Avec l’acquisition d’OpenIO, OVHcloud se donne pour ambition de créer la meilleure offre de Stockage Objet du marché : acquisition d’OpenIO par OVHCloud. OpenIO fournit une solution de stockage compatible S3 et apparemment OVHVloud et OpenIO étaient habituées à travailler ensemble notamment autour de Swift (le stockage objet dans Openstack). Intéressant de voir ce type d’acquisition en Europe d’une part et de voir qu’OVHCloud remonte dans la chaine de valeur et rentre de plus en plus dans le monde du logiciel. A suivre ! Container et orchestration Announcing Maesh 1.3 : Maesh continue son chemin et ajoute la capacité de surveiller des namespace particuliées (en plus de pouvoir en ignorer), le support du lookup des ports (http -> 80), le support de CoreDNS chez AKS et d’autres améliorations encore. Electro Mpnkeys #9 – Traefik et Maesh : de l’ingress au service mesh avec Michael Matur : si vous voulez en savoir plus sur Traefik et Maesh, je vous conseille cet épisode (et les autres) du podcast Electro Monkeys. Introducing Traefik Pilot: a First Look at Our New SaaS Control Platform for Traefik : Containous, la société derrière Traefik, Maesh et Yaegi sort son offre SaaS pour piloter et monitorer ses instances traefik. Un système de plugins pour les middleware fait également son apparaition. Il faut une version 2.3+ (actuellement en RC) de Traefik pour bénéficier de cette intégration. Relicensing Stash & KubeDB : KubeDB, l’operateur de bases de données et Stash, l’outil de sauvegarde se cherchent un modèle économique et changent de licence. La version gratuite, avec code source disponible, reste disponible pour des usages non commerciaux (voir les détails de la licence pour une slite exacte). Pour un usage commercial, il faudra passer par la version Entreprise qui apporte aussi des fonctionnalités supplémentaires. Suse to acquire Rancher : Suse était sorti de mon radar; c’est donc pour moi l’entrée (ou le retour ?) de Suse dans le monde de kubernetes et de son orchestration. Est-ce une volonté d’aller prendre des parts de marchés à Redhat/Openshift ou de faire face à des rumeurs telles que Google en discussion pour acquérir D2IQ (ex Mesoshphère) ? A voir si cette acquisition va être un tremplin pour Rancher et ses différents projets (rke, rio, k3s, longhorn, etc) comme l’indique son CTO ou pas. Time Series QuestDB nabs $2.3M seed to build open source time series database : QuestDB, historiquement issue du monde du trading à haute fréquence, commence à faire parler d’elle (notamment en récupérant un des DevRel d’InfuxData David G Simmons et vient de lever 2.3 millions de dollars. Elle a une approche SQL sur le traitement des données, se veut performante. A voir si elle reste une spécialiste de la série temporelle financière ou si elle parvient à s’ouvrir à d’autres usages. InfluxDays 2020 Virtual Experience : les vidéos et supports des InfluxDays sont disponibles. Paris Time Series Meetup #5 : De retour des InfluxDays et FLoWS : Résumé des keynotes autour des annonces produits des InfluxDays et présentation de FLoWS, la nouvelle syntaxte proposée par SenX pour interagir avec Warp10, en alternative à WarpScript. Le but est de faciliter la courbe d’apprentissage autour de Warp10. FLoWS est déjà disponible sur la sandbox et sera disponible cet été ou à la rentrée dans la version 2.7.0 de Warp10. Grafana v7.1 released: New features for InfluxDB and Elasticsearch data sources, table panel transformations, and more : grosse nouvelle version mineure de Grafana avec son lots d’amélioration et de nouveautés. Je vous laisse lire l’annonce. How to Build Grafana Dashboards with InfluxDB, Flux and InfluxQL : A l’occasion de la sortie de Grafana 7.1 qui apporte le support de Flux, présentation des nouveaux modes d’interaction entre Grafana et InfluxDB Vie privée & données personnelles Le Privacy Shield, l’accord entre l’Europe et les USA sur le transfert des données des Européens vers les USA (ou les sociétés américaines) vient d’être invalidé par la cour de justice européene. Les flux “absolument nécessaires” peuvent continuer à se faire pour le moment et la cour a validé “les clauses contractuelles types” définies par la Commission Européenne pourront être utilisées par les entreprises. Néanmoins, pour s’y référer, il semble qu’il faut vérifier que l’entreprise protège effectivement les données. Je vous invite à contacter votre juriste ou avocat pour mieux appréhender les impacts de cette invalidation si vous utilisez les plateformes cloud et des services dont les entreprises sont basées aux USA. En tant qu’individu, il peut être intéressant de se poser des questions également. N’étant pas juriste, je vais donc limiter mon interprétation ici et vous laisse lire les liens ci-dessous.

terraform acme letsencrypt influxdb influxdays questdb timeseries rancher suse stash kubedb maesh warp10 warpscript flows ptsm rgpd safe-harbor données personnelles grafana flux
06/02/2020

Paris Time Series Meetup - Edition 4 et 3

L’édition 4 du Paris Time Series Meetup s’est tenue hier soir. J’ai eu le plaisir d’accueillir David McKay, Developer Advocate InfluxData, qui est venu nous présenter la plateforme InfluxDB 2.0, le nouveau langage Flux et l’outil de collecte Telegraf (et les bonnes pratiques associées). Vous pouvez d’ores et déjà retrouver les vidéos en ligne ; les présentations sont en anglais : Let’s meet InfluxDB & Flux The Telegraf toolbelt Et pour les ressources complémentaires mentionnées par David McKay : rawkode/influxdb-examples rawkode/bring-your-own-telegraf rawkode on Speakerdeck Concernant l’édition 3 sur TSL et RedisTimeSeries, initiallement prévue en décembre 2019 et replanifiée le 21 janvier, elle aura finalement lieu le mercredi 25 Mars chez OVHCloud. Pour alimenter votre attente et comme indiqué dans le dernier billet de veille mensuelle, OVHCloud a publié erlenmeyer et vient de publier un billet de blog sur le sujet : TSL (or how to query time series databases).

timeseries influxdb meetup ptsm telegraf flux tsl redistimeseries redis
29/01/2020

Web, Ops & Data - Janvier 2020

Meilleurs voeux à tous pour cette nouvelle année ! Cloud OVHcloud Object Storage clusters support S3 API : pour ceux qui ne voulaient pas aller chez OVH car leur système de stockage objet est basé sur Openstack/Swift et ne voulaient pas modifier leurs appels d’API S3, une bonne nouvelle : le stockage objet d’OVH Cloud supporte l’API S3. Container & Orchestration Managing the TICK Stack with Docker App : cet article aurait pu être dans la section Time Series mais le focus étant sur Docker et Docker App, il sera dans la section Container. L’article montre comment déployer la stack TICK (Telegraf, InfluxDB, Chronograf et Kapacitor) tout d’abord via un fichier docker-compose.yml et ensuite il montre les apports de Docker App, qui permet d’avoir un niveau de personnalisation supplémentaire. Ainsi, on peut avoir un seul fichier docker-compose.yml de référence et auquel on rajoute un fichier avec des propriétés par environnement ou par client ou par instance par ex. Une combinaison intéressante pour améliorer l’industrialisation de vos containers. Kubernetes 1.17 disponible sur l’offre kubernetes managé d’OVHCloud DevOps/SRE The 3 Myths of Observability : l’observabilité ne va pas directement baisser votre nombre d’incidents, l’observabilité n’est pas qu’une suite d’outils et elle n’est pas gratuite. Outillage delta : pour améliorer le rendu de vos diff et certaines commandes git (diff, show, log, stash, reflog). L’outil est réalisé en rust. Cela donne un rendu à la github/gitlab dans votre console. Sympa ! Raspberry Pi faasd - lightweight Serverless for your Raspberry Pi : si vous jugez k3s encore trop gros pour vos raspberry pi pour faire tourner OpenFaaS ou que vous ne voulez pas déployer du kubernetes, vous pourriez trouver la solution du coté de faasd. Une implémentation du projet basée sur containerd (le runtime utilisée par Docker) HypriotOS v1.12.0 : la distribution optimisée pour Raspberry Pi et fournissant Docker arrive en version 1.12. Elle permet d’utiliser Docker sur tous les modèles de Raspberry (0, 1, 2, 3, 4) avec les dernières versions de docker, docker-compose et docker-machine. SQL Améliorez votre SQL : utilisez des index filtrés : Postgresql permet de définir des index filtrés : plutôt que de créer un index sur toutes les données d’une table, vous pouvez définir un index qui répond à un filtre et ne faire un index que sur ce sous-ensemble de données. Time Series Grafana v6.6 Released : nouvelle version de Grafana avec comme d’habitude plein d’améliorations à tous les étages (data source, panels, alerting, explore, etc) Release Announcement: Flux VSCode Support : InfluxData a publié une extension VSCode pour le langage flux. InfluxDB 2.0 Open Source Beta Released : InfluxData passe la version OSS d’iInfluxDB 2.0 en béta après une année de versions alpha. On y trouve notamment une approche Configuration As Code avec la possibilité de définir des Tasks, Dashboards, ainsi que de la configuration via des Manifest en YAML et un système de packages. Flux, le nouveau langage de requêtage continue à s’améliorer et enfin le transpiler InfluxQL vers Flux fait son entrée mais demande à s’améliorer au fil du temps. La beta 2 est sortie aussi. telegaf warp10 output : la prochaine version de Telegraf supportera nativement Warp10. Erlenmeyer: Time Series query translator : OVHCloud vient d’opensourcer le code de leur proxy en go qui leur permet de parser des requêtes de différentes bases de données time series (OpenTSDB, PromQL, Prometheus Remote Read, InfluxQL et Graphite) en Warpscript pour requêter les données stockées dans Warp10. Pour rappel, la solution OVHMetrics est basée sur Warp10. Le traitement et l’utilisation de la data dans l’industry 4.0 : SenX, la société éditrice de Warp10, a réalisé une vidéo intéressante sur le traitement et l’utilisation de la data dans l’industrie 4.0. On y voit notamment les 4 niveaux de maturité quant à la donnée et le rôle d’une base de données temporelles dans ce contexte. Un billet de blog (en anglais) est également disponible.

timeseries cloud ovh s3 object storage delta git diff faas containerd raspberrypi influxdb vscode flux warp10 observabilité docker cnab postgresql grafana
25/07/2018

Web, Ops & Data - Juillet 2018

Architecture Goodbye Microservices: From 100s of problem children to 1 superstar : L’article fait pas mal de “bruit” en ce moment mais je ne suis pas sur qu’ils arrivent à la bonne conclusion au final ; Partir de microservices et multiples dépots gits pour revenir à un monolithe/mono dépot git, j’ai l’impression que la réponse au travers des outils n’adresse pas le problème de fond à savoir la gouvernance de l’ensemble. En effet, si les versions différaient tant que cela, l’approche centralisé a peut être mis un terme en forçant tout le monde à se rencentrer sur une version donnée mais s’il n’y a pas de règles, le résultat sera le même prochainement mais ils auront moins de liberté. Miniservices as a Realistic Alternative to Microservices : du coup, pour réduire les frictions, certains proposent de faire des micro-services plus gros avec le risque d’arriver à plein de moyens monolites… Je mets donc pour rappel cet article que j’ai déjà mentionné : Enough with the microservices. Il rappelle que c’est surtout la modularité et une architecture propre du code qui donne de la flexibilité. Et puis tout le monde n’a ni le contexte, ni la maturité pour se lancer dans les micro-services. Automatisation Ansible 2.6: Your Time Has Come! : une version de consolidation avec des améliorations coté cloud et surtout sur l’utilisation de la mémoire lordque l’on utilise les “Dynamic Includes”. Container et Orchestration Blog: Kubernetes 1.11: In-Cluster Load Balancing and CoreDNS Plugin Graduate to General Availability : Kubernetes continue son travail de consolidation et de stabilisation. Service Mesh: Promise or Peril? : si les service mesh peuvent paraitre attrayant, leur intégration n’est pas forcément évidente et il faut aussi prévoir cette couche intermédiaire dans le développement de votre application. Leur utilisation n’est donc pas toujours recommmandée/souhaitable - l’article propose de faire le point sur le sujet. Container Native Development with Ralph Squillace : cet épisode de podcast petmet d’avoir une présentation d’Helm (package manager), Bridage (gestion de workflow kubernetes) et Draft (aide à la conteneurisation d’une app). D’autres outils sont mentionnés en fin d’épisode pour agrémenter son quotidien (extension vscode, etc). Extending Support Cycle for Docker Community Edition : A l’occasion de la sortie de Docker CE 18.06, quelques ajustements : les versions stables sortiront tous les 6 mois maintenant (et plus tous les 3 mois) et avec une période de maintenance de 7 mois, le canal edge (monthly release) est arrêté au profit d’un canal nightly, docker for Windows/Mac gardent une release mensuelle (pour le canal edge), plus de packaging par distribution pour mieux coller à l’actualité de la distribution. Dataviz Grafana v5.2 Released : L’alerting est disponible sur ElasticSearch, Builds ARM officiels, amélioration de la sécurité (support des secrets docker, gestion des mots de passe admin), amélioration coté InfluxDB et Prometheus, etc. Mapocalypse : Migrer depuis Google Maps, Maintenant 1/2 et Mapocalypse : Migrer depuis Google Maps, Maintenant 1/2 : si la partie 1 remet en contexte l’augmentation de tarifs de Google Maps, le second a pour intérêt de présenter et d’expliquer le fonctionnement des solutions alternatives. DevOps Une décennie DevOps, quels enseignements tirer ? : synthèse globale et assez factuelle sur 10 ans de DevOps qui a le mérite de signaler les points où ce n’est pas encore ça. Courage, la transformation/l’adoption est en cours malgré tout. (No)SQL Select all columns except one in MySQL? : Cela peut toujours être utile de le savoir… Timeseries Release Announcement: InfluxDB 1.6.0 OSS : InfluxData sort la version 1.6 de sa base de données temporelles avec comme améliorations significatives : fonctions supplémentaires sur InfluxQL, Accélération des backups via un meilleur parallélisme des tâches et l’arrive de la gestion du “back pressure” pour éviter la congestion lors des écritures. Flux (#fluxlang): a new (time series) data scripting language : présentation à date du design et des fonctionnalités de Flux (ex IFQL) Why We’re Building Flux, a New Data Scripting and Query Language : Paul Dix, CTO d’InfluxData revient sur les raisons de la création du langage flux et pourquoi SQL n’a pas été retenu. Chronograf 1.6 Released: Introducing Log Viewer and Additional Sharing Capabilities : J’en parlais le mois dernier, Chronograf se dote d’un visualiseur de log (log viewer) et semble aller plus loin que ce qui était annoncé dans la plateforme d’ingestion de logs. Les autres nouveautés tournent autour du partage des dashboards avec des tiers.

grafana kubernetes service-mesh ansible brigade helm draft sql devops architecture microservice flux tick influxdb docker chronograf fluxlang

Besoin d'un C(P)TO / Architecte « hands-on » ?

On orchestre, on conçoit — et on code aussi. Parlons de votre plateforme, vos données ou votre projet IoT.

Contactez-nous