> ## Documentation Index
> Fetch the complete documentation index at: https://private-7c7dfe99-mintlify-8c05c8a2.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Logs, traces et métriques d’exemple

> Premiers pas avec ClickStack et un jeu de données d’exemple comprenant des logs, des sessions, des traces et des métriques

export const Image = ({img, alt, size}) => {
  return <Frame>
      <img src={img} alt={alt} />
    </Frame>;
};

Ce guide présente à la fois ClickStack Open Source et Managed ClickStack à l’aide d’un jeu de données d’exemple.

<Tabs>
  <Tab title="ClickStack managé">
    Le guide suivant suppose que vous avez suivi le [guide de démarrage pour Managed ClickStack](/fr/clickstack/deployment/managed) et que vous avez [noté les identifiants de connexion](/fr/clickstack/getting-started/managed#next-steps).

    <Steps>
      <Step>
        ### Sélectionnez votre service

        Sélectionnez le service Managed ClickStack sur la page d’accueil principale de ClickHouse Cloud.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/_TDydWLKO6Z3njo9/images/clickstack/select_service.png?fit=max&auto=format&n=_TDydWLKO6Z3njo9&q=85&s=5a981e65294c5e4831352fb4ac556338" alt="Sélectionnez le service" size="lg" width="3600" height="2040" data-path="images/clickstack/select_service.png" />
      </Step>

      <Step>
        ### Accédez à la ClickStack UI (HyperDX)

        Sélectionnez `ClickStack` dans le menu de gauche pour accéder à la ClickStack UI, où vous serez automatiquement authentifié.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=dfbf5a8429966ef6603af94fc1074d04" alt="ClickStack UI" size="lg" width="3430" height="2340" data-path="images/use-cases/observability/hyperdx.png" />
      </Step>

      <Step>
        ### Télécharger les données d’exemple

        Pour alimenter l’UI avec des données d’exemple, téléchargez le fichier suivant :

        [Données d’exemple](https://storage.googleapis.com/hyperdx/sample.tar.gz)

        ```shell theme={null}
        # curl
        curl -O https://storage.googleapis.com/hyperdx/sample.tar.gz
        # or
        # wget https://storage.googleapis.com/hyperdx/sample.tar.gz
        ```

        Ce fichier contient des exemples de logs, de métriques et de traces issus de notre [OpenTelemetry demo](https://github.com/ClickHouse/opentelemetry-demo), une simple boutique en ligne à microservices accessible au public. Copiez ce fichier dans le répertoire de votre choix.
      </Step>

      <Step>
        ### Charger des données d’exemple

        Pour charger ces données, il suffit de les envoyer au point de terminaison HTTP du collector OpenTelemetry (OTel) déployé.

        Exécutez la commande suivante pour envoyer les données au collector OTel :

        ```shell theme={null}
        for filename in $(tar -tf sample.tar.gz); do
          endpoint="http://localhost:4318/v1/${filename%.json}"
          echo "loading ${filename%.json}"
          tar -xOf sample.tar.gz "$filename" | while read -r line; do
            printf '%s\n' "$line" | curl -s -o /dev/null -X POST "$endpoint" \
            -H "Content-Type: application/json" \
            -H "authorization: ${CLICKSTACK_API_KEY}" \
            --data-binary @-
          done
        done
        ```

        Cela simule des sources OTLP de logs, de traces et de métriques envoyant des données à l’OTel collector. En production, ces sources peuvent être des clients dans différents langages, voire d’autres OTel collectors.

        En revenant à la vue `Search`, vous devriez voir que les données commencent à se charger (ajustez la période sur `Last 1 hour` si les données ne s’affichent pas) :

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-10.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=8d52bbe8b1311274c1925bce011f39d5" alt="Recherche HyperDX" size="lg" width="3430" height="2340" data-path="images/use-cases/observability/hyperdx-10.png" />

        Le chargement des données prendra quelques minutes. Attendez qu’il soit terminé avant de passer aux étapes suivantes.
      </Step>

      <Step>
        ### Explorer les sessions

        Supposons que nous recevions des signalements selon lesquels nos utilisateurs rencontrent des problèmes au moment de payer leurs achats. Nous pouvons visualiser leur expérience à l’aide des fonctionnalités de session replay d’HyperDX.

        Sélectionnez `Client Sessions` dans le menu de gauche.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-11.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=151bf73a63c255e3e4794356358def5b" alt="Sessions" size="lg" width="4852" height="2890" data-path="images/use-cases/observability/hyperdx-11.png" />

        Cette vue permet de voir les sessions du front-end de notre boutique e-commerce. Les sessions restent anonymes jusqu’à ce que les utilisateurs passent au paiement et essaient de finaliser un achat.

        Notez que certaines sessions associées à des e-mails comportent une erreur, ce qui confirme potentiellement les signalements de transactions ayant échoué.

        Sélectionnez une trace en échec associée à une adresse e-mail. La vue suivante permet de rejouer la session de l’utilisateur et d’examiner son problème. Appuyez sur play pour regarder la session.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-12.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=28c501adeaff940425bbdf4641509875" alt="Session replay" size="lg" width="4874" height="2890" data-path="images/use-cases/observability/hyperdx-12.png" />

        La relecture montre l’utilisateur naviguant sur le site et ajoutant des articles à son panier. N’hésitez pas à avancer plus loin dans la session, jusqu’au moment où il tente d’effectuer le paiement.

        <Tip>
          Les erreurs sont annotées en rouge sur la chronologie.
        </Tip>

        L’utilisateur n’a pas pu finaliser la commande, sans qu’aucune erreur évidente n’apparaisse. Faites défiler jusqu’en bas du panneau de gauche, qui contient les événements réseau et console du navigateur de l’utilisateur. Vous remarquerez qu’une erreur 500 a été déclenchée lors d’un appel à `/api/checkout`.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-13.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=60ab449d96a9b835c556a56b657cfdab" alt="Erreur dans la session" size="lg" width="4874" height="2892" data-path="images/use-cases/observability/hyperdx-13.png" />

        Sélectionnez cette erreur `500`. Ni `Overview` ni `Column Values` n’indiquent la source du problème, si ce n’est que l’erreur est inattendue et provoque une `Internal Error`.
      </Step>

      <Step>
        ### Explorer les traces

        Accédez à l’onglet `Trace` pour afficher la trace distribuée complète.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-14.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=b6a0e25703ea6c61c58855dc9bad60b4" alt="Trace de session" size="lg" width="4874" height="2890" data-path="images/use-cases/observability/hyperdx-14.png" />

        Faites défiler la trace vers le bas pour voir l’origine de l’erreur : le span du service `checkout`. Sélectionnez le span du service `Payment`.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-15.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=0028e3ec9262814ef7faa7b3a47020a9" alt="Span" size="lg" width="4874" height="2890" data-path="images/use-cases/observability/hyperdx-15.png" />

        Sélectionnez l’onglet `Column Values`, puis faites défiler vers le bas. Nous pouvons voir que le problème est lié à un cache plein.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-16.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=0567f533f312fd06860422380e7b5154" alt="Valeurs de colonne" size="lg" width="4874" height="2890" data-path="images/use-cases/observability/hyperdx-16.png" />

        En remontant puis en revenant à la trace, nous pouvons voir que les logs sont corrélés au span grâce à notre configuration précédente. Ils apportent davantage de contexte.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-17.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=6776584117a98835f8f7a82d8ccecbf4" alt="Log corrélé" size="lg" width="4874" height="2890" data-path="images/use-cases/observability/hyperdx-17.png" />

        Nous avons établi qu’un cache se remplit dans le service `Payment`, ce qui empêche les paiements d’aboutir.
      </Step>

      <Step>
        ### Explorer les logs

        Pour plus de détails, revenons à `Search` :

        Sélectionnez `Logs` parmi les sources et appliquez un filtre au service `payment`.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-18.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=4201aee6474cbce4a38173f9bafbf7a6" alt="Logs" size="lg" width="4874" height="2890" data-path="images/use-cases/observability/hyperdx-18.png" />

        On voit que, même si le problème est récent, le nombre de paiements affectés est élevé. De plus, un cache lié aux paiements Visa semble être à l’origine du problème.
      </Step>

      <Step>
        ### Métriques du graphique

        Bien qu'une erreur ait clairement été introduite dans le code, nous pouvons utiliser les métriques pour confirmer la taille du cache. Accédez à la vue `Chart Explorer`.

        Sélectionnez `Metrics` comme source de données. Configurez le générateur de graphiques pour tracer le `Maximum` de `visa_validation_cache.size (Gauge)`, puis cliquez sur le bouton play. Le cache augmentait nettement avant d'atteindre une taille maximale, après quoi des erreurs ont été générées.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-19.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=652ad1f8c627bee003bf97bac2fee060" alt="Métriques" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-19.png" />
      </Step>
    </Steps>
  </Tab>

  <Tab title="ClickStack Open Source">
    L'exemple suivant suppose que vous avez démarré Open Source ClickStack en suivant les [instructions relatives à l'image tout-en-un](/fr/clickstack/getting-started/oss) et que vous vous êtes connecté à l'[instance ClickHouse locale](/fr/clickstack/getting-started/oss#complete-connection-credentials).

    <Steps>
      <Step>
        ### Accéder à ClickStack UI (HyperDX)

        Rendez-vous sur [http://localhost:8080](http://localhost:8080) pour accéder à ClickStack UI.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=dfbf5a8429966ef6603af94fc1074d04" alt="ClickStack UI" size="lg" width="3430" height="2340" data-path="images/use-cases/observability/hyperdx.png" />
      </Step>

      <Step>
        ### Copier la clé API d’ingestion

        Accédez à [`Team Settings`](http://localhost:8080/team) et copiez la `Ingestion API Key` dans la section `API Keys`. Cette clé API garantit la sécurité de l’ingestion des données via le collecteur OpenTelemetry.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/brNmKxVjpyGdH7Ao/images/use-cases/observability/copy_api_key.png?fit=max&auto=format&n=brNmKxVjpyGdH7Ao&q=85&s=abde08205f47018febad3dd9d297c7f0" alt="Copier la clé API" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/copy_api_key.png" />
      </Step>

      <Step>
        ### Télécharger des données d’exemple

        Afin d’alimenter l’interface utilisateur avec des données d’exemple, téléchargez le fichier suivant :

        [Données d’exemple](https://storage.googleapis.com/hyperdx/sample.tar.gz)

        ```shell theme={null}
        # curl
        curl -O https://storage.googleapis.com/hyperdx/sample.tar.gz
        # or
        # wget https://storage.googleapis.com/hyperdx/sample.tar.gz
        ```

        Ce fichier contient des exemples de logs, de métriques et de traces issus de notre [OpenTelemetry demo](https://github.com/ClickHouse/opentelemetry-demo) publique — une simple boutique en ligne s’appuyant sur des microservices. Copiez ce fichier dans le répertoire de votre choix.
      </Step>

      <Step>
        ### Charger des données d’exemple

        Pour charger ces données, il suffit de les envoyer au point de terminaison HTTP du collector OpenTelemetry (OTel) déployé.

        Commencez par exporter la clé API copiée ci-dessus.

        ```shell theme={null}
        # export API key
        export CLICKSTACK_API_KEY=<YOUR_INGESTION_API_KEY>
        ```

        Exécutez la commande suivante pour envoyer les données à l’OTel collector :

        ```shell theme={null}
        for filename in $(tar -tf sample.tar.gz); do
          endpoint="http://localhost:4318/v1/${filename%.json}"
          echo "loading ${filename%.json}"
          tar -xOf sample.tar.gz "$filename" | while read -r line; do
            printf '%s\n' "$line" | curl -s -o /dev/null -X POST "$endpoint" \
            -H "Content-Type: application/json" \
            -H "authorization: ${CLICKSTACK_API_KEY}" \
            --data-binary @-
          done
        done
        ```

        Cela simule des sources OTLP de logs, de traces et de métriques qui envoient des données à l’OTel collector. En production, ces sources peuvent être des clients pour différents langages, voire d’autres OTel collectors.

        De retour dans la vue `Search`, vous devriez voir que les données ont commencé à se charger (ajustez la période sur `Last 1 hour` si les données ne s'affichent pas) :

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-10.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=8d52bbe8b1311274c1925bce011f39d5" alt="Recherche HyperDX" size="lg" width="3430" height="2340" data-path="images/use-cases/observability/hyperdx-10.png" />

        Le chargement des données prendra quelques minutes. Attendez qu’il soit terminé avant de passer aux étapes suivantes.
      </Step>

      <Step>
        ### Explorer les sessions

        Supposons que nous recevions des signalements indiquant que nos utilisateurs rencontrent des problèmes au moment de payer leurs achats. Nous pouvons consulter leur expérience à l’aide des fonctionnalités de session replay d’HyperDX.

        Sélectionnez [`Client Sessions`](http://localhost:8080/sessions?from=1747312320000\&to=1747312920000\&sessionSource=l1324572572) dans le menu de gauche.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-11.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=151bf73a63c255e3e4794356358def5b" alt="Sessions" size="lg" width="4852" height="2890" data-path="images/use-cases/observability/hyperdx-11.png" />

        Cette vue permet de voir les sessions front-end de notre boutique e-commerce. Les sessions restent anonymes jusqu’à ce que les utilisateurs passent en caisse et tentent de finaliser un achat.

        Notez que certaines sessions associées à des adresses e-mail comportent une erreur, ce qui peut confirmer les signalements d’échec de transaction.

        Sélectionnez une trace présentant un échec et associée à une adresse e-mail. La vue suivante permet de rejouer la session de l’utilisateur et d’examiner son problème. Appuyez sur play pour visionner la session.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-12.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=28c501adeaff940425bbdf4641509875" alt="Session replay" size="lg" width="4874" height="2890" data-path="images/use-cases/observability/hyperdx-12.png" />

        La relecture montre l’utilisateur naviguant sur le site et ajoutant des articles à son panier. N’hésitez pas à avancer plus loin dans la session, jusqu’au moment où il tente de finaliser le paiement.

        <Tip>
          Les erreurs sont annotées en rouge sur la chronologie.
        </Tip>

        L’utilisateur n’a pas pu passer la commande, sans erreur évidente. Faites défiler jusqu’en bas du panneau de gauche, qui contient les événements réseau et console du navigateur de l’utilisateur. Vous remarquerez qu’une erreur 500 a été renvoyée lors d’un appel à `/api/checkout`.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-13.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=60ab449d96a9b835c556a56b657cfdab" alt="Erreur dans la session" size="lg" width="4874" height="2892" data-path="images/use-cases/observability/hyperdx-13.png" />

        Sélectionnez cette erreur `500`. Ni l’`Overview` ni les `Column Values` n’indiquent la source du problème, si ce n’est que l’erreur est inattendue et provoque une `Internal Error`.
      </Step>

      <Step>
        ### Explorer les traces

        Accédez à l’onglet `Trace` pour afficher la trace distribuée complète.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-14.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=b6a0e25703ea6c61c58855dc9bad60b4" alt="Trace de session" size="lg" width="4874" height="2890" data-path="images/use-cases/observability/hyperdx-14.png" />

        Faites défiler la trace vers le bas pour voir l’origine de l’erreur : le span du service `checkout`. Sélectionnez le span du service `Payment`.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-15.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=0028e3ec9262814ef7faa7b3a47020a9" alt="Span" size="lg" width="4874" height="2890" data-path="images/use-cases/observability/hyperdx-15.png" />

        Sélectionnez l’onglet `Column Values`, puis faites défiler vers le bas. Nous pouvons voir que le problème est lié à un cache saturé.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-16.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=0567f533f312fd06860422380e7b5154" alt="Valeurs de colonne" size="lg" width="4874" height="2890" data-path="images/use-cases/observability/hyperdx-16.png" />

        En remontant puis en revenant à la trace, nous pouvons voir que les logs sont corrélés au span grâce à notre configuration précédente. Ils fournissent un contexte supplémentaire.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-17.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=6776584117a98835f8f7a82d8ccecbf4" alt="Log corrélé" size="lg" width="4874" height="2890" data-path="images/use-cases/observability/hyperdx-17.png" />

        Nous avons établi qu’un cache se remplit dans le service de paiement, ce qui empêche les paiements d’aboutir.
      </Step>

      <Step>
        ### Explorer les logs

        Pour plus de détails, nous pouvons revenir à la vue [`Search`](http://localhost:8080/search) :

        Sélectionnez `Logs` dans les sources et appliquez un filtre sur le service `payment`.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-18.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=4201aee6474cbce4a38173f9bafbf7a6" alt="Logs" size="lg" width="4874" height="2890" data-path="images/use-cases/observability/hyperdx-18.png" />

        Nous pouvons constater que, bien que le problème soit récent, le nombre de paiements affectés est élevé. De plus, un cache lié aux paiements Visa semble être à l’origine du problème.
      </Step>

      <Step>
        ### Métriques du graphique

        Bien qu'une erreur ait clairement été introduite dans le code, nous pouvons utiliser les métriques pour confirmer la taille du cache. Accédez à la vue `Chart Explorer`.

        Sélectionnez `Metrics` comme source de données. Configurez le chart builder pour tracer le `Maximum` de `visa_validation_cache.size (Gauge)`, puis appuyez sur le bouton play. Le cache augmentait clairement jusqu'à atteindre une taille maximale, après quoi des erreurs se sont produites.

        <Image img="https://mintcdn.com/private-7c7dfe99-mintlify-8c05c8a2/RhEK5rhPj_7m6pWY/images/use-cases/observability/hyperdx-19.png?fit=max&auto=format&n=RhEK5rhPj_7m6pWY&q=85&s=652ad1f8c627bee003bf97bac2fee060" alt="Métriques" size="lg" width="3600" height="1856" data-path="images/use-cases/observability/hyperdx-19.png" />
      </Step>
    </Steps>
  </Tab>
</Tabs>
