Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

Archives juillet 2018

On va tous mourir

Rédigé par dada / 29 juillet 2018 / 23 commentaires


Oui, c'est du Cyrille BORNE. Complètement, même.

Je lisais son article autour de la vie des blogueurs libristes et des sites francophones traitants de Linux et du Libre. Il revient sur la difficulté de trouver des nouveaux acteurs dans la francophonie libriste. Les anciens blogueurs disparaissent, les nouveaux n'émergent pas vraiment et plus personne n'aborde les sujets simples comme l'arrivée de la dernière version de bidule ou la mise à jour de machin. Bref, on va tous mourir.

L'anglais

L'anglais est devenu un problème : les nouveaux francophones qui débarquent dans la jungle d'Internet et qui décident de prendre leur courage à deux mains pour y pondre des billets ne le font plus en français. C'est l'anglais qu'ils utilisent. On a perdu le combat de la langue. Écrire en français n'intéresse plus grand monde. C'est triste mais ça se confirme assez facilement. J'ai en tête la venue du jeune Angristan dans la blogosphère et dont le dernier billet en français date de février alors que le dernier billet en anglais date de ce chaud mois de juillet. C'est un exemple, mais ça illustre l'idée que j'ai des nouveaux arrivants : pas de français, c'est lu par trop peu de monde, place à l'anglais.
Est-ce que c'est un mal ? J'en sais rien. Je sais que ça m'attriste terriblement. Personnellement, je me force toujours à tout écrire en français par simple esprit de provocation. Ma série d'articles sur Prometheus n'a aucun intérêt pour celles et ceux qui maîtrisent la langue de Shakespeare. Même si je vulgarise à mort, rien de ce que j'écris n'est difficilement trouvable sur des sites anglophones.
J'ajoute qu'il ne faut pas oublier qu'on vit dans ce que certains appellent maintenant une Startup Nation. Alors, doucement, ce vocabulaire et cette déclaration sont très récents, mais ces idées se sont imposées par des années de mode à 2€ : on va speaker l'anglich plutôt que le français. La force de frappe culturelle de la Silicon Valley a fait mal, très mal.

L'admin et l'élitisme

L’activité de la blogosphère francophone est effectivement marquée par l'administration système. La faute à quoi ? J'en sais rien. Les blablateurs dont je fais partie sont issus d'une génération formée à l'administration ? Le français est-il plus intéressé par la mise en place de briques logiciels que par l'analyse de la position d'un bouton ou du choix du dernier thème pour Ubuntu ? Aucune idée. Ce que je remarque, c'est que l'activité autour de l'ActvityPub prend vraiment chez nous, mais là encore, les gens en parlent en anglais.
Bon, la presse classique et grand public en parle dans notre bonne vieille langue : Le Monde, 20Minutes, etc. Mais là, on sort de l'ambiance blog.

L'élitisme ? Je me souviens avoir lu des articles autour de cette théorie qu'on appelle "La peur du professeur". Je ne retrouve plus mes sources, tant pis pour moi mais je vais tout de même en parler. En France, l'erreur est vue comme un danger dès le plus jeune âge. Les enfants sont rabroués quand ils se trompent. Durement. À la longue, on se retrouve avec des jeunes adultes qui n'osent plus prendre une plume ou lever la main pour dire ce qu'ils ont à dire : la peur de se faire éclater est vive, bloquante. Ce n'est pas la raison ultime qui explique l'absence de nouveaux venus, mais ça doit fortement jouer. Tout blogueur s'est pris des volées de bois verts. Faut s'accrocher pour continuer et assumer. Il faut croire que nos amis anglo-saxons n'ont pas ce problème, ou dans une proportion moindre. Le français est autant attaché à la forme qu'au fond. Les anglo-saxons tolèrent peut-être mieux une forme maladroite quand le fond est bon. Qui sait ?

Les réseaux sociaux

Grand débat que l'usage des réseaux sociaux. Je sais que je suis un gros consommateur de Mastodon. Je n'ai jamais accroché à Twitter, mais Mastodon : oui. Pourquoi ? L’administration : j'ai monté mon instance, du coup, je m'en sers.
Les autres, je les vois de temps en temps passer dans mes statistiques. La dernière fois, c'était de la faute de Korben. Il a partagé un de mes billets sur ses machins et je me suis retrouvé avec des visiteurs venant de Facebook. Ils sont arrivés comme ils sont partis, sans trop penser à demain (Miossec). Un coup d’œil à mes graphiques sur mon Matomo (anciennement Piwik) me laisse de marbre : même pas un petit pic alors qu'ils ont débarqués par centaines. Qu'en conclure ? Les gens restent dans leurs Timelines et n'en sortent pas, ou peu. C'est un problème si on se met à considérer qu'un utilisateur de Facebook ou de Twitter est un gars ou une nana issu du libre, mais non. Les gens vont et viennent quand un titre est assez vague ou provocateur pour les attirer. Il n'y a que le Journal du Hacker pour vraiment drainer du monde. Là, ça vient pour de vrai. On ne peut pas voir les réseaux sociaux comme quelque chose de bon ou de mauvais. On ne peut que simplement dire qu'ils sont cloisonnants et peu enclin à créer du lecteur. On lit ce qu'on voit passer sur Facebook et Twitter dans Facebook et Twitter. On n'en sort que par accident.
Avec le protocole ActivityPub et toutes les interactions qui sont en train de se mettre en place, je pense qu'on va pouvoir dire qu'une partie du problème est en phase d'être résolu. Dans mon billet sur la Fédiverse, j'ose dire que ce langage commun va permettre des passerelles entre plusieurs mondes : les amateurs de photos vont passer par Pixelfed pour échouer sur Mastodon et y découvrir des instances Peertubes. J'en suis persuadé. Là où ça coince, c'est, comme toujours, le contenu. J'en parlais ici. Il faut que nous mettions tout ça en branle. Ça ne tient qu'à nous, vraiment. Est-ce qu'on va rameuter la Terre entière sur Mastodon ? Je ne l'espère pas, y'a bien trop de choses dont je me fous royalement, mais on peut espérer un peu plus de diversité quand même. Qu'on se le dise, il y en a, de la diversité, sur Mastodon : du dessinateur à la cosplayeuse en passant par l'administrateur ou le fan de moto, on en trouve. La norme reste tout de même l'utilisateur de Linux, le libriste.

Avenir

Ma boule de cristal me laisse entrevoir une chose : l'ActivityPub. Ce machin peut être à l'origine d'une synergie de dingue. Ce que je veux dire, c'est que nous devons être à l'origine d'une mode, une nouvelle mode, qui sera à l'origine d'un renouveau. J'en rêve. On a déjà le microblogging avec Mastodon, la musique avec Funkwhale, les photos avec Pixelfed et bientôt Reddit avec Prismo, les simples blogs avec Plume. On a vraiment de quoi remuer la torpeur dans laquelle la blogosphère francophone s'est installée.

Enfin voilà, j'ai éclaté mon record de mots. C'est du gros blablatage. Je vais m'arrêter là. Au plaisir de vous lire depuis Mastodon.

Classé dans : Édito / Mots clés : aucun

Un Exporter Prometheus pour Mastodon

Rédigé par dada / 27 juillet 2018 / Aucun commentaire


English ? Run to my Gitlab. Comments are in english.


Mon dernier billet ne laissait pas trop de doute sur mes activités du moment : du python, Prometheus et l'API de Mastodon sont bien les signes avant-coureurs de l'arrivée d'un Exporter ! Dans cette liste, j'ai pris le temps d'ajouter un peu de Grafana et du Docker, histoire de bien faire les choses, avant de vous ouvrir l'accès à mon dépôt Git.

Le poids des mots, le choc des photos

Pour reprendre le slogan de Paris-Match, voici une capture d'écran de la bête dans Grafana :

Ce que vous voyez ci-dessus est un exemple de dashboard Grafana. Un exemple. Vous pouvez faire bien mieux, j'en suis certain, et le partager.

Ce que l'Exporter permet de récupérer

  • Les comptes actifs
  • Le nombre d'instances connues
  • Le nombre total de comptes sur l'instance
  • Le nombre total de toots
  • Le nombre d'inscriptions pour la semaine courante
  • Le nombre de toots par semaine
Alors, oui, ce n'est pas grand chose, mais ça nous permet de récupérer des statistiques publiques et d'en faire des beaux graphiques avec la stack la plus chouette du moment ! J'ai enfin viré Munin :-)

Utilisation sans Docker

Clonez les sources où bon vous semble :
git clone http://git.dadall.info/prometheus/mastodon.git
Installez les dépendances :
pip3 install -r requirements.txt
Lancez la bête en ayant bien défini l'URL de votre instance dans les sources :
python3 instance_exporter.py

Utilisation avec Docker

Il va vous falloir créer l'image Docker :
docker build -t mastodon-exporter .
Et vous pourrez lancer un conteneur en ajoutant l'URL de votre instance en paramètre :
docker run -d -e MASTODON_HOST="https://instance.url/" -p 9410:9410 mastodon-exporter
Vous trouverez un exemple de dashbord pour Grafana, histoire de tout mettre en couleur, dans le dépôt.

Vous pouvez maintenant suivre l'activité de votre instance : foncez mettre ça en place avant le prochain afflux d'utilisateurs pour voir les courbes réagir : les données qui transitent sur Mastodon sont tellement nombreuses qu'il faut vraiment qu'il y ait une vague de nouveaux pour faire visiblement bouger les lignes !

Voilà

Si vous avez des retours, n'hésitez pas à passer par les commentaires ou Mastodon, à lâcher des pouces bleus et partager la vidéo.

Des bisous,

Comment prendre un peu de Python pour faire un Exporter Prometheus

Rédigé par dada / 20 juillet 2018 / 2 commentaires



Faire un Exporter Prometheus, c'était un défi qui traînait dans ma longue-liste-des-choses-à-faire depuis longtemps. J'ai enfin mis les mains dedans. C'est moins terrifiant qu'on le croit, à condition de vouloir faire des choses simples. Voici donc quelques lignes pour vous expliquer comment s'en sortir.

Du Python 3

Il est possible de faire des Exporters dans un nombre dingue de langages. Pour des questions de curiosité et d'envie, j'ai choisi de le faire en Python, version 3. En plus, Prometheus fournit une bibliothèque qui va bien.

Une API

Un Exporter est capable d'interroger, entre autre, des API. Pour l'exemple et parce ce que j'avais envie de mieux connaître mon instance Mastodon, c'est l'API de l'alternative à Twitter que vous allez croiser ci-dessous.

La logique globale

Un Exporter, pour faire très simple, c'est un bout de code coincé dans une boucle infinie.
Oui, très simple.
Il va récupérer de l'information et la transmettre à Prometheus, puis récupérer de l'information et la transmettre à Prometheus, puis récupérer de l'information...

Exemple

Ici, on va pondre un bout de code qui va aller récupérer le nombre de comptes que je follow sur Mastodon :
r = requests.get("https://diaspodon.fr/api/v1/accounts/1")
data = json.loads(r.content.decode())
metric = Metric('following_count', 'Number of following account', 'gauge')
metric.add_sample('following_count', value=data["following_count"], labels={})
yield metric
Ce qu'il faut comprendre :
- La variable r contient le retour de l'appel à l'API Mastodon.
- La variable data contient en utilisable le JSON contenu dans r.
- La variable metric contient les données exploitables par Prometheus.

C'est la ligne qui est vraiment cruciale :
metric.add_sample('following_count', value=data["following_count"], labels={})
Les choses importantes :

- following_count sera le nom que vous pourrez retrouver dans Prometheus pour afficher la donnée
- value sera la valeur retournée quand vous appelez following_count

Lancer la boucle infinie

On va coincer ce bout de code dans une boucle :
class JsonCollector(object):
    def __init__(self):
        pass

    def collect(self):

        url = mastodon_host + 'api/v1/accounts/1'
        r = requests.get(url)
        data = json.loads(r.content.decode())
        metric = Metric('following_count', 'Number of following account', 'gauge')
        metric.add_sample('following_count', value=data["following_count"], labels={})
        yield metric

if __name__ == "__main__":
    start_http_server(9400)
    REGISTRY.register(JsonCollector())
    while True: time.sleep(1)
Et c'est tout quant à la création d'un Exporter ! Retrouvez le lien vers le code complet en fin de ce billet. Ou . Pour plus de visibilité, j'ai volontairement caché les modules à inclure.

Comment valider que ça fonctionne ?

Un curl et tout va :
root@server ~ # curl localhost:9400
# HELP following_count Number of following account
# TYPE following_count gauge
following_count 552.0

Brancher l'exporter à Prometheus

Tout va se faire, comme d'habitude, dans le prometheus.yml.

  - job_name: 'mastodon'
    static_configs:
      - targets: ['localhost:9400']
On ajoute le job, la target avec son port et on reload la bête.

Notez que j'ai utilisé le port 9400 dans mon exemple. C'est un choix personnel : vous pouvez le changer s'il est déjà utilisé par un de vos services.

Enfin, si tout s'est bien passé, vous devriez pouvoir appeler la variable following_count dans Prometheus !


Vous trouverez un snippet avec l'intégralité du code par ici.

Je retourne à mon code. Vous vous doutez bien qu'avez tout ça, il y a moyen de faire un bel Exporter complet pour Mastodon !

Des bisous,

Et si on parlait Fédiverse ?

Rédigé par dada / 14 juillet 2018 / 11 commentaires


De mon point de vue, ces derniers mois est apparue une dynamique incroyable dans le monde libriste. Le point de départ de cette dynamique ? Mastodon, le Twitter dont on peut se servir les yeux fermés. Le détail qui fait que ça tient dans la durée ? La langue utilisée : ActivityPub.

Au départ, nous n'avions que Mastodon, rejoint ensuite par Peertube, puis PixelfFed, puis Plume et enfin Prismo. Ces noms ne vous disent rien ? C'est normal, tout est encore en cours de développement et seuls les courageux font tourner ces applications. Patience.

Pourquoi je trouve que c'est une dynamique incroyable ? Quand Facebook parle le Facebook et Twitter le Twitter, les applications dont je vous parle se sont mises d'accord pour parler l'ActivityPub. Elles ont ceci de génial qu'elles parlent le même langage.

Une vidéo vous plaît ? Remerciez son créateur depuis votre Mastodon. Le résultat ?

Sur Framatube :


Sur Mindpalace :


Ce qu'il faut comprendre ?

- Les deux captures d'écran proviennent de deux instances Peertube différentes (Framatube / Mindepalace)
- Les commentaires proviennent de 3 instances Mastodon différentes ( Framapiaf / Mamot / Diaspodon )
- Ces commentaires sont visibles sur ces 5 bouts d'internet différents !

Et ça, c'est tout simplement incroyable. Le pire, c'est qu'il s'agit d'un exemple limité. Seulement 5 bouts d'Internet entrent en jeu. Seulement.

D'ici quelques jours, Pixelfed sortira de son autarcie pour rejoindre la Fédiverse. Même s'il est actuellement possible de s'en servir (depuis mon instance, par exemple, ou celle de Valère), l'application n'est pas bavarde sur la Fédiverse.
Lorsqu'un de vos amis postera une photo sur cet Instagram honnête, vous en serez averti sur Mastodon et vous pourrez interagir avec, toujours parce que ces deux choses parlent l'ActivityPub.

Que dire de Plume ? Ce moteur de blog vous permettra de partagez vos écrits sur la Fédiverse, de citer directement des gens dans vos billets et de laisser les gens publier des commentaires depuis Mastodon. Le tout en toute transparence.

Prismo devrait aussi entrer dans ce grand capharnaüm : un Reddit dans la Fédiverse ! Vous voulez partager mon article (parce qu'il est franchement génial, n'est-ce pas ?) sur Prismo, les utilisateurs de Mastodon seront au courant et pourrons interagir !

Ce qui se profile devant nous est tout simplement génial.