<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Aurélien Hebert, Author at Clever Cloud</title>
	<atom:link href="https://www.clever.cloud/fr/blog/author/aurelien-hebertclever-cloud-com/feed/" rel="self" type="application/rss+xml" />
	<link></link>
	<description>From Code to Product</description>
	<lastBuildDate>Thu, 27 Nov 2025 15:28:02 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://cdn.clever-cloud.com/uploads/2023/03/cropped-cropped-favicon-32x32.png</url>
	<title>Aurélien Hebert, Author at Clever Cloud</title>
	<link></link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>GlitchTip sur Clever Cloud, une alternative à Sentry</title>
		<link>https://www.clever.cloud/fr/blog/fonctionnalites/2022/06/21/glitchtip-sur-clever-cloud-une-alternative-a-sentry/</link>
		
		<dc:creator><![CDATA[Aurélien Hebert]]></dc:creator>
		<pubDate>Tue, 21 Jun 2022 15:14:25 +0000</pubDate>
				<category><![CDATA[Fonctionnalités]]></category>
		<category><![CDATA[Observabilité]]></category>
		<guid isPermaLink="false">https://www.clever-cloud.com/?p=6922</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2022/06/glitchtip.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="glitchtip" decoding="async" fetchpriority="high" srcset="https://cdn.clever-cloud.com/uploads/2022/06/glitchtip.png 1400w, https://cdn.clever-cloud.com/uploads/2022/06/glitchtip-300x116.png 300w, https://cdn.clever-cloud.com/uploads/2022/06/glitchtip-1024x395.png 1024w, https://cdn.clever-cloud.com/uploads/2022/06/glitchtip-768x296.png 768w, https://cdn.clever-cloud.com/uploads/2022/06/glitchtip-1368x528.png 1368w" sizes="(max-width: 1400px) 100vw, 1400px" /></p><!-- wp:paragraph -->
<p>Chez Clever Cloud, nous aimons avoir un certain contexte sur le statut et les logs de nos applications. C'est pourquoi nous avons déployé un grand nombre d'outils pour obtenir une certaine observabilité. Beaucoup d'entre eux sont disponibles gratuitement pour nos clients (une vue des logs, une vue des métriques ou Grafana). Cependant, il existe des outils que nous utilisons en interne et qui pourraient être utiles à beaucoup. Nous avons récemment découvert <a href="https://glitchtip.com/" target="_blank" rel="noreferrer noopener">glichtip</a>, qui est un outil de suivi des erreurs en open source. Glichtip est une excellente alternative à Sentry et moins complexe à déployer. Nous ajouterons que Glichtip est compatible avec le <a href="https://docs.sentry.io/platforms/" target="_blank" rel="noreferrer noopener">SDK open source de Sentry</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Contexte</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Nous avons utilisé Sentry pour analyser les erreurs provenant des logs de nos propres applications. Nous utilisions encore la version 9.1 jusqu'à ce que nous ayons trop de difficultés à la faire fonctionner. Nous devions alors faire une mise à jour ou trouver une nouvelle solution. Toutes les versions de Sentry postérieures à 9.1 nécessitent beaucoup plus de composants à déployer (comme Kafka, Snuba ou Clickhouse). Il est toujours possible de le déployer avec un <a href="https://develop.sentry.dev/self-hosted/" target="_blank" rel="noreferrer noopener">script auto-hébergé</a>. Nous voulions que chaque composant soit autonome en dehors de l'application principale de Sentry, cela signifiait que nous devions fournir une authentification à tous les composants. Ce n'était pas un gros problème, mais cela nous aurait pris plus de temps que prévu. Et en même temps, nous avons découvert un nouveau projet : Glitchtip.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Glitchtip</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Tout a commencé par un <a href="https://twitter.com/aeris22/status/1516411508225417228?t=EdjijoImwBdKwOjI63m5-A&amp;s=19" target="_blank" rel="noreferrer noopener">tweet</a> français, sur la découverte d'un nouvel outil : <a href="https://glitchtip.com/" target="_blank" rel="noreferrer noopener">Glitchtip</a>. Ce tweet disait que Glitchtip était compatible avec Sentry, gratuit et facile à auto-héberger, c'était donc évident que nous allions l'essayer !</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Que fournit Glitchtip ? A l'intérieur de votre application, avec le SDK Sentry, vous transférez certains de vos logs d'erreurs. Ensuite, l'outil vous aide à suivre ces erreurs, à mieux comprendre quand une nouvelle version de l'outil crée de nouvelles erreurs, à les organiser ou à les rechercher… En un mot, c'est un outil très utile pour déboguer vos logiciels déployés.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Déploiement sur Clever Cloud</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Configuration</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Tout d'abord, nous allons télécharger le projet Docker Glitchtip et le personnaliser un peu pour correspondre à la façon dont les applications Docker sont exécutées dans Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Get latest Glitchtip release
git clone https://gitlab.com/glitchtip/glitchtip.git

# Go to the folder
cd glitchtip
</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Ensuite, ouvrez votre IDE de code préféré et ouvrez le <code>Dockerfile</code> :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Remove
FROM glitchtip/glitchtip:latest

# And add instead:
FROM glitchtip/glitchtip:v1.12.2

COPY docker-entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Ici, nous allons mettre en place la dernière version de Glitchtip. Au moment où nous écrivions ce blog, il s'agissait de la <code>v1.12.2. </code>Vous pouvez les trouver <a href="https://hub.docker.com/r/glitchtip/glitchtip/tags" target="_blank" rel="noreferrer noopener">ici</a>. Nous mettons en place un nouveau script pour utiliser <code>docker-entrypoint.sh</code> qui nous permettra de démarrer soit l'application web Glitchtip soit le travailleur Glitchtip. Le <code>docker-entrypoint.sh</code> doit contenir le script suivant :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># docker-entrypoint.sh script:
#!/bin/bash

if [ "${START_TARGET}" = "worker" ]; then
  mkdir /tmp/sandboxed
	cd /tmp/sandboxed &amp;&amp; nohup python -m http.server 8080 &amp;
	/code/bin/run-celery-with-beat.sh
else
  /code/bin/start.sh
fi

# Don't forget to make it executable:
chmod u+x docker-entrypoint.sh
</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Déployer</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Glitchtip est livré avec un <code>Dockerfile</code>, ce qui signifie que nous utiliserons un <a href="https://www.clever.cloud/developers/deploy/application/java/java-jar/">runtime docker</a>. Il nécessite également une <a href="https://www.postgresql.org/" target="_blank" rel="noreferrer noopener">base de données PostgreSQL</a> et un<a href="https://redis.io/" target="_blank" rel="noreferrer noopener"> cache Redis</a>, ce qui signifie que nous allons déployer un <a href="https://www.clever.cloud/developers/doc/addons/postgresql/">addon PostgreSQL</a> et un <a href="https://www.clever.cloud/developers/doc/addons/redis/">addon Redis</a>. L'ajout d'une option <code>-o</code> dans toutes les lignes de commande <code>create</code> peut être utilisé pour spécifier l'organisation à utiliser.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Create the docker applications:
clever create --type docker glitchtip-web
clever create --type docker glitchtip-worker

# Create the PG addon
clever addon create postgresql-addon --plan s_sml --addon-version 14 glitchtip-postgres

# Link the addon
clever service link-addon glitchtip-postgres -a glitchtip-web
clever service link-addon glitchtip-postgres -a glitchtip-worker

# Create the Redis addon
clever addon create redis-addon --plan s_mono glitchtip-redis

# Link the addon
clever service link-addon glitchtip-redis -a glitchtip-web
clever service link-addon glitchtip-redis -a glitchtip-worker
</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Configurer</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Pour l'instant nous allons configurer Glitchtip à travers des variables d'environnement. Comme nous utilisons plusieurs applications, nous allons déployer un fournisseur de configuration addon.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Create a config addon:
clever addon create config-provider --plan std glitchtip-config

# Link the addon
clever service link-addon glitchtip-config -a glitchtip-web
clever service link-addon glitchtip-config -a glitchtip-worker

</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Maintenant que nous avons déployé un fournisseur d'addon de configuration, mettons à jour sa configuration. Pour ce faire, allez dans la console Clever Cloud et sélectionnez le <code>glitchtip-config</code>. Dans le panneau des variables, sélectionnez le mode expert et ajoutez la variable requise suivante, (remplissez leur valeur en fonction du commentaire fourni) :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># In the config addon provider add:
CC_DOCKER_EXPOSED_HTTP_PORT="8080"
# Copy paste here the POSTGRESQL_ADDON_URI environment variable of the glitchtip-postgres addon 
DATABASE_URL="postgresql://user:password@host:port/database"
# Provide a valid email server
EMAIL_URL="smtp://email:password@smtp_url:port"
# Copy paste here the application domain name of the glitchtip-web application instead (should look like: https://app-da7a7a7a-da7a-4242-7a7a-da7a42427a7a.cleverapps.io)
GLITCHTIP_DOMAIN="MY_APP_DOMAIN_NAME"
# Copy paste here the REDIS_ADDON's environment variable of the glitchtip-redis addon 
REDIS_HOST= &lt; REDIS_HOST &gt;
REDIS_PASSWORD= &lt; REDIS_PASSWORD &gt; 
REDIS_PORT= &lt; REDIS_PORT &gt;
# Generate your own custom secret key for Glitchtip
SECRET_KEY= &lt; choose a secret key &gt;
</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Notez que vous pouvez trouver plus d'informations sur la façon de configurer Glitchtip dans sa <a href="https://glitchtip.com/documentation/install#configuration" target="_blank" rel="noreferrer noopener">documentation</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Chaque application docker nécessite également une certaine configuration personnalisée :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">#glitchtip-web custom env
clever env set CC_RUN_SUCCEEDED_HOOK "./manage.py migrate" -a glitchtip-web
clever env set START_TARGET "web" -a glitchtip-web
#glitchtip-worker custom env
clever env set START_TARGET "worker" -a glitchtip-worker
</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Déployer et exécuter</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Maintenant que tout est prêt, il est temps de déployer et d'exécuter votre application Glitchtip.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Remove initial git
rm -r .git 

# Init a git repository
git init

# Add your files
git add .

# Commit the changes
git commit -m "clever init and deploy"

# Deploy the application
clever deploy -a glitchtip-web
clever deploy -a glitchtip-worker

# Open Glitchtip in your browser
clever open -a glitchtip-web
</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Votre glitchtip est maintenant presque prêt à être utilisé. Une dernière action est nécessaire : vous devez créer un super utilisateur pour administrer Glitchtip.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Connect in SSH to your Clever application:
clever ssh -a glitchtip-web

# Run 
./manage.py createsuperuser
</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Bon travail ! Vous devriez maintenant avoir un accès à la page d'administration de glitchtip (disponible sur le path /admin de votre application). Vous pouvez alors créer des utilisateurs ou vous connecter à votre réseau/application sociale préférée pour authentifier vos utilisateurs. Vous trouverez plus d'informations sur la <a href="https://glitchtip.com/documentation/install#django-admin" target="_blank" rel="noreferrer noopener">documentation</a>. Vous pouvez définir <a href="https://www.clever.cloud/blog/fonctionnalites/2022/05/11/how-to-deploy-keycloak-on-clever-cloud/">votre propre keycloak sur Clever Cloud</a> et l'utiliser pour vous connecter à Glitchtip !</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Connecter Glitchtip à une application</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Nous allons réutiliser l'exemple d'application akka que nous avons utilisé pour <a href="https://www.clever.cloud/fr/blog/fonctionnalites/2022/06/09/deployer-une-application-scala-akka-avec-integration-postgresql/">notre blogpost exemple scala</a>. Et nous verrons ensuite comment nous pouvons transmettre nos propres logs d'erreurs à Glitchtip.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Créer un projet Glitchtip</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>La première étape sera de se connecter avec le nouvel utilisateur root (ou tout utilisateur Glitchtip que vous avez créé ou lié à un réseau/application sociale). Glitchtip vous demandera de créer votre organisation. Dans notre cas, nous avons choisi <code>clever-cloud</code>. Comme nous voulons surveiller les logs d'erreur de notre application, nous devrons créer un nouveau projet directement dans l'interface de Glitchtip. Appelons-le "myakka" et créons l'équipe "Scala-dev" qui lui est associée.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Une fois que ce projet est créé, vous serez en mesure d'obtenir un <code>DSN</code>. Nous le chargerons plus tard comme variable d'environnement pour l'application akka.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Créer un Token Glitchtip</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Allez dans <code>Profile/auth token</code> et créez un nouveau jeton Glitchtip avec au moins les droits suivants : read, write et releases. Sauvegardez-le pour plus tard.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Configurer l'application d'exemple AKKA sur Clever Cloud</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>La première étape consiste à déployer l'application AKKA sur Clever Cloud comme mentionné dans <a href="https://www.clever.cloud/fr/blog/fonctionnalites/2022/06/09/deployer-une-application-scala-akka-avec-integration-postgresql/">le blogpost scala exemple</a>. <a href="https://github.com/CleverCloud/scala-akka-http-postgres-example" target="_blank" rel="noreferrer noopener">Clonez</a> le projet, et au lieu de la branche principale, utilisez la branche <code>blogpost-sentry</code>. </p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Clone Clever Cloud akka example project:
git clone https://github.com/CleverCloud/scala-akka-http-postgres-example.git

# Checkout blogpost-sentry
git checkout blogpost-sentry
</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Dans cette branche, nous mettons à jour l’application pour se connecter à Sentry. Ensuite, nous envoyons seulement les logs HTTP du serveur de départ avec un statut personnalisé (succès ou échec). Voici le code que nous utilisons dans la branche <code>blogpost-sentry</code> :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Register Sentry
Sentry.init(sentryConfig.sentryDsn)

# Send a message to Sentry with a tag
Sentry.getContext().addTag("status", status)
Sentry.capture(message)
Sentry.getContext().clear()
</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p><strong>De plus, vous devez ajouter </strong>un fichier <code>.sentryclirc</code>. Ce fichier doit contenir :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">[defaults]
url=GLITCHTIP_APP_DOMAIN_NAME
org=clever-cloud
project=myakka
</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Configurer les variables d'environnement de Glitchtip</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Utilisez le script <code>post_build.sh</code> comme <code>CC_POST_BUILD_HOOK</code>. Ceci lancera le <code>sbt flywayMigrate</code> obligatoire ainsi que la création d'une nouvelle version sur Sentry (basée sur le commit ID).</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Set CC_POST_BUILD_HOOK
clever env -a myakka set CC_POST_BUILD_HOOK "./post_build.sh"
</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Vous devez également définir le jeton Glitchtip et le dsn Glitchtip comme variables d'environnement :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Set Glitchip required env variables
clever env -a myakka set SENTRY_AUTH_TOKEN &lt; custom_glitchtip_token &gt;  
clever env -a myakka set SENTRY_DSN &lt; custom_glitchtip_dsn &gt;  
</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Déployer l'application</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Vous pouvez maintenant déployer le projet myakka :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Deploy myakka
clever deploy
</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Essayez-la</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Dès que c'est fait, vous devriez voir votre première issue sur Glitchip ! C'est tout, vous pouvez maintenant ajouter toutes les applications que vous voulez à Glitchtip et profiter de cet outil pour centraliser les logs et erreurs de vos applications. Si vous êtes habitué à ce produit ou si vous venez de l'essayer, n'hésitez pas à nous faire part de vos retours <a href="https://twitter.com/clever_cloudFR">sur Twitter</a>.</p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2022/06/glitchtip.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="glitchtip" decoding="async" srcset="https://cdn.clever-cloud.com/uploads/2022/06/glitchtip.png 1400w, https://cdn.clever-cloud.com/uploads/2022/06/glitchtip-300x116.png 300w, https://cdn.clever-cloud.com/uploads/2022/06/glitchtip-1024x395.png 1024w, https://cdn.clever-cloud.com/uploads/2022/06/glitchtip-768x296.png 768w, https://cdn.clever-cloud.com/uploads/2022/06/glitchtip-1368x528.png 1368w" sizes="(max-width: 1400px) 100vw, 1400px" /></p><!-- wp:paragraph -->
<p>Chez Clever Cloud, nous aimons avoir un certain contexte sur le statut et les logs de nos applications. C'est pourquoi nous avons déployé un grand nombre d'outils pour obtenir une certaine observabilité. Beaucoup d'entre eux sont disponibles gratuitement pour nos clients (une vue des logs, une vue des métriques ou Grafana). Cependant, il existe des outils que nous utilisons en interne et qui pourraient être utiles à beaucoup. Nous avons récemment découvert <a href="https://glitchtip.com/" target="_blank" rel="noreferrer noopener">glichtip</a>, qui est un outil de suivi des erreurs en open source. Glichtip est une excellente alternative à Sentry et moins complexe à déployer. Nous ajouterons que Glichtip est compatible avec le <a href="https://docs.sentry.io/platforms/" target="_blank" rel="noreferrer noopener">SDK open source de Sentry</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Contexte</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Nous avons utilisé Sentry pour analyser les erreurs provenant des logs de nos propres applications. Nous utilisions encore la version 9.1 jusqu'à ce que nous ayons trop de difficultés à la faire fonctionner. Nous devions alors faire une mise à jour ou trouver une nouvelle solution. Toutes les versions de Sentry postérieures à 9.1 nécessitent beaucoup plus de composants à déployer (comme Kafka, Snuba ou Clickhouse). Il est toujours possible de le déployer avec un <a href="https://develop.sentry.dev/self-hosted/" target="_blank" rel="noreferrer noopener">script auto-hébergé</a>. Nous voulions que chaque composant soit autonome en dehors de l'application principale de Sentry, cela signifiait que nous devions fournir une authentification à tous les composants. Ce n'était pas un gros problème, mais cela nous aurait pris plus de temps que prévu. Et en même temps, nous avons découvert un nouveau projet : Glitchtip.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Glitchtip</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Tout a commencé par un <a href="https://twitter.com/aeris22/status/1516411508225417228?t=EdjijoImwBdKwOjI63m5-A&amp;s=19" target="_blank" rel="noreferrer noopener">tweet</a> français, sur la découverte d'un nouvel outil : <a href="https://glitchtip.com/" target="_blank" rel="noreferrer noopener">Glitchtip</a>. Ce tweet disait que Glitchtip était compatible avec Sentry, gratuit et facile à auto-héberger, c'était donc évident que nous allions l'essayer !</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Que fournit Glitchtip ? A l'intérieur de votre application, avec le SDK Sentry, vous transférez certains de vos logs d'erreurs. Ensuite, l'outil vous aide à suivre ces erreurs, à mieux comprendre quand une nouvelle version de l'outil crée de nouvelles erreurs, à les organiser ou à les rechercher… En un mot, c'est un outil très utile pour déboguer vos logiciels déployés.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Déploiement sur Clever Cloud</h2>
<!-- /wp:heading -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Configuration</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Tout d'abord, nous allons télécharger le projet Docker Glitchtip et le personnaliser un peu pour correspondre à la façon dont les applications Docker sont exécutées dans Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Get latest Glitchtip release
git clone https://gitlab.com/glitchtip/glitchtip.git

# Go to the folder
cd glitchtip
</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Ensuite, ouvrez votre IDE de code préféré et ouvrez le <code>Dockerfile</code> :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Remove
FROM glitchtip/glitchtip:latest

# And add instead:
FROM glitchtip/glitchtip:v1.12.2

COPY docker-entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]
</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Ici, nous allons mettre en place la dernière version de Glitchtip. Au moment où nous écrivions ce blog, il s'agissait de la <code>v1.12.2. </code>Vous pouvez les trouver <a href="https://hub.docker.com/r/glitchtip/glitchtip/tags" target="_blank" rel="noreferrer noopener">ici</a>. Nous mettons en place un nouveau script pour utiliser <code>docker-entrypoint.sh</code> qui nous permettra de démarrer soit l'application web Glitchtip soit le travailleur Glitchtip. Le <code>docker-entrypoint.sh</code> doit contenir le script suivant :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># docker-entrypoint.sh script:
#!/bin/bash

if [ "${START_TARGET}" = "worker" ]; then
  mkdir /tmp/sandboxed
	cd /tmp/sandboxed &amp;&amp; nohup python -m http.server 8080 &amp;
	/code/bin/run-celery-with-beat.sh
else
  /code/bin/start.sh
fi

# Don't forget to make it executable:
chmod u+x docker-entrypoint.sh
</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Déployer</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Glitchtip est livré avec un <code>Dockerfile</code>, ce qui signifie que nous utiliserons un <a href="https://www.clever.cloud/developers/deploy/application/java/java-jar/">runtime docker</a>. Il nécessite également une <a href="https://www.postgresql.org/" target="_blank" rel="noreferrer noopener">base de données PostgreSQL</a> et un<a href="https://redis.io/" target="_blank" rel="noreferrer noopener"> cache Redis</a>, ce qui signifie que nous allons déployer un <a href="https://www.clever.cloud/developers/doc/addons/postgresql/">addon PostgreSQL</a> et un <a href="https://www.clever.cloud/developers/doc/addons/redis/">addon Redis</a>. L'ajout d'une option <code>-o</code> dans toutes les lignes de commande <code>create</code> peut être utilisé pour spécifier l'organisation à utiliser.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Create the docker applications:
clever create --type docker glitchtip-web
clever create --type docker glitchtip-worker

# Create the PG addon
clever addon create postgresql-addon --plan s_sml --addon-version 14 glitchtip-postgres

# Link the addon
clever service link-addon glitchtip-postgres -a glitchtip-web
clever service link-addon glitchtip-postgres -a glitchtip-worker

# Create the Redis addon
clever addon create redis-addon --plan s_mono glitchtip-redis

# Link the addon
clever service link-addon glitchtip-redis -a glitchtip-web
clever service link-addon glitchtip-redis -a glitchtip-worker
</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Configurer</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Pour l'instant nous allons configurer Glitchtip à travers des variables d'environnement. Comme nous utilisons plusieurs applications, nous allons déployer un fournisseur de configuration addon.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Create a config addon:
clever addon create config-provider --plan std glitchtip-config

# Link the addon
clever service link-addon glitchtip-config -a glitchtip-web
clever service link-addon glitchtip-config -a glitchtip-worker

</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Maintenant que nous avons déployé un fournisseur d'addon de configuration, mettons à jour sa configuration. Pour ce faire, allez dans la console Clever Cloud et sélectionnez le <code>glitchtip-config</code>. Dans le panneau des variables, sélectionnez le mode expert et ajoutez la variable requise suivante, (remplissez leur valeur en fonction du commentaire fourni) :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># In the config addon provider add:
CC_DOCKER_EXPOSED_HTTP_PORT="8080"
# Copy paste here the POSTGRESQL_ADDON_URI environment variable of the glitchtip-postgres addon 
DATABASE_URL="postgresql://user:password@host:port/database"
# Provide a valid email server
EMAIL_URL="smtp://email:password@smtp_url:port"
# Copy paste here the application domain name of the glitchtip-web application instead (should look like: https://app-da7a7a7a-da7a-4242-7a7a-da7a42427a7a.cleverapps.io)
GLITCHTIP_DOMAIN="MY_APP_DOMAIN_NAME"
# Copy paste here the REDIS_ADDON's environment variable of the glitchtip-redis addon 
REDIS_HOST= &lt; REDIS_HOST &gt;
REDIS_PASSWORD= &lt; REDIS_PASSWORD &gt; 
REDIS_PORT= &lt; REDIS_PORT &gt;
# Generate your own custom secret key for Glitchtip
SECRET_KEY= &lt; choose a secret key &gt;
</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Notez que vous pouvez trouver plus d'informations sur la façon de configurer Glitchtip dans sa <a href="https://glitchtip.com/documentation/install#configuration" target="_blank" rel="noreferrer noopener">documentation</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Chaque application docker nécessite également une certaine configuration personnalisée :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">#glitchtip-web custom env
clever env set CC_RUN_SUCCEEDED_HOOK "./manage.py migrate" -a glitchtip-web
clever env set START_TARGET "web" -a glitchtip-web
#glitchtip-worker custom env
clever env set START_TARGET "worker" -a glitchtip-worker
</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Déployer et exécuter</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Maintenant que tout est prêt, il est temps de déployer et d'exécuter votre application Glitchtip.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Remove initial git
rm -r .git 

# Init a git repository
git init

# Add your files
git add .

# Commit the changes
git commit -m "clever init and deploy"

# Deploy the application
clever deploy -a glitchtip-web
clever deploy -a glitchtip-worker

# Open Glitchtip in your browser
clever open -a glitchtip-web
</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Votre glitchtip est maintenant presque prêt à être utilisé. Une dernière action est nécessaire : vous devez créer un super utilisateur pour administrer Glitchtip.</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Connect in SSH to your Clever application:
clever ssh -a glitchtip-web

# Run 
./manage.py createsuperuser
</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Bon travail ! Vous devriez maintenant avoir un accès à la page d'administration de glitchtip (disponible sur le path /admin de votre application). Vous pouvez alors créer des utilisateurs ou vous connecter à votre réseau/application sociale préférée pour authentifier vos utilisateurs. Vous trouverez plus d'informations sur la <a href="https://glitchtip.com/documentation/install#django-admin" target="_blank" rel="noreferrer noopener">documentation</a>. Vous pouvez définir <a href="https://www.clever.cloud/blog/fonctionnalites/2022/05/11/how-to-deploy-keycloak-on-clever-cloud/">votre propre keycloak sur Clever Cloud</a> et l'utiliser pour vous connecter à Glitchtip !</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Connecter Glitchtip à une application</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Nous allons réutiliser l'exemple d'application akka que nous avons utilisé pour <a href="https://www.clever.cloud/fr/blog/fonctionnalites/2022/06/09/deployer-une-application-scala-akka-avec-integration-postgresql/">notre blogpost exemple scala</a>. Et nous verrons ensuite comment nous pouvons transmettre nos propres logs d'erreurs à Glitchtip.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Créer un projet Glitchtip</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>La première étape sera de se connecter avec le nouvel utilisateur root (ou tout utilisateur Glitchtip que vous avez créé ou lié à un réseau/application sociale). Glitchtip vous demandera de créer votre organisation. Dans notre cas, nous avons choisi <code>clever-cloud</code>. Comme nous voulons surveiller les logs d'erreur de notre application, nous devrons créer un nouveau projet directement dans l'interface de Glitchtip. Appelons-le "myakka" et créons l'équipe "Scala-dev" qui lui est associée.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Une fois que ce projet est créé, vous serez en mesure d'obtenir un <code>DSN</code>. Nous le chargerons plus tard comme variable d'environnement pour l'application akka.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Créer un Token Glitchtip</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Allez dans <code>Profile/auth token</code> et créez un nouveau jeton Glitchtip avec au moins les droits suivants : read, write et releases. Sauvegardez-le pour plus tard.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Configurer l'application d'exemple AKKA sur Clever Cloud</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>La première étape consiste à déployer l'application AKKA sur Clever Cloud comme mentionné dans <a href="https://www.clever.cloud/fr/blog/fonctionnalites/2022/06/09/deployer-une-application-scala-akka-avec-integration-postgresql/">le blogpost scala exemple</a>. <a href="https://github.com/CleverCloud/scala-akka-http-postgres-example" target="_blank" rel="noreferrer noopener">Clonez</a> le projet, et au lieu de la branche principale, utilisez la branche <code>blogpost-sentry</code>. </p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Clone Clever Cloud akka example project:
git clone https://github.com/CleverCloud/scala-akka-http-postgres-example.git

# Checkout blogpost-sentry
git checkout blogpost-sentry
</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Dans cette branche, nous mettons à jour l’application pour se connecter à Sentry. Ensuite, nous envoyons seulement les logs HTTP du serveur de départ avec un statut personnalisé (succès ou échec). Voici le code que nous utilisons dans la branche <code>blogpost-sentry</code> :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Register Sentry
Sentry.init(sentryConfig.sentryDsn)

# Send a message to Sentry with a tag
Sentry.getContext().addTag("status", status)
Sentry.capture(message)
Sentry.getContext().clear()
</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p><strong>De plus, vous devez ajouter </strong>un fichier <code>.sentryclirc</code>. Ce fichier doit contenir :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash">[defaults]
url=GLITCHTIP_APP_DOMAIN_NAME
org=clever-cloud
project=myakka
</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Configurer les variables d'environnement de Glitchtip</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Utilisez le script <code>post_build.sh</code> comme <code>CC_POST_BUILD_HOOK</code>. Ceci lancera le <code>sbt flywayMigrate</code> obligatoire ainsi que la création d'une nouvelle version sur Sentry (basée sur le commit ID).</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Set CC_POST_BUILD_HOOK
clever env -a myakka set CC_POST_BUILD_HOOK "./post_build.sh"
</code></pre>
<!-- /wp:html -->

<!-- wp:paragraph -->
<p>Vous devez également définir le jeton Glitchtip et le dsn Glitchtip comme variables d'environnement :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Set Glitchip required env variables
clever env -a myakka set SENTRY_AUTH_TOKEN &lt; custom_glitchtip_token &gt;  
clever env -a myakka set SENTRY_DSN &lt; custom_glitchtip_dsn &gt;  
</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Déployer l'application</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Vous pouvez maintenant déployer le projet myakka :</p>
<!-- /wp:paragraph -->

<!-- wp:html -->
<pre class="wp-block-code"><code class="lang-bash"># Deploy myakka
clever deploy
</code></pre>
<!-- /wp:html -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Essayez-la</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Dès que c'est fait, vous devriez voir votre première issue sur Glitchip ! C'est tout, vous pouvez maintenant ajouter toutes les applications que vous voulez à Glitchtip et profiter de cet outil pour centraliser les logs et erreurs de vos applications. Si vous êtes habitué à ce produit ou si vous venez de l'essayer, n'hésitez pas à nous faire part de vos retours <a href="https://twitter.com/clever_cloudFR">sur Twitter</a>.</p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Alertes Slack pour Grafana</title>
		<link>https://www.clever.cloud/fr/blog/fonctionnalites/2021/12/03/alertes-slack-pour-grafana/</link>
		
		<dc:creator><![CDATA[Aurélien Hebert]]></dc:creator>
		<pubDate>Fri, 03 Dec 2021 15:57:00 +0000</pubDate>
				<category><![CDATA[Fonctionnalités]]></category>
		<category><![CDATA[Features]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[Observabilité]]></category>
		<guid isPermaLink="false">https://www.clever-cloud.com/?p=4309</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2021/12/alertes-slack-pour-grafana-2.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="alertes slack pour grafana 2" decoding="async" srcset="https://cdn.clever-cloud.com/uploads/2021/12/alertes-slack-pour-grafana-2.png 1400w, https://cdn.clever-cloud.com/uploads/2021/12/alertes-slack-pour-grafana-2-300x116.png 300w, https://cdn.clever-cloud.com/uploads/2021/12/alertes-slack-pour-grafana-2-1024x395.png 1024w, https://cdn.clever-cloud.com/uploads/2021/12/alertes-slack-pour-grafana-2-768x296.png 768w, https://cdn.clever-cloud.com/uploads/2021/12/alertes-slack-pour-grafana-2-1368x528.png 1368w" sizes="(max-width: 1400px) 100vw, 1400px" /></p><!-- wp:paragraph -->
<p>Dans l'un de nos précédents blogposts, nous vous avons annoncé <a href="https://www.clever.cloud/fr/blog/fonctionnalites/2021/10/28/grafana-pour-des-metriques-d-applications/">la sortie d'un Grafana Clever Cloud</a> dédié à toutes <a href="https://www.clever.cloud/developers/administrate/metrics/overview/#publish-your-own-metrics">nos métriques</a>.&nbsp;Et si maintenant, vous souhaitez en plus recevoir une <strong>alerte</strong> lorsqu'une application est dans un état <strong>anormal</strong> ? Grafana propose un service d'alerte qui est compatible avec notre backend Warp10. À présent, voyons comment créer une alerte Slack pour Grafana en utilisant une source de données <code>PromQL</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading" id="grafana-notifier">Grafana <em>Notifier</em></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Tout d'abord, avant de créer des alertes, nous devons configurer un <em>notifier</em> Grafana. Consultez la liste complète des <em>notifiers</em> Grafana supportés <a href="https://grafana.com/docs/grafana/latest/alerting/configure-notifications/manage-contact-points/#supported-contact-point-integrations">ici</a>. Mais, vous ne pourrez pas configurer les <em>notifiers</em> qui nécessitent un accès administrateur, comme l'email ou le SMTP. Dans cet exemple, nous allons configurer un canal Slack pour recevoir toutes les alertes Grafana.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading" id="configurer-slack">Configurer Slack</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Afin de pouvoir recevoir des alertes sur Slack, Grafana demandera un <em>webhook</em>. Le processus pour en créer un avec slack est <a href="https://api.slack.com/messaging/webhooks">ici</a>. À la fin, vous devriez obtenir un <em>webhook</em> entrant actif.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4169,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/webHookSlack.png" alt="<em&gt;Webhook</em&gt; entrant sur Slack " class="wp-image-4169"/><figcaption class="wp-element-caption"><em>Webhook</em> entrant sur Slack </figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Copiez l'URL du<em> webhook</em> puis allez dans le panneau principal d'alerte (la cloche à gauche) et ajoutez un nouveau <code>canal de notification</code> <strong>slack</strong>. Configurez-le comme ci-dessous, dans le <code>champ URL du <em>webhook</em></code>, dans l'application Slack. Vous pouvez définir le nom de votre choix.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4168,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/Slack_notifier.png" alt="Ajouter un canal de notification Slack" class="wp-image-4168"/><figcaption class="wp-element-caption">Ajouter un canal de notification Slack</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Avant de valider, vous pouvez tester votre intégration sur Slack avec le bouton <code>Test</code>. Sans attendre, dans le canal Slack de la configuration, vous recevrez alors un message de test.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4170,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/Test_Slack_Message.png" alt="Message test pour les notifications Slack" class="wp-image-4170"/><figcaption class="wp-element-caption">Message test pour les notifications Slack</figcaption></figure>
<!-- /wp:image -->

<!-- wp:heading -->
<h2 class="wp-block-heading" id="les-alertes-sur-grafana">Les alertes sur Grafana</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Maintenant que nous avons activé un <em>notifier</em> d'alerte, créons une alerte dans Grafana. </p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading" id="les-metriques-disponibles-de-clever-cloud">Les métriques disponibles de Clever Cloud</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Nous allons commencer par l'un des modèles de tableaux que nous proposons sur Grafana. Nous avons donc déployé une application de preview sur une organisation Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4171,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/Application.png" alt="Tableau d'app personnalisée Clever Cloud" class="wp-image-4171"/><figcaption class="wp-element-caption">Tableau d'app personnalisée Clever Cloud</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Pour la suite de ce post, nous allons travailler sur les métriques de <code>average_load</code>. Comme vous pouvez voir ci-dessous, il s'agit d'une simple requête PromQL. Cependant, elle inclut des variables personnalisées <code>APP_ID et DEPLOY_ID</code> qui ne<strong> sont pas prises en charge par les alertes Grafana !</strong></p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4172,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/Dashboard.png" alt="Graphique du runtime load" class="wp-image-4172"/><figcaption class="wp-element-caption">Graphique du runtime load</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Avant d'activer l'alerte, nous allons garder quelque part cette requête de graphique <code>system.load1_per_cpu{app_id="APP_ID"}</code>. Nous allons simplement remplacer la variable <code>APP_ID</code> par sa valeur, qui est disponible en haut du tableau.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4173,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/Runtime_ID.png" alt="Identification du runtime" class="wp-image-4173"/><figcaption class="wp-element-caption">Identification du runtime</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Ensuite, pour ne pas perdre nos alertes personnalisées à chaque mise à jour des modèles de tableaux Clever Cloud, créez un nouveau tableau de bord.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4174,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/Create-ne-Dashboard.png" alt="Créer un nouveau tableau de bord" class="wp-image-4174"/><figcaption class="wp-element-caption">Créer un nouveau tableau de bord</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Enregistrez-le également dans un dossier dédié qui n'est pas <code>Clever Cloud</code>, dans notre exemple, nous avons choisi <code>alerting</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4175,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/SaveDashboard.png" alt="Sauvegarder le nouveau tableau" class="wp-image-4175"/><figcaption class="wp-element-caption">Sauvegarder le nouveau tableau</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Enfin, dans ce nouveau tableau, créez le même graphique de load avec la requête <code>system.load1_per_cpu{app_id="APP_ID"}</code>. Comme vu précédemment, remplacez <code>APP_ID</code> par votre propre ID d'application. Pour la source de données, sélectionnez celle de <code>PromQL</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4176,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/TestAlertDashQuery.png" alt="Graphique d'alerte de loads" class="wp-image-4176"/><figcaption class="wp-element-caption">Graphique d'alerte de loads</figcaption></figure>
<!-- /wp:image -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading" id="configurer-l-alerte">Configurer l'alerte</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>A cette étape, nous avons un nouveau graphique où nous pouvons mettre en place une première alerte sur le load de notre application. Pour cela, allez dans le panneau <code>Alerte</code>, et configurez l'alerte en fonction du paramètre que vous souhaitez. Pour faire rapidement fonctionner une alerte, je configure la condition pour vérifier si mes métriques sont inférieures à la valeur 0.2.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4177,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/CreateFirstAlert.png" alt="Section des conditions d'alerte" class="wp-image-4177"/><figcaption class="wp-element-caption">Section des conditions d'alerte</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Ensuite, toujours dans le panneau <code>Alerte</code>, ajoutez le <em>notifier</em> que vous avez créé dans la première section. Ici, vous pouvez personnaliser l'alerte que vous recevrez dans slack : ajout d'un message et de balises personnalisées.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4179,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/NotificationGrafana.png" alt="Section <em&gt;notifier</em&gt;" class="wp-image-4179"/><figcaption class="wp-element-caption">Section <em>notifier</em></figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Puis, une fois que vous avez configuré votre alerte, vous pouvez tester la règle avec le bouton <code>tester la règle</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4178,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/TestingAlertRule.png" alt="Résultat de la règle de test" class="wp-image-4178"/><figcaption class="wp-element-caption">Résultat de la règle de test</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Ensuite, il ne vous reste plus qu'à attendre qu'une alerte apparaisse sur Slack ! En outre, chaque changement d'état d'alerte sera indiqué sur le graphique. Après environ cinq minutes, comme la condition d'état d'alerte était atteinte, j'ai bien obtenu deux changements d'état : un en attente et un en alerte. </p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4180,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/FirstAlertV2.png" alt="États d'alerte" class="wp-image-4180"/><figcaption class="wp-element-caption">États d'alerte</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Dès que l'état d'alerte se produit, un message Slack est envoyé par le <em>notifier</em>. </p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4181,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/AlertInSlack.png" alt="Message test pour les alertes Slack" class="wp-image-4181"/><figcaption class="wp-element-caption">Message test pour les alertes Slack</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Enfin, j'aimerais retrouver un état plus "normal". Pour ce faire, je mets à jour ma condition d'alerte et la fixe à <strong>plus de</strong> <code>0,8</code>, ce qui est une valeur plus classique pour un seuil d'alerte pour la métrique de load.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4182,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/ChangeRuleAlert.png" alt="Condition d'alerte au dessus de 0.8" class="wp-image-4182"/><figcaption class="wp-element-caption">Condition d'alerte au dessus de 0.8</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Instantanément (ou presque), l'état de l'alerte change et vient <strong>OK</strong> !</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4183,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/AlertOk.png" alt="L'état d'alerte est ok " class="wp-image-4183"/><figcaption class="wp-element-caption">L'état d'alerte est ok </figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Juste après, Grafana envoie également un message à Slack pour mettre fin à l'issue !</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4184,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/AlertOkSlack.png" alt="Alerte ok " class="wp-image-4184"/><figcaption class="wp-element-caption">Alert ok </figcaption></figure>
<!-- /wp:image -->

<!-- wp:heading -->
<h2 class="wp-block-heading" id="pour-resumer">Pour résumer</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Désormais, vous devriez être en mesure de configurer vos propres alertes sur Slack pour Grafana ! Vous pouvez jouer avec le temps d'attente, la condition d'alerte, le moment de déclenchement, le contenu du message d'alerte, les balises, etc. En fait, tout ce dont vous avez besoin est une requête <code>PromQL</code> fonctionnelle. Néanmoins, n'oubliez pas que les alertes Grafana ne prennent pas en charge les variables des tableaux. En dehors de cela, vous devriez être en mesure de personnaliser l'alerte comme vous le souhaitez !</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>J'espère que vous apprécierez et n'hésitez pas à nous faire part de vos remarques et idées sur le produit Alerting et Metrics. Nous serons heureux de recevoir votre avis. Vous pouvez me contacter directement sur Twitter, ou à poster un commentaire dans <a href="https://www.clever.cloud/developers/administrate/metrics/overview/#comments">l'aperçu des métriques</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2021/12/alertes-slack-pour-grafana-2.png" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="alertes slack pour grafana 2" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2021/12/alertes-slack-pour-grafana-2.png 1400w, https://cdn.clever-cloud.com/uploads/2021/12/alertes-slack-pour-grafana-2-300x116.png 300w, https://cdn.clever-cloud.com/uploads/2021/12/alertes-slack-pour-grafana-2-1024x395.png 1024w, https://cdn.clever-cloud.com/uploads/2021/12/alertes-slack-pour-grafana-2-768x296.png 768w, https://cdn.clever-cloud.com/uploads/2021/12/alertes-slack-pour-grafana-2-1368x528.png 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><!-- wp:paragraph -->
<p>Dans l'un de nos précédents blogposts, nous vous avons annoncé <a href="https://www.clever.cloud/fr/blog/fonctionnalites/2021/10/28/grafana-pour-des-metriques-d-applications/">la sortie d'un Grafana Clever Cloud</a> dédié à toutes <a href="https://www.clever.cloud/developers/administrate/metrics/overview/#publish-your-own-metrics">nos métriques</a>.&nbsp;Et si maintenant, vous souhaitez en plus recevoir une <strong>alerte</strong> lorsqu'une application est dans un état <strong>anormal</strong> ? Grafana propose un service d'alerte qui est compatible avec notre backend Warp10. À présent, voyons comment créer une alerte Slack pour Grafana en utilisant une source de données <code>PromQL</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading" id="grafana-notifier">Grafana <em>Notifier</em></h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Tout d'abord, avant de créer des alertes, nous devons configurer un <em>notifier</em> Grafana. Consultez la liste complète des <em>notifiers</em> Grafana supportés <a href="https://grafana.com/docs/grafana/latest/alerting/configure-notifications/manage-contact-points/#supported-contact-point-integrations">ici</a>. Mais, vous ne pourrez pas configurer les <em>notifiers</em> qui nécessitent un accès administrateur, comme l'email ou le SMTP. Dans cet exemple, nous allons configurer un canal Slack pour recevoir toutes les alertes Grafana.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading" id="configurer-slack">Configurer Slack</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Afin de pouvoir recevoir des alertes sur Slack, Grafana demandera un <em>webhook</em>. Le processus pour en créer un avec slack est <a href="https://api.slack.com/messaging/webhooks">ici</a>. À la fin, vous devriez obtenir un <em>webhook</em> entrant actif.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4169,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/webHookSlack.png" alt="<em&gt;Webhook</em&gt; entrant sur Slack " class="wp-image-4169"/><figcaption class="wp-element-caption"><em>Webhook</em> entrant sur Slack </figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Copiez l'URL du<em> webhook</em> puis allez dans le panneau principal d'alerte (la cloche à gauche) et ajoutez un nouveau <code>canal de notification</code> <strong>slack</strong>. Configurez-le comme ci-dessous, dans le <code>champ URL du <em>webhook</em></code>, dans l'application Slack. Vous pouvez définir le nom de votre choix.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4168,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/Slack_notifier.png" alt="Ajouter un canal de notification Slack" class="wp-image-4168"/><figcaption class="wp-element-caption">Ajouter un canal de notification Slack</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Avant de valider, vous pouvez tester votre intégration sur Slack avec le bouton <code>Test</code>. Sans attendre, dans le canal Slack de la configuration, vous recevrez alors un message de test.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4170,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/Test_Slack_Message.png" alt="Message test pour les notifications Slack" class="wp-image-4170"/><figcaption class="wp-element-caption">Message test pour les notifications Slack</figcaption></figure>
<!-- /wp:image -->

<!-- wp:heading -->
<h2 class="wp-block-heading" id="les-alertes-sur-grafana">Les alertes sur Grafana</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Maintenant que nous avons activé un <em>notifier</em> d'alerte, créons une alerte dans Grafana. </p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading" id="les-metriques-disponibles-de-clever-cloud">Les métriques disponibles de Clever Cloud</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Nous allons commencer par l'un des modèles de tableaux que nous proposons sur Grafana. Nous avons donc déployé une application de preview sur une organisation Clever Cloud.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4171,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/Application.png" alt="Tableau d'app personnalisée Clever Cloud" class="wp-image-4171"/><figcaption class="wp-element-caption">Tableau d'app personnalisée Clever Cloud</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Pour la suite de ce post, nous allons travailler sur les métriques de <code>average_load</code>. Comme vous pouvez voir ci-dessous, il s'agit d'une simple requête PromQL. Cependant, elle inclut des variables personnalisées <code>APP_ID et DEPLOY_ID</code> qui ne<strong> sont pas prises en charge par les alertes Grafana !</strong></p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4172,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/Dashboard.png" alt="Graphique du runtime load" class="wp-image-4172"/><figcaption class="wp-element-caption">Graphique du runtime load</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Avant d'activer l'alerte, nous allons garder quelque part cette requête de graphique <code>system.load1_per_cpu{app_id="APP_ID"}</code>. Nous allons simplement remplacer la variable <code>APP_ID</code> par sa valeur, qui est disponible en haut du tableau.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4173,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/Runtime_ID.png" alt="Identification du runtime" class="wp-image-4173"/><figcaption class="wp-element-caption">Identification du runtime</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Ensuite, pour ne pas perdre nos alertes personnalisées à chaque mise à jour des modèles de tableaux Clever Cloud, créez un nouveau tableau de bord.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4174,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/Create-ne-Dashboard.png" alt="Créer un nouveau tableau de bord" class="wp-image-4174"/><figcaption class="wp-element-caption">Créer un nouveau tableau de bord</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Enregistrez-le également dans un dossier dédié qui n'est pas <code>Clever Cloud</code>, dans notre exemple, nous avons choisi <code>alerting</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4175,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/SaveDashboard.png" alt="Sauvegarder le nouveau tableau" class="wp-image-4175"/><figcaption class="wp-element-caption">Sauvegarder le nouveau tableau</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Enfin, dans ce nouveau tableau, créez le même graphique de load avec la requête <code>system.load1_per_cpu{app_id="APP_ID"}</code>. Comme vu précédemment, remplacez <code>APP_ID</code> par votre propre ID d'application. Pour la source de données, sélectionnez celle de <code>PromQL</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4176,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/TestAlertDashQuery.png" alt="Graphique d'alerte de loads" class="wp-image-4176"/><figcaption class="wp-element-caption">Graphique d'alerte de loads</figcaption></figure>
<!-- /wp:image -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading" id="configurer-l-alerte">Configurer l'alerte</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>A cette étape, nous avons un nouveau graphique où nous pouvons mettre en place une première alerte sur le load de notre application. Pour cela, allez dans le panneau <code>Alerte</code>, et configurez l'alerte en fonction du paramètre que vous souhaitez. Pour faire rapidement fonctionner une alerte, je configure la condition pour vérifier si mes métriques sont inférieures à la valeur 0.2.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4177,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/CreateFirstAlert.png" alt="Section des conditions d'alerte" class="wp-image-4177"/><figcaption class="wp-element-caption">Section des conditions d'alerte</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Ensuite, toujours dans le panneau <code>Alerte</code>, ajoutez le <em>notifier</em> que vous avez créé dans la première section. Ici, vous pouvez personnaliser l'alerte que vous recevrez dans slack : ajout d'un message et de balises personnalisées.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4179,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/NotificationGrafana.png" alt="Section <em&gt;notifier</em&gt;" class="wp-image-4179"/><figcaption class="wp-element-caption">Section <em>notifier</em></figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Puis, une fois que vous avez configuré votre alerte, vous pouvez tester la règle avec le bouton <code>tester la règle</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4178,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/TestingAlertRule.png" alt="Résultat de la règle de test" class="wp-image-4178"/><figcaption class="wp-element-caption">Résultat de la règle de test</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Ensuite, il ne vous reste plus qu'à attendre qu'une alerte apparaisse sur Slack ! En outre, chaque changement d'état d'alerte sera indiqué sur le graphique. Après environ cinq minutes, comme la condition d'état d'alerte était atteinte, j'ai bien obtenu deux changements d'état : un en attente et un en alerte. </p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4180,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/FirstAlertV2.png" alt="États d'alerte" class="wp-image-4180"/><figcaption class="wp-element-caption">États d'alerte</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Dès que l'état d'alerte se produit, un message Slack est envoyé par le <em>notifier</em>. </p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4181,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/AlertInSlack.png" alt="Message test pour les alertes Slack" class="wp-image-4181"/><figcaption class="wp-element-caption">Message test pour les alertes Slack</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Enfin, j'aimerais retrouver un état plus "normal". Pour ce faire, je mets à jour ma condition d'alerte et la fixe à <strong>plus de</strong> <code>0,8</code>, ce qui est une valeur plus classique pour un seuil d'alerte pour la métrique de load.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4182,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/ChangeRuleAlert.png" alt="Condition d'alerte au dessus de 0.8" class="wp-image-4182"/><figcaption class="wp-element-caption">Condition d'alerte au dessus de 0.8</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Instantanément (ou presque), l'état de l'alerte change et vient <strong>OK</strong> !</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4183,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/AlertOk.png" alt="L'état d'alerte est ok " class="wp-image-4183"/><figcaption class="wp-element-caption">L'état d'alerte est ok </figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Juste après, Grafana envoie également un message à Slack pour mettre fin à l'issue !</p>
<!-- /wp:paragraph -->

<!-- wp:image {"id":4184,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/11/AlertOkSlack.png" alt="Alerte ok " class="wp-image-4184"/><figcaption class="wp-element-caption">Alert ok </figcaption></figure>
<!-- /wp:image -->

<!-- wp:heading -->
<h2 class="wp-block-heading" id="pour-resumer">Pour résumer</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Désormais, vous devriez être en mesure de configurer vos propres alertes sur Slack pour Grafana ! Vous pouvez jouer avec le temps d'attente, la condition d'alerte, le moment de déclenchement, le contenu du message d'alerte, les balises, etc. En fait, tout ce dont vous avez besoin est une requête <code>PromQL</code> fonctionnelle. Néanmoins, n'oubliez pas que les alertes Grafana ne prennent pas en charge les variables des tableaux. En dehors de cela, vous devriez être en mesure de personnaliser l'alerte comme vous le souhaitez !</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>J'espère que vous apprécierez et n'hésitez pas à nous faire part de vos remarques et idées sur le produit Alerting et Metrics. Nous serons heureux de recevoir votre avis. Vous pouvez me contacter directement sur Twitter, ou à poster un commentaire dans <a href="https://www.clever.cloud/developers/administrate/metrics/overview/#comments">l'aperçu des métriques</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Un Grafana pour tracer des metrics d&#8217;applications</title>
		<link>https://www.clever.cloud/fr/blog/fonctionnalites/2021/10/28/grafana-pour-des-metriques-d-applications/</link>
		
		<dc:creator><![CDATA[Aurélien Hebert]]></dc:creator>
		<pubDate>Thu, 28 Oct 2021 14:06:57 +0000</pubDate>
				<category><![CDATA[Fonctionnalités]]></category>
		<category><![CDATA[Grafana]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[Observabilité]]></category>
		<guid isPermaLink="false">https://www.clever-cloud.com/?p=3946</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2021/10/grafana-fr.webp" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="grafana fr" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2021/10/grafana-fr.webp 1400w, https://cdn.clever-cloud.com/uploads/2021/10/grafana-fr-300x116.webp 300w, https://cdn.clever-cloud.com/uploads/2021/10/grafana-fr-1024x395.webp 1024w, https://cdn.clever-cloud.com/uploads/2021/10/grafana-fr-768x296.webp 768w, https://cdn.clever-cloud.com/uploads/2021/10/grafana-fr-1368x528.webp 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><!-- wp:paragraph {"dropCap":true} -->
<p class="has-drop-cap">Chez Clever Cloud, nous estimons important de fournir un <strong>accès</strong> à <strong>nos metrics</strong> pour nos utilisateurs. C'est pourquoi vous pouvez d'ores et déjà visualiser vos <a href="https://www.clever.cloud/developers/administrate/metrics/overview/">métriques</a> et choisir entre WarpScript et <a href="https://www.clever.cloud/fr/blog/engineering-fr/2021/10/12/realiser-vos-requetes-promql-avec-erlenmeyer/">PromQL</a> pour les requêter. En plus de cela, nous souhaitions proposer plus qu'un <strong>simple accès à nos metrics </strong>pour nos utilisateurs ! Nous souhaitions proposer un outil pour vous permettre <strong>d'explorer</strong> et <strong>visualiser</strong> l'état de vos applications.&nbsp;Dans nos usages, nous utilisons beaucoup&nbsp;<a href="https://grafana.com/">Grafana</a>&nbsp;pour créer des tableaux de bord. Et si nous imaginons à présent que l'on puisse réutiliser cet outil pour créer des <strong>tableaux de bord dédiés</strong> ? C'est comme ça que nous avons eu l'idée de mettre<strong> Grafana à votre disposition</strong> !</p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"center","id":6239,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image aligncenter size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/10/grafana.svg" alt="grafana" class="wp-image-6239"/><figcaption class="wp-element-caption">Grafana</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Dans cet article, nous parlerons de <strong>l'outil Grafana</strong>. Ensuite nous verrons comment nous l'avons <strong>déployé</strong>. Puis, nous détaillerons étape par étape comment activer <strong>la beta de Grafana</strong>&nbsp;dans votre organisation. Nous conclurons avec le <strong>contenu de nos tableaux de bord</strong>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">À propos de Grafana</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://grafana.com/">Grafana</a> est un outil <strong>open-source&nbsp;</strong>qui entre autres choses de visualiser ses metrics, ses logs et ses alertes. Ainsi, l'objectif de Grafana est de faciliter la création de <a href="https://grafana.com/blog/2019/05/16/worth-a-look-public-grafana-dashboards/">tableaux de bord efficaces</a>. Grafana comprend également plusieurs <strong>tuiles, thèmes</strong> et fourni de <strong>nombreuses sources de données</strong>. Dans notre cas, nous utiliserons seulement <a href="https://github.com/ovh/ovh-warp10-datasource">Warp10</a> et&nbsp;<a href="https://grafana.com/docs/grafana/latest/datasources/prometheus/">Prometheus</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Grafana chez Clever Cloud</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Pour ceux qui souhaitent utiliser Grafana, c'est un outil simple à déployer dès à présent sur Clever Cloud. Pour les lecteurs francophones, vous pouvez suivre cet&nbsp;<a href="https://blog.kbdev.io/dev/2021/08/24/grafana-clevercloud.html">article de blog</a>. Également, nous avons publié quelques scripts pour l'automatiser sur <a href="https://github.com/CleverCloud/grafana-example">Github</a>. Lorsque nous souhaitions déployer un Grafana pour nos utilisateurs, nous avons décidé d'utiliser les mêmes scripts. C'est pourquoi notre instance déployée tourne comme une application runtime Clever Cloud. Nous activons une option avec <code>force https</code> et nous ajoutons la scalabilité dans l'onglet&nbsp;<code>scalability</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Notre architecture Grafana</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Comme Clever Cloud, Grafana propose des espaces de travail appelés "organisations" également. De ce fait, il est facile de <strong>lier les 2</strong> et le rendre disponible pour nos utilisateurs. Ensuite, nous avons créé un <em>API endpoint </em>pour connecter notre Grafana avec notre console. Toutes les <strong>sources de données</strong> exposées (Warp10 et Prometheus) sont <strong>gérées de notre côté</strong>. <strong>Ce qui signifie qu'aucun autre utilisateur ne peut les changer</strong>. Cependant nous mettons <strong>régulièrement à jour</strong> tous nos <strong><em>tokens</em></strong>. De la même manière, nous mettons régulièrement à jour tous les tableaux de bord personnalisés que nous fournissons.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Chaque utilisateur a des <strong>droits éditeurs</strong> dans ses organisations. Ce qui signifie que vous pouvez personnaliser les tableaux de bord autant que je vous le souhaitez. Nous verrons plus tard dans cet article, comment éviter les conflits avec nos templates.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Activer l'organisation beta de Grafana</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Pour activer notre beta, allez sur l'affichage organisation Clever Cloud dans la console Clever Cloud. Ensuite, accédez à une page intitulée <code>Metrics in Grafana</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Tableaux de bord disponibles</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Nous avons créé 3 tableaux uniques pour vous ! Premièrement, nous commencerons par un tour d'horizon des metrics d'une organisation. Ensuite, nous rentrerons dans les détails d'une vue en mode runtime. Pour finir, nous verrons comment se présentent les métriques pour les <em>add-ons</em>. <strong>La plupart des graphiques des tableaux de bord Grafana contient une petite tuile d'information. Vous pourrez y récupérer quelques indications pour vous guider.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">L'organisation Clever Cloud</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>La vue "organisation" est le <strong>tableau de bord</strong> <strong>principal&nbsp;</strong>dans Grafana. Elle fourni des <strong>insights</strong> sur votre organisation. C'est là que nous présentons quelques informations clé sur les applications, les flavours et les images types. Également, puisque c'est un menu principal, vous pourrez trouver des raccourcis ici. Vous pouvez accéder à tous les templates de tableaux de bord Clever Cloud et également à ceux que vous aurez définis comme <strong>favoris</strong> dans Grafana. Vous trouverez également des liens pour accéder à ceux d'un service directement.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Il y a une tuile que je souhaite expliquer un peu plus, il s'agit du <strong>graphique d'état</strong>. A quoi sert-elle ? Chaque nouveau déploiement génère un nouvel état. Nous ne traçons que ceux qui se produisent durant la plage temporelle définie sur Grafana. Et enfin, ce tableau de bord inclus un metrics pour calculer le <strong>nombre de requête</strong>s moyen par minute, en se basant sur le nombre de logs d'accès.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"center","id":4862,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image aligncenter size-large"><img src="https://cdn.clever-cloud.com/uploads/2021/12/home.png" alt="Grafana Metrics Home" class="wp-image-4862"/><figcaption class="wp-element-caption">Tableau de bord principal de Grafana</figcaption></figure>
<!-- /wp:image -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Le tableau de bord du runtime d'application</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Parlons à présent du tableau de bord runtime. Dans ce tableau, on retrouve plusieurs segments. Pour commencer, un aperçu de <strong>l'état de votre application</strong>. Ensuite, on a accès à des sections plus détaillées. Ces sections traitent de metrics système classiques tels que le CPU, le chargement, la mémoire, le disque et le réseau. De plus, dans chacun des segments, vous trouverez plusieurs graphiques concernant <strong>l'utilisation</strong> et des indications prévisionnelles pour quand la <strong>ressource arrivera à saturation</strong>. Pour calculer ces derniers metrics, on y applique une régression linéaire, tout simplement.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"center","id":6235,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image aligncenter size-large"><img src="https://cdn.clever-cloud.com/uploads/2021/10/runtime-1.png" alt="runtime_board_grafana" class="wp-image-6235"/><figcaption class="wp-element-caption">Le tableaux de bord runtime de Grafana</figcaption></figure>
<!-- /wp:image -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Le tableau de bord des add-ons</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le dernier tableau de bord contient l'affichage des metrics des <em>add-ons</em>. Un premier panneau contient des metrics <strong>relatifs au système&nbsp;</strong>tels que le CPU, la mémoire, le disque ou le réseau. Un deuxième montre les metrics de la <strong>base de données</strong>. C'est là que vous récupérerez les informations telles que le nombre de connections, les transactions, les erreurs, les <em>deadlocks</em> ou les opérations sur les tuples. Néanmoins, nous collectons des données personnalisées sur un nombre limité d'<em>add-ons</em>. Il y en a en effet 4 : MySQL, PostgreSQL, Redis et MongoDB.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"center","id":4863,"width":669,"height":376,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image aligncenter size-large is-resized"><img src="https://cdn.clever-cloud.com/uploads/2021/12/addon.png" alt="" class="wp-image-4863" style="width:669px;height:376px" width="669" height="376"/><figcaption class="wp-element-caption">Le tableau de bord des add-ons de Grafana</figcaption></figure>
<!-- /wp:image -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Personnalisez votre organisation Grafana</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Vous avez la capacité d'<strong>éditer&nbsp;</strong>tous les tableaux dans votre organisation Grafana. Cela signifie que vous pouvez modifier nos templates. Cependant, nous les mettrons à jour de temps en temps. De ce fait, tous vos tableaux de bord seront toujours actualisés.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nous stockons tous nos templates dans le dossier <code>Clever Cloud</code>. Néanmoins, vous pouvez créer des tableaux de bord personnalisés <strong>n'importe où ailleurs</strong>, nous ne les modifierons jamais !</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L'affichage de Grafana <code>manage view</code> répertorie tous les dossiers et fichiers. Cet affichage est utile pour <strong>organiser</strong> et <strong>créer</strong> de nouveaux dossiers.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"center","id":3832,"width":709,"height":392,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image aligncenter size-large is-resized"><img src="https://cdn.clever-cloud.com/uploads/2021/10/Manage_Grafana.png" alt="" class="wp-image-3832" style="width:709px;height:392px" width="709" height="392"/><figcaption class="wp-element-caption">L'affichage gestion de Grafana</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>À tout moment, vous pouvez <strong>réinitialiser</strong> nos templates. Par exemple, si vous avez procédé à des modifications que vous souhaitez annuler. Dans ce cas, vous pouvez accéder à la page Grafana de votre organisation Clever Cloud. Puis cliquez sur <code>reset all dashboards</code>. Enfin, tous les <code>Clever Cloud</code> seront restaurés à leur précédent état.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Partagez votre expérience</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><strong>Merci d'avoir lu cet article</strong>, nous serions plus que ravis d'avoir votre retour ! Quel en sera votre usage ? Est-ce qu'il manque quelque chose dans ce que nous avons fourni, spécifique à votre utilisation ? Nous espérons que vous allez apprécier ce nouvel outil !</p>
<!-- /wp:paragraph -->]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2021/10/grafana-fr.webp" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="grafana fr" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2021/10/grafana-fr.webp 1400w, https://cdn.clever-cloud.com/uploads/2021/10/grafana-fr-300x116.webp 300w, https://cdn.clever-cloud.com/uploads/2021/10/grafana-fr-1024x395.webp 1024w, https://cdn.clever-cloud.com/uploads/2021/10/grafana-fr-768x296.webp 768w, https://cdn.clever-cloud.com/uploads/2021/10/grafana-fr-1368x528.webp 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><!-- wp:paragraph {"dropCap":true} -->
<p class="has-drop-cap">Chez Clever Cloud, nous estimons important de fournir un <strong>accès</strong> à <strong>nos metrics</strong> pour nos utilisateurs. C'est pourquoi vous pouvez d'ores et déjà visualiser vos <a href="https://www.clever.cloud/developers/administrate/metrics/overview/">métriques</a> et choisir entre WarpScript et <a href="https://www.clever.cloud/fr/blog/engineering-fr/2021/10/12/realiser-vos-requetes-promql-avec-erlenmeyer/">PromQL</a> pour les requêter. En plus de cela, nous souhaitions proposer plus qu'un <strong>simple accès à nos metrics </strong>pour nos utilisateurs ! Nous souhaitions proposer un outil pour vous permettre <strong>d'explorer</strong> et <strong>visualiser</strong> l'état de vos applications.&nbsp;Dans nos usages, nous utilisons beaucoup&nbsp;<a href="https://grafana.com/">Grafana</a>&nbsp;pour créer des tableaux de bord. Et si nous imaginons à présent que l'on puisse réutiliser cet outil pour créer des <strong>tableaux de bord dédiés</strong> ? C'est comme ça que nous avons eu l'idée de mettre<strong> Grafana à votre disposition</strong> !</p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"center","id":6239,"sizeSlug":"full","linkDestination":"none"} -->
<figure class="wp-block-image aligncenter size-full"><img src="https://cdn.clever-cloud.com/uploads/2021/10/grafana.svg" alt="grafana" class="wp-image-6239"/><figcaption class="wp-element-caption">Grafana</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>Dans cet article, nous parlerons de <strong>l'outil Grafana</strong>. Ensuite nous verrons comment nous l'avons <strong>déployé</strong>. Puis, nous détaillerons étape par étape comment activer <strong>la beta de Grafana</strong>&nbsp;dans votre organisation. Nous conclurons avec le <strong>contenu de nos tableaux de bord</strong>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">À propos de Grafana</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><a href="https://grafana.com/">Grafana</a> est un outil <strong>open-source&nbsp;</strong>qui entre autres choses de visualiser ses metrics, ses logs et ses alertes. Ainsi, l'objectif de Grafana est de faciliter la création de <a href="https://grafana.com/blog/2019/05/16/worth-a-look-public-grafana-dashboards/">tableaux de bord efficaces</a>. Grafana comprend également plusieurs <strong>tuiles, thèmes</strong> et fourni de <strong>nombreuses sources de données</strong>. Dans notre cas, nous utiliserons seulement <a href="https://github.com/ovh/ovh-warp10-datasource">Warp10</a> et&nbsp;<a href="https://grafana.com/docs/grafana/latest/datasources/prometheus/">Prometheus</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Grafana chez Clever Cloud</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Pour ceux qui souhaitent utiliser Grafana, c'est un outil simple à déployer dès à présent sur Clever Cloud. Pour les lecteurs francophones, vous pouvez suivre cet&nbsp;<a href="https://blog.kbdev.io/dev/2021/08/24/grafana-clevercloud.html">article de blog</a>. Également, nous avons publié quelques scripts pour l'automatiser sur <a href="https://github.com/CleverCloud/grafana-example">Github</a>. Lorsque nous souhaitions déployer un Grafana pour nos utilisateurs, nous avons décidé d'utiliser les mêmes scripts. C'est pourquoi notre instance déployée tourne comme une application runtime Clever Cloud. Nous activons une option avec <code>force https</code> et nous ajoutons la scalabilité dans l'onglet&nbsp;<code>scalability</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Notre architecture Grafana</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Comme Clever Cloud, Grafana propose des espaces de travail appelés "organisations" également. De ce fait, il est facile de <strong>lier les 2</strong> et le rendre disponible pour nos utilisateurs. Ensuite, nous avons créé un <em>API endpoint </em>pour connecter notre Grafana avec notre console. Toutes les <strong>sources de données</strong> exposées (Warp10 et Prometheus) sont <strong>gérées de notre côté</strong>. <strong>Ce qui signifie qu'aucun autre utilisateur ne peut les changer</strong>. Cependant nous mettons <strong>régulièrement à jour</strong> tous nos <strong><em>tokens</em></strong>. De la même manière, nous mettons régulièrement à jour tous les tableaux de bord personnalisés que nous fournissons.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Chaque utilisateur a des <strong>droits éditeurs</strong> dans ses organisations. Ce qui signifie que vous pouvez personnaliser les tableaux de bord autant que je vous le souhaitez. Nous verrons plus tard dans cet article, comment éviter les conflits avec nos templates.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Activer l'organisation beta de Grafana</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Pour activer notre beta, allez sur l'affichage organisation Clever Cloud dans la console Clever Cloud. Ensuite, accédez à une page intitulée <code>Metrics in Grafana</code>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":3} -->
<h3 class="wp-block-heading">Tableaux de bord disponibles</h3>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Nous avons créé 3 tableaux uniques pour vous ! Premièrement, nous commencerons par un tour d'horizon des metrics d'une organisation. Ensuite, nous rentrerons dans les détails d'une vue en mode runtime. Pour finir, nous verrons comment se présentent les métriques pour les <em>add-ons</em>. <strong>La plupart des graphiques des tableaux de bord Grafana contient une petite tuile d'information. Vous pourrez y récupérer quelques indications pour vous guider.</strong></p>
<!-- /wp:paragraph -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">L'organisation Clever Cloud</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>La vue "organisation" est le <strong>tableau de bord</strong> <strong>principal&nbsp;</strong>dans Grafana. Elle fourni des <strong>insights</strong> sur votre organisation. C'est là que nous présentons quelques informations clé sur les applications, les flavours et les images types. Également, puisque c'est un menu principal, vous pourrez trouver des raccourcis ici. Vous pouvez accéder à tous les templates de tableaux de bord Clever Cloud et également à ceux que vous aurez définis comme <strong>favoris</strong> dans Grafana. Vous trouverez également des liens pour accéder à ceux d'un service directement.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Il y a une tuile que je souhaite expliquer un peu plus, il s'agit du <strong>graphique d'état</strong>. A quoi sert-elle ? Chaque nouveau déploiement génère un nouvel état. Nous ne traçons que ceux qui se produisent durant la plage temporelle définie sur Grafana. Et enfin, ce tableau de bord inclus un metrics pour calculer le <strong>nombre de requête</strong>s moyen par minute, en se basant sur le nombre de logs d'accès.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"center","id":4862,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image aligncenter size-large"><img src="https://cdn.clever-cloud.com/uploads/2021/12/home.png" alt="Grafana Metrics Home" class="wp-image-4862"/><figcaption class="wp-element-caption">Tableau de bord principal de Grafana</figcaption></figure>
<!-- /wp:image -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Le tableau de bord du runtime d'application</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Parlons à présent du tableau de bord runtime. Dans ce tableau, on retrouve plusieurs segments. Pour commencer, un aperçu de <strong>l'état de votre application</strong>. Ensuite, on a accès à des sections plus détaillées. Ces sections traitent de metrics système classiques tels que le CPU, le chargement, la mémoire, le disque et le réseau. De plus, dans chacun des segments, vous trouverez plusieurs graphiques concernant <strong>l'utilisation</strong> et des indications prévisionnelles pour quand la <strong>ressource arrivera à saturation</strong>. Pour calculer ces derniers metrics, on y applique une régression linéaire, tout simplement.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"center","id":6235,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image aligncenter size-large"><img src="https://cdn.clever-cloud.com/uploads/2021/10/runtime-1.png" alt="runtime_board_grafana" class="wp-image-6235"/><figcaption class="wp-element-caption">Le tableaux de bord runtime de Grafana</figcaption></figure>
<!-- /wp:image -->

<!-- wp:heading {"level":4} -->
<h4 class="wp-block-heading">Le tableau de bord des add-ons</h4>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Le dernier tableau de bord contient l'affichage des metrics des <em>add-ons</em>. Un premier panneau contient des metrics <strong>relatifs au système&nbsp;</strong>tels que le CPU, la mémoire, le disque ou le réseau. Un deuxième montre les metrics de la <strong>base de données</strong>. C'est là que vous récupérerez les informations telles que le nombre de connections, les transactions, les erreurs, les <em>deadlocks</em> ou les opérations sur les tuples. Néanmoins, nous collectons des données personnalisées sur un nombre limité d'<em>add-ons</em>. Il y en a en effet 4 : MySQL, PostgreSQL, Redis et MongoDB.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"center","id":4863,"width":669,"height":376,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image aligncenter size-large is-resized"><img src="https://cdn.clever-cloud.com/uploads/2021/12/addon.png" alt="" class="wp-image-4863" style="width:669px;height:376px" width="669" height="376"/><figcaption class="wp-element-caption">Le tableau de bord des add-ons de Grafana</figcaption></figure>
<!-- /wp:image -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Personnalisez votre organisation Grafana</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p>Vous avez la capacité d'<strong>éditer&nbsp;</strong>tous les tableaux dans votre organisation Grafana. Cela signifie que vous pouvez modifier nos templates. Cependant, nous les mettrons à jour de temps en temps. De ce fait, tous vos tableaux de bord seront toujours actualisés.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Nous stockons tous nos templates dans le dossier <code>Clever Cloud</code>. Néanmoins, vous pouvez créer des tableaux de bord personnalisés <strong>n'importe où ailleurs</strong>, nous ne les modifierons jamais !</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>L'affichage de Grafana <code>manage view</code> répertorie tous les dossiers et fichiers. Cet affichage est utile pour <strong>organiser</strong> et <strong>créer</strong> de nouveaux dossiers.</p>
<!-- /wp:paragraph -->

<!-- wp:image {"align":"center","id":3832,"width":709,"height":392,"sizeSlug":"large","linkDestination":"none"} -->
<figure class="wp-block-image aligncenter size-large is-resized"><img src="https://cdn.clever-cloud.com/uploads/2021/10/Manage_Grafana.png" alt="" class="wp-image-3832" style="width:709px;height:392px" width="709" height="392"/><figcaption class="wp-element-caption">L'affichage gestion de Grafana</figcaption></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>À tout moment, vous pouvez <strong>réinitialiser</strong> nos templates. Par exemple, si vous avez procédé à des modifications que vous souhaitez annuler. Dans ce cas, vous pouvez accéder à la page Grafana de votre organisation Clever Cloud. Puis cliquez sur <code>reset all dashboards</code>. Enfin, tous les <code>Clever Cloud</code> seront restaurés à leur précédent état.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2 class="wp-block-heading">Partagez votre expérience</h2>
<!-- /wp:heading -->

<!-- wp:paragraph -->
<p><strong>Merci d'avoir lu cet article</strong>, nous serions plus que ravis d'avoir votre retour ! Quel en sera votre usage ? Est-ce qu'il manque quelque chose dans ce que nous avons fourni, spécifique à votre utilisation ? Nous espérons que vous allez apprécier ce nouvel outil !</p>
<!-- /wp:paragraph -->]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Réaliser vos requêtes PromQL avec Erlenmeyer</title>
		<link>https://www.clever.cloud/fr/blog/engineering-fr/2021/10/12/realiser-vos-requetes-promql-avec-erlenmeyer/</link>
		
		<dc:creator><![CDATA[Aurélien Hebert]]></dc:creator>
		<pubDate>Tue, 12 Oct 2021 09:10:00 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[data]]></category>
		<category><![CDATA[metrics]]></category>
		<category><![CDATA[Observabilité]]></category>
		<category><![CDATA[prometheus]]></category>
		<category><![CDATA[warp10]]></category>
		<guid isPermaLink="false">https://www.clever-cloud.com/blog/non-classifiee/2021/10/21/realiser-vos-requetes-promql-avec-erlenmeyer/</guid>

					<description><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2021/10/erlenmeyer-promql-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="erlenmeyer promql 1" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2021/10/erlenmeyer-promql-1.jpg 1400w, https://cdn.clever-cloud.com/uploads/2021/10/erlenmeyer-promql-1-300x116.jpg 300w, https://cdn.clever-cloud.com/uploads/2021/10/erlenmeyer-promql-1-1024x395.jpg 1024w, https://cdn.clever-cloud.com/uploads/2021/10/erlenmeyer-promql-1-768x296.jpg 768w, https://cdn.clever-cloud.com/uploads/2021/10/erlenmeyer-promql-1-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><div>Il y a fort à parier que vous utilisez Clever Cloud pour déployer des <strong>applications</strong> ou d'autres <strong>services managés</strong>. Mais saviez-vous que tous ces services génèrent des <strong>métriques.</strong> Et qu'en plus, <a href="https://www.clever.cloud/developers/administrate/metrics/overview/">vous avez déjà <strong>accès</strong> à ce service</a> ? En effet, nous enregistrons de notre côté un <strong>agent</strong> dont le travail est de collecter toutes les données locales.<span id="more-3787"></span>Une fois que c'est fait, elles sont stockées dans une base de données Time Series appelée <strong><a href="https://www.warp10.io/">Warp10</a></strong>.</div>
<div>

<img class="size-medium wp-image-3049 alignleft" src="https://cdn.clever-cloud.com/uploads/2021/08/erlenmeyer_logo-318x101.png" />
<div>
<div>Pour simplifier l'adoption de Warp10, l'équipe de OVHcloud Metrics a construit il y a quelques années l'outil <strong><a href="https://github.com/ovh/erlenmeyer">Erlenmeyer</a></strong>. Premièrement, cet outil permet l'utilisation de <strong>plusieurs protocoles open source</strong> tels que PromQL, OpenTSDB, InfluxQL ou Graphite pour interroger les métriques stockées de Warp10.</div>
<div>Deuxièmement, Erlenmeyer fonctionne comme un proxy devant un cluster Warp10. Ensuite, nous avons déployé quelques instances de Erlenmeyer devant notre infrastructure Warp10, fournissant de nouvelles façons d'interroger les métriques de vos applications.</div>
<div>Par ailleurs, nous avons déployé un ensemble d'instances Erlenmeyer devant notre infrastructure Warp10.</div>
<blockquote>Dans ce billet, nous allons passer en revue ce qu'apporte Erlenmeyer et comment traiter les métriques des services Clever Cloud avec <strong>PromQL</strong>.</blockquote>
</div>
<div>
<h2>Protocoles d'Erlenmeyer</h2>
<div>
<div>Erlenmeyer active presque entièrement <a href="https://www.ovh.com/blog/erlenmeyer-and-promql-compatibility/">les requêtes PromQL </a>, OpenTSDB, InfluxQL et certaines des fonctions Graphite. De plus, vous pouvez récupérer la documentation sur l'implémentation et l'utilisation de chaque protocole sur le GitHub d'Erlenmeyer:</div>
<div>
<ul>
 	<li><a href="https://github.com/ovh/erlenmeyer/blob/master/doc/promql.md">PromQL</a></li>
 	<li><a href="https://github.com/ovh/erlenmeyer/blob/master/doc/openTSDB.md">OpenTSDB</a></li>
 	<li><a href="https://github.com/ovh/erlenmeyer/blob/master/doc/influxql.md">InfluxQL</a></li>
 	<li><a href="https://github.com/ovh/erlenmeyer/blob/master/doc/graphite.md">Graphite</a></li>
</ul>
Sur Clever Cloud, nous avons déployé un <code>Erlenmeyer</code> devant notre backend Warp10. Cela signifie que <strong>tous</strong> ces <strong>protocoles open source</strong> peuvent être utilisés pour interroger les métriques de notre application. Le <strong>host</strong> est <code>https://PROTO-c1-warp10-clevercloud-customers.services.clever-cloud.com/PROTO</code> avec <code>PROTO</code> étant:

</div>
<div>
<div>
<ul>
 	<li>pour PromQL: <code>prometheus</code>,</li>
 	<li>pour OpenTSDB: <code>opentsdb</code>,</li>
 	<li>pour InfluxQL: <code>influxql</code>,</li>
 	<li>et pour Graphite: <code>graphite</code>.</li>
</ul>
<div>Pour authentifier votre requête, vous devez utiliser le TOKEN READ de Warp10 comme mot de passe de l'authentification de base. Vous pouvez le trouver dans le panneau des métriques de toute application Clever Cloud :</div>
<div></div>
<div></div>
<div>
<div><img class="wp-image-3059 aligncenter" src="https://cdn.clever-cloud.com/uploads/2021/09/Token-318x133.png" alt="" width="1102" height="461" /></div>
<div></div>
</div>
</div>
</div>
<div></div>
<div>
<div>
<div>
<div>
<h2>Retrouver les données <em>in memory</em> avec PromQL</h2>
<div>D'abord, stockons le token Warp10 <code>READ TOKEN</code> en tant que <code>APP_ID</code> as an <strong>variable d'environment</strong>:</div>
</div>
<div></div>
</div>
<div>
<div>
<pre><code class="language-shell">export TOKEN=MY_AWESOME_TOKEN # Remplacez la valeur par votre token Clever Cloud Warp10
export APP_ID=app_test # Remplacez la valeur par une de vos propres applications Clever Cloud.
</code></pre>
</div>
</div>
</div>
<div>
<h3>Récupérer les données brutes</h3>
</div>
<div>
<div>Pour récupérer le <code>mem.used_percent</code> dans <strong>PromQL</strong>, nous avons besoin d'une requête <code>HTTP GET</code> vers Erlenmeyer, avec le TOKEN en basic AUTH. Dans ce cas, la requête PromQL <code>GET</code> requiert quatre paramètres: query, start, end et step. De même, pour en savoir plus sur le langage PromQL, vous pouvez lire la <a href="https://prometheus.io/docs/prometheus/latest/querying/basics/">Documentation de Prometheus</a>. Dans notre cas, nous allons créer une requête simple pour obtenir les données brutes :</div>
</div>
<div>
<div>
<div>
<pre><code class="language-shell">api/v1/query_range?
query=mem.used_percent{app_id="$APP_ID"}&amp;
start=1623289800&amp;
end=1623311400&amp;
step=120s</code></pre>
</div>
<div>
<div>Le paramètre <code>query</code> est utilisé pour les requêtes PromQL: <code>start</code> et <code>end</code> sont des timestamps en millisecondes correspondant à la limite de temps pour obtenir des données. Et le <code>step</code> est le paramètre de <strong>sampling</strong>.</div>
<div>Comme les données sont collectées environ toutes les minutes, fixons au moins le double de cette durée: <code>120s</code>.</div>
<div></div>
<div>Maintenant, pour obtenir le résultat, exécutons un <code>cURL</code> en <strong>url encoded</strong>:</div>
<div></div>
</div>
<pre><code class="language-shell">curl --request GET --url "https://u:${TOKEN}@prometheus-c1-warp10-clevercloud-customers.services.clever-cloud.com/prometheus/api/v1/query_range?query=mem.used_percent%7Bapp_id%3D%22${APP_ID}%22%7D&amp;start=1623289800&amp;end=1623311400&amp;step=120s" --header 'Content-Type: application/json'
</code></pre>
<div>
<div>
<h3>Exemple "Group By"</h3>
Un groupe par requête peut être utile dans le cas de Clever Cloud pour fusionner certaines séries (déploiements ou instances multiples). Ainsi, nous allons <strong>regrouper</strong> les données en fonction des étiquettes <code>app_id</code> dans l'exemple suivant.
<div>Nous réutiliserons la variable stockée <code>READ_TOKEN</code> et <code>APP_ID</code>. Pour calculer un groupe par dans notre cas, nous appliquons la <code>max</code> PromQL <strong>fonction</strong> regroupée par le label de la série <code>app_id</code> :</div>
<div></div>
</div>
<pre><code class="language-shell">api/v1/query_range?
query=max(mem.used_percent{app_id="$APP_ID"}) by (app_id)&amp;
start=1623289800&amp;
end=1623311400&amp;
step=120s
</code></pre>
<div>
<div>Enfin pour obtenir le résultat, exécutez le <code>cURL</code> <strong>url encodé</strong> suivant :</div>
<div></div>
<pre><code class="language-shell">curl --request GET --url "https://u:${TOKEN}@prometheus-c1-warp10-clevercloud-customers.services.clever-cloud.com/prometheus/api/v1/query_range?query=max(mem.used_percent%7Bapp_id%3D%22${APP_ID}%22%7D)%20by%20(app_id)&amp;start=1623289800&amp;end=1623311400&amp;step=120s" --header 'Content-Type: application/json'
</code></pre>
</div>
</div>
<div>
<div>
<h2>Source de données Grafana PromQL</h2>
Vous pouvez utiliser <a href="https://grafana.com/">Grafana</a> pour créer vos propres tableaux de bord, qui est une application Web de visualisation interactive open source (pour déployer un Grafana en tant qu'application Clever Cloud, nous fournissez un <a href="https://github.com/CleverCloud/grafana-example">exemple github</a> et vous pouvez également suivre cet <a href="https://blog.kbdev.io/dev //2021/08/24/grafana-clevercloud.html">Article de blog en français</a>). Bien sûr, vous pouvez configurer une <strong>source de données PromQL</strong> pour obtenir les métriques des applications Clever Cloud :

</div>
<ul>
 	<li>créer une source <strong>Prométhée</strong>,</li>
 	<li>puis définissez la source Prometheus <strong>host</strong> sur <code>https://prometheus-c1-warp10-clevercloud-customers.services.clever-cloud.com/prometheus</code>,&lt;/li &gt;</li>
 	<li>activez en plus l'<strong>authentification de base</strong> avec un <strong>utilisateur</strong> défini sur <code>metrics</code> et un <strong>mot de passe</strong> contenant votre <code>token Warp10</code>,</li>
 	<li>pour conclure, cliquez sur <code>Enregistrer et tester</code>, votre source de données Prometheus devrait maintenant fonctionner !</li>
</ul>
</div>
</div>
<img class="aligncenter " src="https://cdn.clever-cloud.com/uploads/2021/09/PromQL_source_grafana.png" alt="" />

</div>
<div>
<div>
<h2>Interface utilisateur Prometheus avec remote_read</h2>
Comme avec Grafana, vous pouvez utiliser <a href="https://prometheus.io/docs/introduction/overview/">Prometheus</a> et tracer des métriques Clever Cloud dans l'<strong>interface utilisateur Web</strong>. Et en effet, remplissez simplement votre <strong>configuration</strong> Prometheus avec une source <strong>remote_read </strong>:
<pre><code class="language-yaml">api/v1/query_range ?
remote_read:
  - url: "https://prometheus-c1-warp10-clevercloud-customers.services.clever-cloud.com/prometheus/remote_read/"
  basic_auth:
    username: "métriques"
    password: "TOKEN"
</code></pre>
<div></div>
<div>Redémarrez Prometheus, puis exécutez simplement une requête Prometheus dans l'interface utilisateur comme ci-dessous :</div>
<pre><code class="language-shell">{ __name__= "mem.used_percent", app_id="$APP_ID" }
</code></pre>
<div>Notre backend est capable de résoudre correctement les <code>.</code> qui sont des caractères prométhéens invalides. Néanmoins, la réponse du backend traduira toujours ces valeurs <code>.</code> dans les données de la série (nom ou étiquettes) en <code>_</code> valides.</div>
</div>
<h2>Pour résumer</h2>
Comme vous pouvez le voir avec ce post, vous pouvez obtenir des métriques des applications et des add-ons de Clever Cloud. Actuellement, vous avez <strong>un moyen supplémentaire</strong> de les interroger, car Erlenmeyer permet l'utilisation du <code>PromQL</code>. Cependant l'inconvénient est que vous devrez <strong>mettre à jour régulièrement votre token</strong>, car ils expirent dans quelques jours. Nous travaillons sur une solution pour améliorer l'expérience utilisateur. Tout d'abord, nous fournirons bientôt à nos clients l'accès à un <strong>Grafana</strong> avec <strong>source de données configurée et tableaux de bord déjà pré-remplis</strong>. Le <strong>token</strong> sera géré de notre côté et vous pourrez ensuite construire vos propres graphiques avec des requêtes <code>PromQL</code> ou <code>WarpScript</code>.

</div>
</div>
</div>
</div>
</div>]]></description>
										<content:encoded><![CDATA[<p><img width="1400" height="540" src="https://cdn.clever-cloud.com/uploads/2021/10/erlenmeyer-promql-1.jpg" class="attachment-post-thumbnail size-post-thumbnail wp-post-image" alt="erlenmeyer promql 1" decoding="async" loading="lazy" srcset="https://cdn.clever-cloud.com/uploads/2021/10/erlenmeyer-promql-1.jpg 1400w, https://cdn.clever-cloud.com/uploads/2021/10/erlenmeyer-promql-1-300x116.jpg 300w, https://cdn.clever-cloud.com/uploads/2021/10/erlenmeyer-promql-1-1024x395.jpg 1024w, https://cdn.clever-cloud.com/uploads/2021/10/erlenmeyer-promql-1-768x296.jpg 768w, https://cdn.clever-cloud.com/uploads/2021/10/erlenmeyer-promql-1-1368x528.jpg 1368w" sizes="auto, (max-width: 1400px) 100vw, 1400px" /></p><div>Il y a fort à parier que vous utilisez Clever Cloud pour déployer des <strong>applications</strong> ou d'autres <strong>services managés</strong>. Mais saviez-vous que tous ces services génèrent des <strong>métriques.</strong> Et qu'en plus, <a href="https://www.clever.cloud/developers/administrate/metrics/overview/">vous avez déjà <strong>accès</strong> à ce service</a> ? En effet, nous enregistrons de notre côté un <strong>agent</strong> dont le travail est de collecter toutes les données locales.<span id="more-3787"></span>Une fois que c'est fait, elles sont stockées dans une base de données Time Series appelée <strong><a href="https://www.warp10.io/">Warp10</a></strong>.</div>
<div>

<img class="size-medium wp-image-3049 alignleft" src="https://cdn.clever-cloud.com/uploads/2021/08/erlenmeyer_logo-318x101.png" />
<div>
<div>Pour simplifier l'adoption de Warp10, l'équipe de OVHcloud Metrics a construit il y a quelques années l'outil <strong><a href="https://github.com/ovh/erlenmeyer">Erlenmeyer</a></strong>. Premièrement, cet outil permet l'utilisation de <strong>plusieurs protocoles open source</strong> tels que PromQL, OpenTSDB, InfluxQL ou Graphite pour interroger les métriques stockées de Warp10.</div>
<div>Deuxièmement, Erlenmeyer fonctionne comme un proxy devant un cluster Warp10. Ensuite, nous avons déployé quelques instances de Erlenmeyer devant notre infrastructure Warp10, fournissant de nouvelles façons d'interroger les métriques de vos applications.</div>
<div>Par ailleurs, nous avons déployé un ensemble d'instances Erlenmeyer devant notre infrastructure Warp10.</div>
<blockquote>Dans ce billet, nous allons passer en revue ce qu'apporte Erlenmeyer et comment traiter les métriques des services Clever Cloud avec <strong>PromQL</strong>.</blockquote>
</div>
<div>
<h2>Protocoles d'Erlenmeyer</h2>
<div>
<div>Erlenmeyer active presque entièrement <a href="https://www.ovh.com/blog/erlenmeyer-and-promql-compatibility/">les requêtes PromQL </a>, OpenTSDB, InfluxQL et certaines des fonctions Graphite. De plus, vous pouvez récupérer la documentation sur l'implémentation et l'utilisation de chaque protocole sur le GitHub d'Erlenmeyer:</div>
<div>
<ul>
 	<li><a href="https://github.com/ovh/erlenmeyer/blob/master/doc/promql.md">PromQL</a></li>
 	<li><a href="https://github.com/ovh/erlenmeyer/blob/master/doc/openTSDB.md">OpenTSDB</a></li>
 	<li><a href="https://github.com/ovh/erlenmeyer/blob/master/doc/influxql.md">InfluxQL</a></li>
 	<li><a href="https://github.com/ovh/erlenmeyer/blob/master/doc/graphite.md">Graphite</a></li>
</ul>
Sur Clever Cloud, nous avons déployé un <code>Erlenmeyer</code> devant notre backend Warp10. Cela signifie que <strong>tous</strong> ces <strong>protocoles open source</strong> peuvent être utilisés pour interroger les métriques de notre application. Le <strong>host</strong> est <code>https://PROTO-c1-warp10-clevercloud-customers.services.clever-cloud.com/PROTO</code> avec <code>PROTO</code> étant:

</div>
<div>
<div>
<ul>
 	<li>pour PromQL: <code>prometheus</code>,</li>
 	<li>pour OpenTSDB: <code>opentsdb</code>,</li>
 	<li>pour InfluxQL: <code>influxql</code>,</li>
 	<li>et pour Graphite: <code>graphite</code>.</li>
</ul>
<div>Pour authentifier votre requête, vous devez utiliser le TOKEN READ de Warp10 comme mot de passe de l'authentification de base. Vous pouvez le trouver dans le panneau des métriques de toute application Clever Cloud :</div>
<div></div>
<div></div>
<div>
<div><img class="wp-image-3059 aligncenter" src="https://cdn.clever-cloud.com/uploads/2021/09/Token-318x133.png" alt="" width="1102" height="461" /></div>
<div></div>
</div>
</div>
</div>
<div></div>
<div>
<div>
<div>
<div>
<h2>Retrouver les données <em>in memory</em> avec PromQL</h2>
<div>D'abord, stockons le token Warp10 <code>READ TOKEN</code> en tant que <code>APP_ID</code> as an <strong>variable d'environment</strong>:</div>
</div>
<div></div>
</div>
<div>
<div>
<pre><code class="language-shell">export TOKEN=MY_AWESOME_TOKEN # Remplacez la valeur par votre token Clever Cloud Warp10
export APP_ID=app_test # Remplacez la valeur par une de vos propres applications Clever Cloud.
</code></pre>
</div>
</div>
</div>
<div>
<h3>Récupérer les données brutes</h3>
</div>
<div>
<div>Pour récupérer le <code>mem.used_percent</code> dans <strong>PromQL</strong>, nous avons besoin d'une requête <code>HTTP GET</code> vers Erlenmeyer, avec le TOKEN en basic AUTH. Dans ce cas, la requête PromQL <code>GET</code> requiert quatre paramètres: query, start, end et step. De même, pour en savoir plus sur le langage PromQL, vous pouvez lire la <a href="https://prometheus.io/docs/prometheus/latest/querying/basics/">Documentation de Prometheus</a>. Dans notre cas, nous allons créer une requête simple pour obtenir les données brutes :</div>
</div>
<div>
<div>
<div>
<pre><code class="language-shell">api/v1/query_range?
query=mem.used_percent{app_id="$APP_ID"}&amp;
start=1623289800&amp;
end=1623311400&amp;
step=120s</code></pre>
</div>
<div>
<div>Le paramètre <code>query</code> est utilisé pour les requêtes PromQL: <code>start</code> et <code>end</code> sont des timestamps en millisecondes correspondant à la limite de temps pour obtenir des données. Et le <code>step</code> est le paramètre de <strong>sampling</strong>.</div>
<div>Comme les données sont collectées environ toutes les minutes, fixons au moins le double de cette durée: <code>120s</code>.</div>
<div></div>
<div>Maintenant, pour obtenir le résultat, exécutons un <code>cURL</code> en <strong>url encoded</strong>:</div>
<div></div>
</div>
<pre><code class="language-shell">curl --request GET --url "https://u:${TOKEN}@prometheus-c1-warp10-clevercloud-customers.services.clever-cloud.com/prometheus/api/v1/query_range?query=mem.used_percent%7Bapp_id%3D%22${APP_ID}%22%7D&amp;start=1623289800&amp;end=1623311400&amp;step=120s" --header 'Content-Type: application/json'
</code></pre>
<div>
<div>
<h3>Exemple "Group By"</h3>
Un groupe par requête peut être utile dans le cas de Clever Cloud pour fusionner certaines séries (déploiements ou instances multiples). Ainsi, nous allons <strong>regrouper</strong> les données en fonction des étiquettes <code>app_id</code> dans l'exemple suivant.
<div>Nous réutiliserons la variable stockée <code>READ_TOKEN</code> et <code>APP_ID</code>. Pour calculer un groupe par dans notre cas, nous appliquons la <code>max</code> PromQL <strong>fonction</strong> regroupée par le label de la série <code>app_id</code> :</div>
<div></div>
</div>
<pre><code class="language-shell">api/v1/query_range?
query=max(mem.used_percent{app_id="$APP_ID"}) by (app_id)&amp;
start=1623289800&amp;
end=1623311400&amp;
step=120s
</code></pre>
<div>
<div>Enfin pour obtenir le résultat, exécutez le <code>cURL</code> <strong>url encodé</strong> suivant :</div>
<div></div>
<pre><code class="language-shell">curl --request GET --url "https://u:${TOKEN}@prometheus-c1-warp10-clevercloud-customers.services.clever-cloud.com/prometheus/api/v1/query_range?query=max(mem.used_percent%7Bapp_id%3D%22${APP_ID}%22%7D)%20by%20(app_id)&amp;start=1623289800&amp;end=1623311400&amp;step=120s" --header 'Content-Type: application/json'
</code></pre>
</div>
</div>
<div>
<div>
<h2>Source de données Grafana PromQL</h2>
Vous pouvez utiliser <a href="https://grafana.com/">Grafana</a> pour créer vos propres tableaux de bord, qui est une application Web de visualisation interactive open source (pour déployer un Grafana en tant qu'application Clever Cloud, nous fournissez un <a href="https://github.com/CleverCloud/grafana-example">exemple github</a> et vous pouvez également suivre cet <a href="https://blog.kbdev.io/dev //2021/08/24/grafana-clevercloud.html">Article de blog en français</a>). Bien sûr, vous pouvez configurer une <strong>source de données PromQL</strong> pour obtenir les métriques des applications Clever Cloud :

</div>
<ul>
 	<li>créer une source <strong>Prométhée</strong>,</li>
 	<li>puis définissez la source Prometheus <strong>host</strong> sur <code>https://prometheus-c1-warp10-clevercloud-customers.services.clever-cloud.com/prometheus</code>,&lt;/li &gt;</li>
 	<li>activez en plus l'<strong>authentification de base</strong> avec un <strong>utilisateur</strong> défini sur <code>metrics</code> et un <strong>mot de passe</strong> contenant votre <code>token Warp10</code>,</li>
 	<li>pour conclure, cliquez sur <code>Enregistrer et tester</code>, votre source de données Prometheus devrait maintenant fonctionner !</li>
</ul>
</div>
</div>
<img class="aligncenter " src="https://cdn.clever-cloud.com/uploads/2021/09/PromQL_source_grafana.png" alt="" />

</div>
<div>
<div>
<h2>Interface utilisateur Prometheus avec remote_read</h2>
Comme avec Grafana, vous pouvez utiliser <a href="https://prometheus.io/docs/introduction/overview/">Prometheus</a> et tracer des métriques Clever Cloud dans l'<strong>interface utilisateur Web</strong>. Et en effet, remplissez simplement votre <strong>configuration</strong> Prometheus avec une source <strong>remote_read </strong>:
<pre><code class="language-yaml">api/v1/query_range ?
remote_read:
  - url: "https://prometheus-c1-warp10-clevercloud-customers.services.clever-cloud.com/prometheus/remote_read/"
  basic_auth:
    username: "métriques"
    password: "TOKEN"
</code></pre>
<div></div>
<div>Redémarrez Prometheus, puis exécutez simplement une requête Prometheus dans l'interface utilisateur comme ci-dessous :</div>
<pre><code class="language-shell">{ __name__= "mem.used_percent", app_id="$APP_ID" }
</code></pre>
<div>Notre backend est capable de résoudre correctement les <code>.</code> qui sont des caractères prométhéens invalides. Néanmoins, la réponse du backend traduira toujours ces valeurs <code>.</code> dans les données de la série (nom ou étiquettes) en <code>_</code> valides.</div>
</div>
<h2>Pour résumer</h2>
Comme vous pouvez le voir avec ce post, vous pouvez obtenir des métriques des applications et des add-ons de Clever Cloud. Actuellement, vous avez <strong>un moyen supplémentaire</strong> de les interroger, car Erlenmeyer permet l'utilisation du <code>PromQL</code>. Cependant l'inconvénient est que vous devrez <strong>mettre à jour régulièrement votre token</strong>, car ils expirent dans quelques jours. Nous travaillons sur une solution pour améliorer l'expérience utilisateur. Tout d'abord, nous fournirons bientôt à nos clients l'accès à un <strong>Grafana</strong> avec <strong>source de données configurée et tableaux de bord déjà pré-remplis</strong>. Le <strong>token</strong> sera géré de notre côté et vous pourrez ensuite construire vos propres graphiques avec des requêtes <code>PromQL</code> ou <code>WarpScript</code>.

</div>
</div>
</div>
</div>
</div>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
