{"id":51095,"date":"2026-07-21T16:19:22","date_gmt":"2026-07-21T09:19:22","guid":{"rendered":"\/fr\/tutoriels\/?p=51095"},"modified":"2026-07-20T16:21:00","modified_gmt":"2026-07-20T09:21:00","slug":"stack-lgtm","status":"publish","type":"post","link":"\/fr\/tutoriels\/stack-lgtm\/","title":{"rendered":"Comment configurer la pile LGTM pour mettre en place une observabilit\u00e9 de bout en bout"},"content":{"rendered":"<p>La pile LGTM, compos&eacute;e de <strong>Loki<\/strong> pour les journaux, <strong>Grafana<\/strong> pour la visualisation, <strong>Tempo<\/strong> pour le tra&ccedil;age et <strong>Mimir<\/strong> pour les m&eacute;triques, est une suite d&rsquo;observabilit&eacute; open source d&eacute;velopp&eacute;e par Grafana Labs.<\/p><p>Elle regroupe les m&eacute;triques, les journaux et les traces au sein d&rsquo;une plateforme unique, ce qui offre aux &eacute;quipes une vue d&rsquo;ensemble des performances du syst&egrave;me.<\/p><p>Dans ce guide, vous allez configurer la pile LGTM sur un serveur priv&eacute; virtuel (VPS). Vous configurerez chaque composant, puis cr&eacute;erez un tableau de bord d&rsquo;observabilit&eacute; afin d&rsquo;obtenir une visibilit&eacute; compl&egrave;te sur vos applications et votre infrastructure.<\/p><h2 class='wp-block-heading \\\"wp-block-heading\\\"' id='\\\"h-what-is-end-to-end-observability\\\"'>Qu&rsquo;est-ce que l&rsquo;observabilit&eacute; de bout en bout ?<\/h2><p>L&rsquo;observabilit&eacute; de bout en bout consiste &agrave; surveiller et &agrave; analyser l&rsquo;ensemble du cycle de vie d&rsquo;une application, depuis les interactions des utilisateurs sur le front-end jusqu&rsquo;aux services et composants d&rsquo;infrastructure du back-end.<\/p><p>Contrairement &agrave; la supervision traditionnelle, qui se limite au suivi de m&eacute;triques pr&eacute;d&eacute;finies pour &eacute;valuer l&rsquo;&eacute;tat d&rsquo;un syst&egrave;me et d&eacute;tecter des probl&egrave;mes connus, l&rsquo;observabilit&eacute; de bout en bout offre une vue unifi&eacute;e des &eacute;l&eacute;ments suivants :<\/p><ul class='wp-block-list \\\"wp-block-list\\\"'>\n<li><strong>Interactions utilisateur<\/strong> &ndash; suivi des m&eacute;triques du front-end et du comportement des utilisateurs.<\/li>\n\n\n\n<li><strong>Performances des applications<\/strong> &ndash; surveillance des services back-end et des API internes.<\/li>\n\n\n\n<li><strong>&Eacute;tat de l&rsquo;infrastructure<\/strong> &ndash; &eacute;valuation de l&rsquo;&eacute;tat des serveurs, des bases de donn&eacute;es et des r&eacute;seaux.<\/li>\n\n\n\n<li><strong>Services tiers<\/strong> &ndash; surveillance des d&eacute;pendances, comme les passerelles de paiement ou les fournisseurs de services cloud.<\/li>\n<\/ul><p>En corr&eacute;lant les donn&eacute;es provenant de l&rsquo;ensemble de ces couches, les &eacute;quipes comprennent plus facilement l&rsquo;impact des changements apport&eacute;s &agrave; un composant sur les performances globales du syst&egrave;me et peuvent d&eacute;tecter rapidement les probl&egrave;mes, o&ugrave; qu&rsquo;ils surviennent.<\/p><p>La pile LGTM prend en charge l&rsquo;observabilit&eacute; de bout en bout en instrumentant les applications afin de collecter des donn&eacute;es de t&eacute;l&eacute;m&eacute;trie : <strong>journaux<\/strong>, <strong>m&eacute;triques<\/strong> et <strong>traces<\/strong>. Elle agr&egrave;ge ensuite ces donn&eacute;es &agrave; l&rsquo;aide de ses diff&eacute;rents composants et les affiche dans des tableaux de bord Grafana pour en faciliter l&rsquo;analyse.<\/p><p>Cette approche pr&eacute;sente plusieurs avantages :<\/p><ul class='wp-block-list \\\"wp-block-list\\\"'>\n<li><strong>Supervision compl&egrave;te<\/strong> &ndash; la pile LGTM offre une vue d&rsquo;ensemble du comportement du syst&egrave;me, ce qui facilite la d&eacute;tection et la r&eacute;solution proactives des probl&egrave;mes.<\/li>\n\n\n\n<li><strong>D&eacute;pannage plus efficace<\/strong> &ndash; la corr&eacute;lation des donn&eacute;es issues de plusieurs sources aide les &eacute;quipes &agrave; identifier rapidement les causes profondes des incidents, r&eacute;duisant ainsi le temps moyen de r&eacute;solution (MTTR).<\/li>\n\n\n\n<li><strong>&Eacute;volutivit&eacute;<\/strong> &ndash; chaque composant de la pile LGTM peut &eacute;voluer horizontalement afin de prendre en charge des syst&egrave;mes distribu&eacute;s et complexes.<\/li>\n\n\n\n<li><strong>Rentabilit&eacute;<\/strong> &ndash; en tant que solution open source, la pile LGTM &eacute;limine les frais de licence associ&eacute;s aux outils d&rsquo;observabilit&eacute; propri&eacute;taires.<\/li>\n<\/ul><h2 class='wp-block-heading \\\"wp-block-heading\\\"' id='\\\"h-prerequisites\\\"'>Pr&eacute;requis<\/h2><p>Avant de configurer la pile LGTM, pr&eacute;parez une instance VPS qui l&rsquo;h&eacute;bergera. Grafana, qui constitue l&rsquo;interface principale de visualisation des donn&eacute;es d&rsquo;observabilit&eacute;, ne n&eacute;cessite pas de ressources importantes. Vous pouvez ex&eacute;cuter la pile LGTM compl&egrave;te sur un VPS disposant de :<\/p><ul class='wp-block-list \\\"wp-block-list\\\"'>\n<li><strong>1<\/strong> c&oelig;ur de processeur<\/li>\n\n\n\n<li><strong>512 Mo<\/strong> de RAM<\/li>\n<\/ul><p>Toutefois, la pile LGTM &eacute;tant destin&eacute;e &agrave; surveiller les performances du syst&egrave;me et le comportement des applications, choisissez une offre VPS adapt&eacute;e &agrave; la taille de votre infrastructure et &agrave; votre charge de travail.<\/p><p>Le service <a href=\"\/fr\/vps\">VPS de Hostinger<\/a> constitue une excellente option, avec des offres allant de <strong>\u20ac5.49\/mois<\/strong>.<\/p><p>Nos offres proposent jusqu&rsquo;&agrave; <strong>8 vCPU<\/strong>, <strong>32 Go de RAM<\/strong> et <strong>400 Go<\/strong> de stockage <strong>NVMe<\/strong>. Vous pourrez les faire &eacute;voluer &agrave; tout moment si votre plateforme d&rsquo;observabilit&eacute; n&eacute;cessite davantage de puissance ou d&rsquo;espace de stockage.<\/p><figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.hostinger.com\/fr\/vps\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-VPS-hosting_in-text-banner-1024x300-1.png\/public\" alt=\"\" class=\"wp-image-41471\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-VPS-hosting_in-text-banner-1024x300-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-VPS-hosting_in-text-banner-1024x300-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-VPS-hosting_in-text-banner-1024x300-1.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2022\/12\/FR-VPS-hosting_in-text-banner-1024x300-1.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><p>Ensuite, configurez votre pare-feu. Ouvrez les ports suivants sur votre VPS afin de garantir le bon fonctionnement des composants de la pile LGTM :<\/p><figure tabindex=\"0\" class=\"wp-block-table\"><table><tbody><tr><td><strong>Port<\/strong><\/td><td><strong>Composant<\/strong><\/td><td><strong>R&ocirc;le<\/strong><\/td><\/tr><tr><td><strong>3000\/TCP<\/strong><\/td><td>Grafana<\/td><td>Interface web pour les tableaux de bord et la gestion des sources de donn&eacute;es<\/td><\/tr><tr><td><strong>3100\/TCP<\/strong><\/td><td>Loki<\/td><td>Re&ccedil;oit les donn&eacute;es de journaux et ex&eacute;cute les requ&ecirc;tes sur les journaux<\/td><\/tr><tr><td><strong>3200\/TCP<\/strong><\/td><td>Tempo<\/td><td>Collecte et interroge les donn&eacute;es de tra&ccedil;age<\/td><\/tr><tr><td><strong>9090\/TCP<\/strong><\/td><td>Mimir (bas&eacute; sur Prometheus)<\/td><td>Expose des API compatibles avec Prometheus pour le stockage et l&rsquo;interrogation des m&eacute;triques<\/td><\/tr><tr><td><strong>4318\/TCP<\/strong><\/td><td>OpenTelemetry Collector (outil suppl&eacute;mentaire)<\/td><td>Re&ccedil;oit les donn&eacute;es de t&eacute;l&eacute;m&eacute;trie au format OTLP\/HTTP<\/td><\/tr><\/tbody><\/table><\/figure><p>Si vous venez d&rsquo;acqu&eacute;rir un VPS ou que vous n&rsquo;avez pas encore configur&eacute; de pare-feu, vous pouvez ignorer cette &eacute;tape.<\/p><p>Si <a href=\"\/fr\/tutoriels\/comment-configurer-pare-feu-ufw\/\">Uncomplicated Firewall (UFW)<\/a> est activ&eacute; sur votre serveur, ouvrez un terminal et ex&eacute;cutez les commandes suivantes :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo ufw allow 3000\/tcp    # Grafana  \nsudo ufw allow 3100\/tcp    # Loki  \nsudo ufw allow 3200\/tcp    # Tempo  \nsudo ufw allow 9090\/tcp    # Mimir  \nsudo ufw allow 4318\/tcp    # OpenTelemetry Collector<\/pre><p>V&eacute;rifiez ensuite qu&rsquo;UFW est bien actif et que les r&egrave;gles ont &eacute;t&eacute; appliqu&eacute;es en ex&eacute;cutant la commande suivante :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo ufw status<\/pre><h2 class='wp-block-heading \\\"wp-block-heading\\\"' id='\\\"h-how-to-set-up-the-lgtm-stack-on-a-vps\\\"'>Comment configurer la pile LGTM sur un VPS<\/h2><p>Il existe plusieurs fa&ccedil;ons de configurer la pile LGTM sur un VPS. Dans ce tutoriel, nous utiliserons <strong>Docker Compose<\/strong>, qui permet de d&eacute;ployer et de g&eacute;rer rapidement tous les composants &agrave; partir d&rsquo;un seul fichier. Cette approche est la plus simple et convient parfaitement pour d&eacute;buter.<\/p><p>Si vous pr&eacute;f&eacute;rez disposer d&rsquo;un contr&ocirc;le plus fin ou ne souhaitez pas utiliser Docker, nous vous montrerons &eacute;galement comment installer chaque composant manuellement.<\/p><h2 class='wp-block-heading \\\"wp-block-heading\\\"' id='\\\"h-1-prepare-the-environment\\\"'>1. Pr&eacute;parer l&rsquo;environnement<\/h2><p>Commencez par mettre &agrave; jour la liste des paquets de votre VPS, puis mettez &agrave; niveau les paquets install&eacute;s vers leur derni&egrave;re version. Vous vous assurez ainsi que votre serveur b&eacute;n&eacute;ficie des derniers correctifs de s&eacute;curit&eacute; et des am&eacute;liorations logicielles :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt update &amp;&amp; sudo apt upgrade -y<\/pre><p>Si vous le souhaitez, supprimez ensuite les paquets et d&eacute;pendances inutilis&eacute;s afin de lib&eacute;rer de l&rsquo;espace disque :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo apt autoremove -y<\/pre><p><a href=\"\/fr\/tutoriels\/installer-docker-sur-ubuntu\/\">Installez ensuite Docker sur votre serveur<\/a> afin de d&eacute;ployer les composants dans des conteneurs et d&rsquo;utiliser Docker Compose.<\/p><p>Les utilisateurs d&rsquo;un VPS Hostinger peuvent simplifier cette &eacute;tape en utilisant un mod&egrave;le Docker pr&eacute;configur&eacute; en un clic. Sinon, installez Docker manuellement &agrave; l&rsquo;aide des commandes Linux correspondantes.<\/p><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe5420c3a8\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe5420c3a8\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"224\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/docker-vps-hpanel-fr.png\/public\" alt=\"Le mod&egrave;le Docker dans le VPS de hPanel\" class=\"wp-image-51119\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/docker-vps-hpanel-fr.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/docker-vps-hpanel-fr.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/docker-vps-hpanel-fr.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/docker-vps-hpanel-fr.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Si vous ne pr&eacute;voyez pas d&rsquo;utiliser Docker, vous pouvez ignorer cette section.<\/p><p>Une fois l&rsquo;installation termin&eacute;e, v&eacute;rifiez que Docker fonctionne correctement en ex&eacute;cutant la commande suivante :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl status docker<\/pre><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe5420ce4d\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe5420ce4d\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"466\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-docker-active-running-mise-en-evidence.png\/public\" alt=\"Sortie du terminal indiquant que Docker est actif et en cours d&rsquo;ex&eacute;cution\" class=\"wp-image-51075\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-docker-active-running-mise-en-evidence.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-docker-active-running-mise-en-evidence.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-docker-active-running-mise-en-evidence.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-docker-active-running-mise-en-evidence.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Appuyez sur <strong>Ctrl<\/strong> + <strong>C<\/strong> pour quitter l&rsquo;affichage de l&rsquo;&eacute;tat.<\/p><p>Cr&eacute;ez ensuite un nouveau r&eacute;pertoire pour les fichiers de la pile LGTM, puis acc&eacute;dez-y. Remplacez <strong>grafana-lgtm<\/strong> par le nom de r&eacute;pertoire de votre choix :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mkdir grafana-lgtm\n\ncd grafana-lgtm<\/pre><h2 class='wp-block-heading \\\"wp-block-heading\\\"' id='\\\"h-2-set-up-loki-for-log-aggregation\\\"'>2. Configurer Loki pour l&rsquo;agr&eacute;gation des journaux<\/h2><p>Loki assure l&rsquo;agr&eacute;gation des journaux en collectant et en stockant les donn&eacute;es provenant de diff&eacute;rentes sources.<\/p><p>Il indexe uniquement les m&eacute;tadonn&eacute;es plut&ocirc;t que le contenu complet des journaux, ce qui r&eacute;duit les besoins en stockage et am&eacute;liore les performances des requ&ecirc;tes, notamment lorsque le volume de journaux est important.<\/p><p>Dans le r&eacute;pertoire <strong>grafana-lgtm<\/strong>, cr&eacute;ez un fichier nomm&eacute; <strong>loki-local-config.yaml<\/strong> &agrave; l&rsquo;aide de l&rsquo;<a href=\"\/fr\/tutoriels\/nano\/\">&eacute;diteur de texte nano<\/a> :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo nano loki-local-config.yaml<\/pre><p>Collez la configuration suivante dans le fichier :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">auth_enabled: false\n\nserver:\n  http_listen_port: 3100\n\nschema_config:\n  configs:\n    - from: 2020-10-24\n      store: boltdb-shipper\n      object_store: filesystem\n      schema: v11\n      index:\n        prefix: index_\n        period: 24h\n\nstorage_config:\n  boltdb_shipper:\n    active_index_directory: \/tmp\/loki\/boltdb-shipper-active\n    cache_location: \/tmp\/loki\/boltdb-shipper-cache\n    cache_ttl: 24h\n  filesystem:\n    directory: \/tmp\/loki\/chunks\n\nlimits_config:\n  reject_old_samples: true\n  reject_old_samples_max_age: 168h\n  allow_structured_metadata: false\n\ningester:\n  lifecycler:\n    address: 127.0.0.1\n    ring:\n      kvstore:\n        store: inmemory\n      replication_factor: 1\n    final_sleep: 0s\n  chunk_idle_period: 5m\n  chunk_retain_period: 30s\n\ncommon:\n  path_prefix: \/tmp\/loki\n\ncompactor:\n  working_directory: \/tmp\/loki\/compactor<\/pre><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe5420d9e2\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe5420d9e2\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"621\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-loki-local-config-yaml.png\/public\" alt=\"Contenu du fichier de configuration Loki\" class=\"wp-image-51074\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-loki-local-config-yaml.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-loki-local-config-yaml.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-loki-local-config-yaml.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-loki-local-config-yaml.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Une fois l&rsquo;op&eacute;ration termin&eacute;e, appuyez sur <strong>Ctrl<\/strong> + <strong>X <\/strong>&rarr; <strong>Y<\/strong> &rarr; <strong>Entr&eacute;e<\/strong> pour enregistrer le fichier et quitter nano.<\/p><h2 class='wp-block-heading \\\"wp-block-heading\\\"' id='\\\"h-3-configure-mimir-for-metric-storage\\\"'>3. Configurer Mimir pour le stockage des m&eacute;triques<\/h2><p>Grafana Mimir s&rsquo;appuie sur Prometheus et &eacute;tend ses capacit&eacute;s en proposant un stockage &eacute;volutif &agrave; long terme ainsi qu&rsquo;un moteur d&rsquo;interrogation performant pour les grands volumes de donn&eacute;es de s&eacute;ries chronologiques.<\/p><p>Dans ce guide, nous utiliserons toutefois uniquement Prometheus, car il s&rsquo;int&egrave;gre plus facilement &agrave; OpenTelemetry Collector pour collecter les m&eacute;triques de cette configuration.<\/p><p>Si vous souhaitez &eacute;galement utiliser Mimir pour b&eacute;n&eacute;ficier de fonctionnalit&eacute;s avanc&eacute;es de stockage et de mise &agrave; l&rsquo;&eacute;chelle, vous pouvez le d&eacute;ployer en compl&eacute;ment de Prometheus.<\/p><p>Cr&eacute;ez un fichier <strong>prometheus.yml<\/strong> &agrave; l&rsquo;aide de <strong>nano<\/strong>, comme vous l&rsquo;avez fait pour la configuration de Loki. Collez ensuite la configuration suivante :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"><\/pre><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe5420e527\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe5420e527\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"141\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-promethee-yml.png\/public\" alt=\"Contenu du fichier de configuration Prometheus\" class=\"wp-image-51073\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-promethee-yml.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-promethee-yml.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-promethee-yml.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-promethee-yml.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Enregistrez le fichier une fois l&rsquo;op&eacute;ration termin&eacute;e.<\/p><h2 class='wp-block-heading \\\"wp-block-heading\\\"' id='\\\"h-4-integrate-tempo-for-distributed-tracing\\\"'>4. Configurer Tempo pour le tra&ccedil;age distribu&eacute;<\/h2><p>Grafana Tempo est un backend de tra&ccedil;age distribu&eacute; con&ccedil;u pour collecter, stocker et interroger les donn&eacute;es de tra&ccedil;age dans les architectures de microservices.<\/p><p>Il vous permet de visualiser le parcours des requ&ecirc;tes lorsqu&rsquo;elles traversent diff&eacute;rents services, ce qui facilite l&rsquo;identification rapide des goulets d&rsquo;&eacute;tranglement.<\/p><p>Comme pour les composants pr&eacute;c&eacute;dents, cr&eacute;ez un fichier nomm&eacute; <strong>tempo-local.yaml<\/strong>, puis collez-y la configuration suivante :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">distributor:\n  receivers:\n    otlp:\n      protocols:\n        http:\n          endpoint: \"0.0.0.0:4318\"\n\nstorage:\n  trace:\n    backend: local\n    local:\n      path: \/tmp\/tempo\/blocks\n    wal:\n      path: \/tmp\/tempo\/wal\n\ningester:\n  trace_idle_period: 30s\n  max_block_duration: \"5m\"\n  lifecycler:\n    ring:\n      kvstore:\n        store: inmemory\n      replication_factor: 1\n\ncompactor:\n  compaction:\n    block_retention: 1h\n\nquerier: {}  # &#11088; Doit &ecirc;tre ajout&eacute;, sinon Tempo s&rsquo;arr&ecirc;tera automatiquement\n\nmultitenancy_enabled: false  # &#11088; Recommand&eacute; afin d&rsquo;&eacute;viter les erreurs li&eacute;es &agrave; un environnement &agrave; locataire unique<\/pre><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe5420f139\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe5420f139\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"600\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-tempo-local-yaml.png\/public\" alt=\"Contenu du fichier de configuration Tempo\" class=\"wp-image-51077\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-tempo-local-yaml.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-tempo-local-yaml.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-tempo-local-yaml.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-tempo-local-yaml.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><h2 class='wp-block-heading \\\"wp-block-heading\\\"' id='\\\"h-5-install-grafana-for-observability\\\"'>5. Installer Grafana pour la visualisation des donn&eacute;es d&rsquo;observabilit&eacute;<\/h2><p>Grafana constitue la couche de visualisation centrale de la pile LGTM. Il regroupe les donn&eacute;es de tous les autres composants dans une interface unique, ce qui facilite la d&eacute;tection et la r&eacute;solution des anomalies du syst&egrave;me.<\/p><p>Vous pouvez installer Grafana sur votre VPS, soit manuellement, soit &agrave; l&rsquo;aide de Docker Compose.<\/p><p>Si vous choisissez Docker Compose, commencez par cr&eacute;er un dossier nomm&eacute; <strong>grafana<\/strong> dans le r&eacute;pertoire <strong>grafana-lgtm<\/strong> :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mkdir grafana\n\ncd grafana<\/pre><p>Cr&eacute;ez ensuite un fichier nomm&eacute; <strong>datasources.yml<\/strong> dans <strong>grafana-lgtm\/grafana<\/strong> afin de configurer les sources de donn&eacute;es. Collez-y le contenu suivant :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">apiVersion: 1\ndatasources:\n  - name: Prometheus\n    type: prometheus\n    access: proxy\n    url: http:\/\/prometheus:9090\n    isDefault: true\n\n  - name: Loki\n    type: loki\n    access: proxy\n    url: http:\/\/loki:3100\n    isDefault: false\n\n  - name: Tempo\n    type: tempo\n    access: proxy\n    url: http:\/\/tempo:3200\n    isDefault: false<\/pre><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe5420fcb9\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe5420fcb9\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"658\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-grafana-datasources-yml.png\/public\" alt=\"Contenu du fichier des sources de donn&eacute;es Grafana\" class=\"wp-image-51078\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-grafana-datasources-yml.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-grafana-datasources-yml.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-grafana-datasources-yml.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-grafana-datasources-yml.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Cr&eacute;ez ensuite un second fichier nomm&eacute; <strong>dashboards.yml<\/strong> dans le m&ecirc;me r&eacute;pertoire afin de configurer les fournisseurs de tableaux de bord Grafana :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">apiVersion: 1\nproviders:\n  - name: 'Local Dashboards'\n    orgId: 1\n    folder: ''\n    type: file\n    disableDeletion: false\n    updateIntervalSeconds: 5\n    options:\n      path: \/var\/lib\/grafana\/dashboards<\/pre><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe54210737\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe54210737\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"378\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminaux-nano-grafana-tableaux-de-bord-yml.png\/public\" alt=\"Contenu du fichier des fournisseurs du tableau de bord Grafana\" class=\"wp-image-51079\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminaux-nano-grafana-tableaux-de-bord-yml.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminaux-nano-grafana-tableaux-de-bord-yml.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminaux-nano-grafana-tableaux-de-bord-yml.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminaux-nano-grafana-tableaux-de-bord-yml.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Cr&eacute;ez ensuite un dossier nomm&eacute; <strong>dashboards<\/strong> et acc&eacute;dez-y :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">mkdir dashboards\n\ncd dashboards<\/pre><p>Ajoutez un fichier nomm&eacute; <strong>springboot-observability.json<\/strong>. Il servira d&rsquo;exemple de tableau de bord :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">{\n    \"uid\": \"springboot-observability\",\n    \"title\": \"Spring Boot OTEL Demo Dashboard\",\n    \"time\": {\n        \"from\": \"now-5m\",\n        \"to\": \"now\"\n    },\n    \"panels\": [\n        {\n            \"type\": \"timeseries\",\n            \"title\": \"JVM Heap Memory Used\",\n            \"datasource\": \"Prometheus\",\n            \"targets\": [\n                {\n                    \"expr\": \"process_runtime_jvm_memory_usage{service_name=\\\"springboot-otel-demo\\\", type=\\\"heap\\\"}\"\n                }\n            ],\n            \"fieldConfig\": {\n                \"defaults\": {\n                    \"unit\": \"bytes\"\n                }\n            },\n            \"gridPos\": {\n                \"x\": 0,\n                \"y\": 0,\n                \"w\": 12,\n                \"h\": 8\n            }\n        },\n        {\n            \"type\": \"logs\",\n            \"title\": \"Application Logs (springboot-otel-demo)\",\n            \"datasource\": \"Loki\",\n            \"targets\": [\n                {\n                    \"expr\": \"{service_name=\\\"springboot-otel-demo\\\"}\"\n                }\n            ],\n            \"gridPos\": {\n                \"x\": 0,\n                \"y\": 8,\n                \"w\": 24,\n                \"h\": 8\n            }\n        }\n    ]\n}<\/pre><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe54211124\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe54211124\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"596\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-grafana-sprintboot-observability-json.png\/public\" alt=\"Contenu du fichier de tableau de bord Grafana\" class=\"wp-image-51080\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-grafana-sprintboot-observability-json.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-grafana-sprintboot-observability-json.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-grafana-sprintboot-observability-json.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-grafana-sprintboot-observability-json.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><h2 class='wp-block-heading \\\"wp-block-heading\\\"' id='\\\"h-6-create-a-docker-compose-file\\\"'>6. Cr&eacute;er un fichier Docker Compose<\/h2><p>Apr&egrave;s avoir configur&eacute; chaque composant, cr&eacute;ez un fichier Docker Compose. Ce fichier permet de d&eacute;finir et de g&eacute;rer tous les services de la pile LGTM au m&ecirc;me endroit, afin de simplifier et d&rsquo;uniformiser le d&eacute;ploiement.<\/p><p>Vous pouvez ignorer cette &eacute;tape si vous avez install&eacute; tous les composants manuellement, sans Docker.<\/p><p>Revenez d&rsquo;abord dans le r&eacute;pertoire <strong>grafana-lgtm<\/strong>, puis cr&eacute;ez un fichier nomm&eacute; <strong>docker-compose.yml<\/strong> :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cd ~\/grafana-lgtm\nsudo nano docker-compose.yml<\/pre><p>Ajoutez ensuite la configuration suivante au fichier :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">services:\n\n  prometheus:\n    image: prom\/prometheus:latest\n    container_name: prometheus\n    volumes:\n      - .\/prometheus.yml:\/etc\/prometheus\/prometheus.yml:ro\n    ports:\n      - \"9090:9090\"\n\n  loki:\n    image: grafana\/loki:latest\n    container_name: loki\n    user: \"0:0\"  # Ex&eacute;cute le conteneur avec l&rsquo;utilisateur root\n    volumes:\n      - .\/loki-local-config.yaml:\/etc\/loki\/local-config.yaml:ro\n      - loki-data:\/tmp\/loki\n    command: -config.file=\/etc\/loki\/local-config.yaml\n    ports:\n      - \"3100:3100\"\n\n  tempo:\n    image: grafana\/tempo:latest\n    container_name: tempo\n    user: \"0:0\"  # Ex&eacute;cute le conteneur avec l&rsquo;utilisateur root\n    volumes:\n      - .\/tempo-local.yaml:\/etc\/tempo\/tempo-local.yaml:ro\n      - tempo-data:\/tmp\/tempo\n    command: [\"-config.file=\/etc\/tempo\/tempo-local.yaml\"]\n    ports:\n      - \"3200:3200\"   # Port HTTP utilis&eacute; pour les requ&ecirc;tes\n\n  grafana:\n    image: grafana\/grafana:latest\n    container_name: grafana\n    environment:\n      - GF_SECURITY_ADMIN_USER=admin \n      - GF_SECURITY_ADMIN_PASSWORD=admin \n    volumes:\n      - .\/grafana\/datasources.yml:\/etc\/grafana\/provisioning\/datasources\/datasources.yml:ro\n      - .\/grafana\/dashboards.yml:\/etc\/grafana\/provisioning\/dashboards\/dashboards.yml:ro\n      - .\/grafana\/dashboards\/:\/var\/lib\/grafana\/dashboards:ro\n    ports:\n      - \"3000:3000\"\n    depends_on:\n      - prometheus\n      - loki\n      - tempo\n\nvolumes:\n  loki-data: {}\n  tempo-data: {}<\/pre><p>Portez une attention particuli&egrave;re aux valeurs <strong>GF_SECURITY_ADMIN_USER<\/strong> et <strong>GF_SECURITY_ADMIN_PASSWORD<\/strong> du service <strong>grafana<\/strong>. Elles correspondent aux identifiants de connexion par d&eacute;faut du tableau de bord Grafana. Modifiez-les afin de renforcer la s&eacute;curit&eacute;.<\/p><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe54211bf3\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe54211bf3\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"767\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-docker-composer-yml-gf-security-admin-mise-en-evidence.png\/public\" alt=\"Le contenu du fichier Docker Compose\" class=\"wp-image-51081\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-docker-composer-yml-gf-security-admin-mise-en-evidence.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-docker-composer-yml-gf-security-admin-mise-en-evidence.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-docker-composer-yml-gf-security-admin-mise-en-evidence.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-docker-composer-yml-gf-security-admin-mise-en-evidence.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>N&rsquo;oubliez pas d&rsquo;enregistrer le fichier apr&egrave;s l&rsquo;avoir modifi&eacute;.<\/p><p>D&eacute;ployez ensuite tous les services sur votre serveur &agrave; l&rsquo;aide de la commande suivante :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker compose up -d<\/pre><p>Pour v&eacute;rifier que tous les services sont en cours d&rsquo;ex&eacute;cution, ex&eacute;cutez la commande suivante :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker compose ps<\/pre><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe542125eb\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe542125eb\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"269\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-docker-compose-ps.png\/public\" alt=\"Une sortie terminale montrant les services Docker en cours d'ex&eacute;cution\" class=\"wp-image-51082\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-docker-compose-ps.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-docker-compose-ps.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-docker-compose-ps.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-docker-compose-ps.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><h2 class='wp-block-heading \\\"wp-block-heading\\\"' id='\\\"h-7-access-the-grafana-dashboard\\\"'>7. Acc&eacute;der au tableau de bord Grafana<\/h2><p>Ouvrez votre navigateur et acc&eacute;dez au tableau de bord Grafana &agrave; l&rsquo;aide de l&rsquo;URL suivante. Remplacez <strong>your_vps_ip<\/strong> par l&rsquo;adresse IP de votre serveur :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"><\/pre><p>Si vous h&eacute;bergez votre pile LGTM sur un VPS Hostinger, vous trouverez son adresse IP dans hPanel, sous <strong>VPS<\/strong> &rarr; <strong>G&eacute;rer<\/strong> &rarr; <strong>Aper&ccedil;u g&eacute;n&eacute;ral<\/strong> &rarr; <strong>Informations du VPS<\/strong>.<\/p><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe54212f49\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe54212f49\" class=\"aligncenter size-large is-resized wp-lightbox-container\"><img decoding=\"async\" width=\"1101\" height=\"402\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/ipv4-vps-hpanel-fr.png\/w=1024,h=1024,fit=scale-down\" alt=\"Adresse IPv4 du serveur affich&eacute;e sur la page &laquo; Vue d&rsquo;ensemble &raquo; du VPS dans hPanel\" class=\"wp-image-51096\" style=\"width:840px;height:auto\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/ipv4-vps-hpanel-fr.png\/w=1101,fit=scale-down 1101w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/ipv4-vps-hpanel-fr.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/ipv4-vps-hpanel-fr.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/ipv4-vps-hpanel-fr.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/ipv4-vps-hpanel-fr.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1101px) 100vw, 1101px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Connectez-vous &agrave; l&rsquo;aide du nom d&rsquo;utilisateur et du mot de passe d&eacute;finis dans votre fichier Docker Compose. Si vous utilisez les identifiants par d&eacute;faut, Grafana vous demandera de modifier votre mot de passe lors de la connexion.<\/p><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe5421372f\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe5421372f\" class=\"aligncenter size-full is-resized wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"851\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-login.png\/public\" alt=\"La page de connexion Grafana\" class=\"wp-image-51084\" style=\"aspect-ratio:1.2033037133200528;width:488px;height:auto\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-login.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-login.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-login.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-login.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>L&rsquo;interface de Grafana se compose d&rsquo;une barre lat&eacute;rale &agrave; gauche, qui regroupe les menus de navigation, et d&rsquo;un espace de travail &agrave; droite, dans lequel vous pouvez afficher et g&eacute;rer vos tableaux de bord.<\/p><p>Si vous avez d&eacute;ploy&eacute; les composants avec Docker Compose, Grafana ajoute automatiquement toutes les sources de donn&eacute;es. Pour le v&eacute;rifier, acc&eacute;dez &agrave; <strong>Connexions<\/strong> &rarr; <strong>Sources de donn&eacute;es<\/strong>.<\/p><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe54213fad\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe54213fad\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"415\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-connections-data-sources.png\/public\" alt=\"Le menu Sources de donn&eacute;es dans Grafana\" class=\"wp-image-51085\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-connections-data-sources.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-connections-data-sources.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-connections-data-sources.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-connections-data-sources.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Si vous avez install&eacute; les composants manuellement, vous devrez ajouter les sources de donn&eacute;es vous-m&ecirc;me. Cliquez sur <strong>Ajouter une source de donn&eacute;es<\/strong>, recherchez le composant souhait&eacute;, puis s&eacute;lectionnez-le.<\/p><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe5421484a\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe5421484a\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"285\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-add-data-source.png\/public\" alt=\"L'option Ajouter une source de donn&eacute;es dans Grafana\" class=\"wp-image-51086\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-add-data-source.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-add-data-source.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-add-data-source.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-add-data-source.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Renseignez ensuite le champ <strong>URL<\/strong> pour chaque composant comme suit :<\/p><ul class='wp-block-list \\\"wp-block-list\\\"'>\n<li><strong>Loki<\/strong> &ndash; http:\/\/loki:3100<\/li>\n\n\n\n<li><strong>Mimir et Prometheus<\/strong> &ndash; http:\/\/prometheus:9090<\/li>\n\n\n\n<li><strong>Tempo<\/strong> &ndash; http:\/\/tempo:3200<\/li>\n<\/ul><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe542152a3\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe542152a3\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"468\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/configuration-grafana-loki.png\/public\" alt=\"La page de configuration de la source de donn&eacute;es Loki dans Grafana\" class=\"wp-image-51087\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/configuration-grafana-loki.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/configuration-grafana-loki.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/configuration-grafana-loki.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/configuration-grafana-loki.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Apr&egrave;s avoir configur&eacute; chaque source de donn&eacute;es, faites d&eacute;filer la page vers le bas et cliquez sur <strong>Enregistrer et tester<\/strong>.<\/p><h2 class='wp-block-heading \\\"wp-block-heading\\\"' id='\\\"h-8-explore-data-sources\\\"'>8. Explorer les sources de donn&eacute;es<\/h2><p>Vous pouvez maintenant visualiser vos donn&eacute;es en ex&eacute;cutant des requ&ecirc;tes. Chaque composant utilise son propre langage de requ&ecirc;te : <strong>LogQL<\/strong> pour Loki, <strong>PromQL<\/strong> pour Mimir et Prometheus, et <strong>TraceQL<\/strong> pour Tempo.<\/p><p>Dans la barre lat&eacute;rale de Grafana, cliquez sur <strong>Explorer<\/strong>, puis s&eacute;lectionnez la source de donn&eacute;es de votre choix dans le <strong>menu d&eacute;roulant<\/strong> situ&eacute; en haut de la page.<\/p><p>Pour Loki et Prometheus, ouvrez l&rsquo;onglet <strong>Code<\/strong>. Pour Tempo, s&eacute;lectionnez <strong>TraceQL<\/strong>. Saisissez ensuite votre requ&ecirc;te et appuyez sur <strong>Maj + Entr&eacute;e<\/strong> pour l&rsquo;ex&eacute;cuter.<\/p><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe54215bc6\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe54215bc6\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"425\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-explore-prometheus-code-surligne.png\/public\" alt=\"La section Explorer de Grafana avec la source de donn&eacute;es Prometheus\" class=\"wp-image-51088\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-explore-prometheus-code-surligne.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-explore-prometheus-code-surligne.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-explore-prometheus-code-surligne.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-explore-prometheus-code-surligne.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Voici quelques exemples de requ&ecirc;tes de base pour chaque source de donn&eacute;es :<\/p><p><strong>Loki<\/strong><\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">{service_name= \"my-app\"}       # Show all logs for a specific service  \n{service_name=\"my-app\"} |= \"debug\"  # Show only debug logs<\/pre><p>Pour d&eacute;couvrir d&rsquo;autres exemples de requ&ecirc;tes, consultez la <a href=\"https:\/\/grafana.com\/docs\/loki\/latest\/query\" target=\"_blank\" rel=\"noopener\">documentation officielle de LogQL<\/a>.<\/p><p><strong>Mimir et Prometheus<\/strong><\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"><\/pre><p>Vous trouverez des exemples de requ&ecirc;tes avanc&eacute;es dans la <a href=\"https:\/\/prometheus.io\/docs\/prometheus\/latest\/querying\/basics\" target=\"_blank\" rel=\"noopener\">documentation de PromQL<\/a>.<\/p><p><strong>Tempo<\/strong><\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\"><\/pre><p>Pour en savoir plus sur les requ&ecirc;tes TraceQL, consultez la documentation officielle, qui pr&eacute;sente des <a href=\"https:\/\/grafana.com\/docs\/tempo\/latest\/traceql\" target=\"_blank\" rel=\"noopener\">exemples de requ&ecirc;tes simples et avanc&eacute;es<\/a>.<\/p><h2 class='wp-block-heading \\\"wp-block-heading\\\"' id='\\\"h-9-create-a-unified-observability-dashboard\\\"'>9. Cr&eacute;er un tableau de bord d&rsquo;observabilit&eacute; unifi&eacute;<\/h2><p>Dans la barre lat&eacute;rale gauche, ouvrez le menu Tableaux de bord pour afficher vos m&eacute;triques, vos journaux et vos traces au sein d&rsquo;une vue unifi&eacute;e.<\/p><p>Si vous utilisez Docker Compose pour d&eacute;ployer la pile LGTM, un tableau de bord d&rsquo;exemple est d&eacute;j&agrave; disponible. Il offre un aper&ccedil;u rapide de l&rsquo;utilisation de la m&eacute;moire et des journaux des applications instrument&eacute;es avec OpenTelemetry.<\/p><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe542167ae\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe542167ae\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"283\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-dashboards.png\/public\" alt=\"Le menu Tableaux de bord dans Grafana\" class=\"wp-image-51089\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-dashboards.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-dashboards.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-dashboards.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-dashboards.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Vous pouvez &eacute;galement cr&eacute;er un nouveau tableau de bord en cliquant sur <strong>Nouveau<\/strong> &rarr; <strong>Nouveau tableau de bord<\/strong> &rarr; <strong>Ajouter une visualisation<\/strong>.<\/p><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe542170c7\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe542170c7\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"683\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-tableau-de-bord-ajouter-visualisation-surligne.png\/public\" alt=\"Le bouton Ajouter une visualisation dans le menu Tableaux de bord de Grafana\" class=\"wp-image-51090\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-tableau-de-bord-ajouter-visualisation-surligne.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-tableau-de-bord-ajouter-visualisation-surligne.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-tableau-de-bord-ajouter-visualisation-surligne.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-tableau-de-bord-ajouter-visualisation-surligne.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>S&eacute;lectionnez ensuite l&rsquo;une des sources de donn&eacute;es configur&eacute;es. Dans l&rsquo;&eacute;diteur de panneau, donnez un nom au panneau afin d&rsquo;identifier le composant correspondant, puis saisissez votre requ&ecirc;te dans le champ pr&eacute;vu &agrave; cet effet pour afficher les donn&eacute;es souhait&eacute;es.<\/p><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe542179a6\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe542179a6\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"694\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-panel-tempo.png\/public\" alt=\"L&rsquo;&eacute;diteur de panneau de Grafana avec la source de donn&eacute;es Tempo\" class=\"wp-image-51091\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-panel-tempo.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-panel-tempo.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-panel-tempo.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-panel-tempo.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Une fois le panneau cr&eacute;&eacute;, cliquez sur <strong>Retour au tableau de bord<\/strong> &rarr; <strong>Ajouter<\/strong> &rarr; <strong>Visualisation<\/strong>, puis r&eacute;p&eacute;tez cette op&eacute;ration pour chacun des autres composants.<\/p><p>Apr&egrave;s avoir ajout&eacute; tous les panneaux, utilisez la <strong>poign&eacute;e de redimensionnement<\/strong> situ&eacute;e dans l&rsquo;angle inf&eacute;rieur droit de chacun d&rsquo;eux afin d&rsquo;ajuster leur largeur et leur hauteur. Une fois la personnalisation termin&eacute;e, cliquez sur <strong>Enregistrer le tableau de bord<\/strong>, attribuez-lui un nom, puis enregistrez vos modifications.<\/p><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe542181df\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe542181df\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"678\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-dashboards-save-dashboard-highlighted.png\/public\" alt=\"Le bouton Enregistrer le tableau de bord dans Grafana\" class=\"wp-image-51094\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-dashboards-save-dashboard-highlighted.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-dashboards-save-dashboard-highlighted.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-dashboards-save-dashboard-highlighted.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/grafana-dashboards-save-dashboard-highlighted.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><h2 class='wp-block-heading \\\"wp-block-heading\\\"' id='\\\"h-10-add-apps-to-the-observability-system\\\"'>10. Ajouter des applications &agrave; votre plateforme d&rsquo;observabilit&eacute;<\/h2><p>&Agrave; l&rsquo;&eacute;tape pr&eacute;c&eacute;dente, vous avez constat&eacute; que le tableau de bord &eacute;tait vide, car aucune application n&rsquo;avait encore &eacute;t&eacute; ajout&eacute;e &agrave; des fins de surveillance.<\/p><p>Il existe plusieurs fa&ccedil;ons d&rsquo;ajouter des applications. Dans ce tutoriel, puisque vous utilisez Docker Compose pour d&eacute;ployer la pile LGTM, nous allons configurer <strong>OpenTelemetry Collector<\/strong>.<\/p><p>Il s&rsquo;agit d&rsquo;un agent ind&eacute;pendant de tout fournisseur qui collecte les donn&eacute;es de t&eacute;l&eacute;m&eacute;trie de vos applications, puis les transmet aux composants appropri&eacute;s dans un format standardis&eacute;.<\/p><p>Pour configurer OpenTelemetry Collector, ouvrez un terminal, acc&eacute;dez au r&eacute;pertoire <strong>grafana-lgtm<\/strong>, puis cr&eacute;ez un fichier nomm&eacute; <strong>otel-collector-config.yaml<\/strong> &agrave; l&rsquo;aide de <strong>nano<\/strong> :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">cd grafana-lgtm\nsudo nano otel-collector-config.yaml<\/pre><p>Ajoutez la configuration suivante au fichier. Elle re&ccedil;oit les donn&eacute;es de t&eacute;l&eacute;m&eacute;trie de vos applications, puis les achemine vers les composants appropri&eacute;s :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">receivers:\n  otlp:\n    protocols:\n      http:\n        endpoint: 0.0.0.0:4318    # &Eacute;coute sur OTLP\/HTTP ; le port doit correspondre &agrave; celui d&eacute;fini dans Docker Compose\n      grpc:\n        endpoint: 0.0.0.0:4317    # &Eacute;coute sur OTLP\/gRPC (facultatif)\n\nprocessors:\n  batch: {}  # Processeur de traitement par lots ; envoie les donn&eacute;es de t&eacute;l&eacute;m&eacute;trie par lots afin d&rsquo;am&eacute;liorer les performances\n\nexporters:\n  # Exporte les m&eacute;triques sous forme de point de terminaison de collecte Prometheus\n  prometheus:\n    endpoint: \"0.0.0.0:9464\"\n    # Active la conversion des attributs de ressource en libell&eacute;s de m&eacute;triques afin que service.name et les autres attributs apparaissent dans les libell&eacute;s Prometheus\n    resource_to_telemetry_conversion:\n      enabled: true\n\n  # Exporte les journaux vers Loki via OTLP HTTP (&agrave; l&rsquo;aide du r&eacute;cepteur OTLP natif de Loki)\n  otlphttp\/loki:\n    endpoint: \"http:\/\/loki:3100\/loki\/api\/v1\/push\"  # Loki's OTLP log receiver HTTP API\n    # Loki re&ccedil;oit les journaux OTLP via l&rsquo;exportateur otlphttp\n\n  # Exporte les traces vers Tempo via OTLP HTTP\n  otlphttp\/tempo:\n    endpoint: \"http:\/\/tempo:3200\/v1\/traces\"\n\n# D&eacute;finit les pipelines de traitement pour chaque type de donn&eacute;es de t&eacute;l&eacute;m&eacute;trie\nservice:\n  pipelines:\n    metrics:\n      receivers: [otlp]\n      processors: [batch]\n      exporters: [prometheus]        # Les m&eacute;triques sont trait&eacute;es et expos&eacute;es au format Prometheus\n    logs:\n      receivers: [otlp]\n      processors: [batch]\n      exporters: [otlphttp\/loki]     # Les journaux sont trait&eacute;s et envoy&eacute;s vers Loki (OTLP HTTP)\n    traces:\n      receivers: [otlp]\n      processors: [batch]\n      exporters: [otlphttp\/tempo]     # Les traces sont trait&eacute;es et envoy&eacute;es vers Tempo (OTLP HTTP)<\/pre><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe54218cec\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe54218cec\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"580\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-otel-collector-config-yaml.png\/public\" alt=\"Contenu du fichier de configuration OpenTelemetry Collector\" class=\"wp-image-51092\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-otel-collector-config-yaml.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-otel-collector-config-yaml.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-otel-collector-config-yaml.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-otel-collector-config-yaml.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Modifiez ensuite le fichier <strong>docker-compose.yml<\/strong> et ajoutez le service <strong>otel-collector<\/strong> &agrave; la section <strong>services<\/strong> :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">  otel-collector:\n    image: otel\/opentelemetry-collector-contrib:latest\n    container_name: otel-collector\n    volumes:\n      - .\/otel-collector-config.yaml:\/etc\/otel-collector-config.yaml:ro\n    command: [\"--config\", \"\/etc\/otel-collector-config.yaml\"]\n    ports:\n      - \"4318:4318\"                   # OTLP HTTP\n      - \"9464:9464\"                   # M&eacute;triques Prometheus\n    depends_on:\n      - prometheus\n      - loki\n      - tempo<\/pre><div class='wp-block-image \\\"wp-block-image'>\n<figure data-wp-context='{\"imageId\":\"6a5fe542195e8\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a5fe542195e8\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"441\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-docker-compose-yml-otel-collector.png\/public\" alt=\"Contenu du service OpenTelemetry Collector dans le fichier Docker Compose\" class=\"wp-image-51093\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-docker-compose-yml-otel-collector.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-docker-compose-yml-otel-collector.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-docker-compose-yml-otel-collector.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/46\/2026\/07\/terminal-nano-docker-compose-yml-otel-collector.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Une fois le fichier Docker Compose mis &agrave; jour, red&eacute;marrez tous les services afin d&rsquo;appliquer les modifications :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker compose down -v\ndocker compose up -d<\/pre><p>Configurez ensuite votre application pour envoyer ses donn&eacute;es de t&eacute;l&eacute;m&eacute;trie &agrave; OpenTelemetry Collector. La proc&eacute;dure d&eacute;pend du langage et du framework utilis&eacute;s. Voici deux exemples :<\/p><p><strong>Applications Node.js<\/strong><\/p><p>Installez les paquets OpenTelemetry requis :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">npm install @opentelemetry\/sdk-node @opentelemetry\/exporter-trace-otlp-http @opentelemetry\/exporter-metrics-otlp-http @opentelemetry\/exporter-logs-otlp-http<\/pre><p>Ajoutez ensuite ce code d&rsquo;initialisation &agrave; votre application :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">const { NodeSDK } = require('@opentelemetry\/sdk-node');\nconst { OTLPTraceExporter } = require('@opentelemetry\/exporter-trace-otlp-http');\nconst { OTLPMetricExporter } = require('@opentelemetry\/exporter-metrics-otlp-http');\nconst { OTLPLogExporter } = require('@opentelemetry\/exporter-logs-otlp-http');\nconst sdk = new NodeSDK({\ntraceExporter: new OTLPTraceExporter({\nurl: 'http:\/\/localhost:4318\/v1\/traces'\n}),\nmetricExporter: new OTLPMetricExporter({\nurl: 'http:\/\/localhost:4318\/v1\/metrics'\n}),\nlogExporter: new OTLPLogExporter({\nurl: 'http:\/\/localhost:4318\/v1\/logs'\n}),\nserviceName: 'my-nodejs-app'\n});\nsdk.start();<\/pre><p><strong>Applications Java<\/strong><\/p><p>T&eacute;l&eacute;chargez l&rsquo;agent Java OpenTelemetry :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">curl -L -o opentelemetry-javaagent.jar https:\/\/github.com\/open-telemetry\/opentelemetry-java-instrumentation\/releases\/latest\/download\/opentelemetry-javaagent.jar<\/pre><p>Lancez ensuite votre application avec l&rsquo;agent, en rempla&ccedil;ant <strong>my-app<\/strong> par le nom de votre service :<\/p><pre class='EnlighterJSRAW \\\"EnlighterJSRAW\\\"' data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">java -javaagent:opentelemetry-javaagent.jar \\\n\n-Dotel.exporter.otlp.endpoint=http:\/\/localhost:4318 \\\n\n-Dotel.resource.attributes=service.name=my-app \\\n\n-jar your-application.jar<\/pre><p>Retournez ensuite sur votre tableau de bord Grafana pour v&eacute;rifier que les donn&eacute;es de t&eacute;l&eacute;m&eacute;trie de votre application sont bien collect&eacute;es. Vous pourrez alors suivre en temps r&eacute;el ses performances, ses journaux et ses traces.<\/p><h2 class='wp-block-heading \\\"wp-block-heading\\\"' id='\\\"h-conclusion\\\"'>Conclusion<\/h2><p>La pile LGTM regroupe les journaux, les m&eacute;triques, les traces et leur visualisation au sein d&rsquo;une m&ecirc;me plateforme. Elle vous aide &agrave; superviser plus efficacement les syst&egrave;mes complexes, &agrave; acc&eacute;l&eacute;rer le d&eacute;pannage et &agrave; obtenir des informations exploitables pour optimiser les performances.<\/p><p>Dans ce guide, vous avez appris &agrave; :<\/p><ol class='wp-block-list \\\"wp-block-list\\\"'>\n<li>pr&eacute;parer votre environnement serveur ;<\/li>\n\n\n\n<li>installer et configurer Loki pour collecter les journaux ;<\/li>\n\n\n\n<li>configurer Prometheus pour collecter les m&eacute;triques ;<\/li>\n\n\n\n<li>configurer Tempo pour le tra&ccedil;age distribu&eacute; ;<\/li>\n\n\n\n<li>installer Grafana pour centraliser la visualisation ;<\/li>\n\n\n\n<li>d&eacute;finir les services avec Docker Compose ;<\/li>\n\n\n\n<li>acc&eacute;der au tableau de bord Grafana ;<\/li>\n\n\n\n<li>interroger les diff&eacute;rentes sources de donn&eacute;es ;<\/li>\n\n\n\n<li>cr&eacute;er un tableau de bord d&rsquo;observabilit&eacute; unifi&eacute; ;<\/li>\n\n\n\n<li>ajouter vos applications &agrave; l&rsquo;aide d&rsquo;OpenTelemetry Collector.<\/li>\n<\/ol><p>Pour aller plus loin, explorez les possibilit&eacute;s offertes par LogQL, TraceQL et PromQL afin de cr&eacute;er des requ&ecirc;tes plus avanc&eacute;es. Vous pouvez &eacute;galement configurer des r&egrave;gles d&rsquo;alerte dans Grafana pour &ecirc;tre averti lorsque certaines m&eacute;triques ou certains journaux atteignent des seuils critiques.<\/p><h2 class='wp-block-heading \\\"wp-block-heading\\\"' id='\\\"h-lgtm-stack-faq\\\"'>FAQ sur la pile LGTM<\/h2><div id=\"rank-math-faq\" class=\"rank-math-block\">\n<div class=\"rank-math-list \">\n<div id=\"faq-question-1784534425310\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Pourquoi utiliser la pile LGTM pour l&rsquo;observabilit&eacute; ?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>La pile LGTM r&eacute;unit les m&eacute;triques, les journaux et les traces au sein d&rsquo;une plateforme unique. Elle simplifie la supervision, acc&eacute;l&egrave;re le d&eacute;pannage et fournit des informations pr&eacute;cieuses pour optimiser les performances des syst&egrave;mes et des applications.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1784534426387\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">La pile LGTM est-elle open source ?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Oui. La pile LGTM est enti&egrave;rement open source. Les composants qui la composent, &agrave; savoir Loki, Grafana, Tempo et Mimir, sont maintenus par Grafana Labs et la communaut&eacute;. Vous pouvez donc les utiliser, les personnaliser et y contribuer librement.<\/p>\n\n<\/div>\n<\/div>\n<div id=\"faq-question-1784534426992\" class=\"rank-math-list-item\">\n<h3 class=\"rank-math-question \">Puis-je int&eacute;grer la pile LGTM &agrave; d&rsquo;autres outils ?<\/h3>\n<div class=\"rank-math-answer \">\n\n<p>Oui. La pile LGTM peut &ecirc;tre int&eacute;gr&eacute;e &agrave; diff&eacute;rents outils d&rsquo;observabilit&eacute;, comme OpenTelemetry Collector, gr&acirc;ce &agrave; des protocoles et &agrave; des exportateurs standard. Vous pouvez ainsi collecter et visualiser les donn&eacute;es tout en conservant vos syst&egrave;mes existants.<\/p>\n\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>La pile LGTM, compos&eacute;e de Loki pour les journaux, Grafana pour la visualisation, Tempo pour le tra&ccedil;age et Mimir pour les m&eacute;triques, est une suite d&rsquo;observabilit&eacute; open source d&eacute;velopp&eacute;e par Grafana Labs. Elle regroupe les m&eacute;triques, les journaux et les traces au sein d&rsquo;une plateforme unique, ce qui offre aux &eacute;quipes une vue d&rsquo;ensemble des [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/fr\/tutoriels\/stack-lgtm\/\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":190,"featured_media":51072,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"Installer la stack LGTM pour une observabilit\u00e9 compl\u00e8te","rank_math_description":"La stack LGTM (Loki, Grafana, Tempo, Mimir) offre une observabilit\u00e9 compl\u00e8te. D\u00e9couvrez comment l'installer \u00e9tape par \u00e9tape.","rank_math_focus_keyword":"stack LGTM","footnotes":""},"categories":[4760],"tags":[],"class_list":["post-51095","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vps"],"hreflangs":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/posts\/51095","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/users\/190"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/comments?post=51095"}],"version-history":[{"count":6,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/posts\/51095\/revisions"}],"predecessor-version":[{"id":51122,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/posts\/51095\/revisions\/51122"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/media\/51072"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/media?parent=51095"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/categories?post=51095"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/fr\/tutoriels\/wp-json\/wp\/v2\/tags?post=51095"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}