> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devin.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Évaluez 30 bibliothèques de logging pour votre stack

export const UseCaseHero = ({title, description, prompt, category, features, devinUrl, agent, intent, playbookId, type}) => {
  const encodedPrompt = encodeURIComponent(prompt || '');
  const tag = 'docs-use-case-gallery';
  const utm = 'utm_source=docs&utm_medium=use-case-gallery&utm_campaign=hero-cta';
  const agentParams = (agent ? '&agent=' + agent : '') + (intent ? '&intent=' + intent : '') + (playbookId ? '&playbookId=' + playbookId : '');
  const devinHref = type === 'schedule' ? 'https://app.devin.ai/settings/schedules/create?' + utm + agentParams + (prompt ? '&prompt=' + encodedPrompt : '') : type === 'review' ? 'https://app.devin.ai/review?' + utm : agent === 'ada' ? 'https://app.devin.ai/search?' + utm + '&noSubmit=true' + (prompt ? '&prompt=' + encodedPrompt : '') : devinUrl ? devinUrl.includes('?') ? devinUrl + '&' + utm + agentParams : devinUrl + '?' + utm + agentParams : prompt ? 'https://app.devin.ai/?tags=' + tag + '&' + utm + agentParams + '&prompt=' + encodedPrompt : 'https://app.devin.ai/?' + utm + agentParams;
  const buttonLabel = type === 'schedule' ? 'Schedule in Devin ↗' : type === 'review' ? 'Set Up Devin Review ↗' : agent === 'advanced' ? 'Try in Devin ↗' : agent === 'dana' ? 'Try in Dana ↗' : agent === 'ada' ? 'Try in Ask Devin ↗' : 'Try in Devin ↗';
  const featureList = features ? features.split(',').map(f => f.trim()) : [];
  return <div className="uc-hero">
      <div className="uc-hero-inner">
        <div className="uc-hero-left">
          <h1 className="uc-hero-title">{title}</h1>
          <p className="uc-hero-desc">{description}</p>
          <div>
            <a href={devinHref} target="_blank" rel="noopener noreferrer" className="try-in-devin-btn">
              {buttonLabel}
            </a>
          </div>
        </div>
        <div className="uc-hero-meta">
          <div className="uc-meta-item">
            <span className="uc-meta-label">Author</span>
            <span className="uc-meta-value">Cognition</span>
          </div>
          <div className="uc-meta-item">
            <span className="uc-meta-label">Category</span>
            <span className="uc-meta-value">{category}</span>
          </div>
          {featureList.length > 0 && <div className="uc-meta-item">
              <span className="uc-meta-label">Features</span>
              <span className="uc-meta-value">{featureList.join(', ')}</span>
            </div>}
        </div>
      </div>
    </div>;
};

export const PromptBlock = ({children, type, agent, intent, playbookId}) => {
  var utm = 'utm_source=docs&utm_medium=use-case-gallery&utm_campaign=prompt-block';
  var tag = 'docs-use-case-gallery';
  var agentParams = (agent ? '&agent=' + agent : '') + (intent ? '&intent=' + intent : '') + (playbookId ? '&playbookId=' + playbookId : '');
  var label = type === 'schedule' ? 'Schedule in Devin' : type === 'playbook' ? 'Create Playbook' : type === 'knowledge' ? 'Add to Knowledge' : agent === 'advanced' ? 'Try in Devin' : agent === 'dana' ? 'Try in Dana' : agent === 'ada' ? 'Try in Ask Devin' : 'Try in Devin';
  var buildUrl = function (text) {
    var encoded = encodeURIComponent(text);
    if (type === 'schedule') return 'https://app.devin.ai/settings/schedules/create?' + utm + agentParams + '&prompt=' + encoded;
    if (type === 'playbook') return 'https://app.devin.ai/settings/playbooks/create?' + utm + '&body=' + encoded;
    if (type === 'knowledge') return 'https://app.devin.ai/knowledge?' + utm + '&body=' + encoded;
    if (agent === 'ada') return 'https://app.devin.ai/search?' + utm + '&noSubmit=true&prompt=' + encoded;
    return 'https://app.devin.ai/?tags=' + tag + '&' + utm + agentParams + '&prompt=' + encoded;
  };
  const ref = React.useRef(null);
  const [href, setHref] = React.useState('#');
  React.useEffect(() => {
    if (!ref.current) return;
    var codeEl = ref.current.querySelector('pre code');
    if (codeEl) {
      var text = codeEl.textContent.trim();
      if (text) setHref(buildUrl(text));
    }
    var header = ref.current.querySelector('[data-component-part="code-block-header"]');
    if (header && !header.querySelector('.prompt-block-devin-link')) {
      var link = document.createElement('a');
      link.href = href;
      link.target = '_blank';
      link.rel = 'noopener noreferrer';
      link.className = 'prompt-block-devin-link';
      link.style.cssText = 'display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:#fff;font-size:11px;font-weight:500;padding:4px 10px;border-radius:6px;white-space:nowrap;background:#317CFF;transition:background 0.2s;margin-left:8px;';
      link.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg> ' + label;
      link.onmouseenter = function () {
        link.style.background = '#2968D9';
      };
      link.onmouseleave = function () {
        link.style.background = '#317CFF';
      };
      header.appendChild(link);
    }
    var existingLink = ref.current.querySelector('.prompt-block-devin-link');
    if (existingLink && href !== '#') existingLink.href = href;
  });
  return <div className="prompt-block" ref={ref}>{children}</div>;
};

<UseCaseHero title="Évaluez 30 bibliothèques de logging pour votre stack" description="Lancez une session Devin par bibliothèque pour évaluer le coût, les performances et la qualité des SDK, puis consolidez le tout dans un tableau comparatif classé." prompt="Nous remplaçons notre pipeline de logging. Lancez un lot de 30 sessions Devin en parallèle — une par bibliothèque de logging — pour analyser les benchmarks de performance, les paliers de tarification, la qualité des SDK par langage et les politiques de rétention des données. Compilez tous les résultats dans une seule feuille de calcul comparative, classée par adéquation globale à une stack de microservices Node.js + Python." category="Devin Optimization" features="Advanced" agent="advanced" intent="batch" />

<div className="uc-detail-wrapper">
  <Tip>Vous ne souhaitez pas effectuer cette configuration manuellement ? Collez un lien vers cette page dans une session Devin et demandez-lui de tout configurer pour vous.</Tip>

  <Steps>
    <Step title="Rédiger un prompt de recherche selon un modèle cohérent">
      La clé d’une recherche parallèle efficace est de donner à chaque session la même checklist. Chaque session étudie une bibliothèque indépendamment, donc le modèle garantit que les résultats sont directement comparables une fois fusionnés.

      Ouvrez une nouvelle session Devin depuis la [page d’accueil de Devin](https://app.devin.ai/?utm_source=docs\&utm_medium=use-case-gallery), ou utilisez la page **Explore Advanced Capabilities** de la page d’accueil de Devin pour accéder à un modèle de prompt de recherche parallèle.

      <PromptBlock agent="advanced" intent="batch">
        ```txt Évaluation parallèle de bibliothèques de journalisation theme={null}
        Nous remplaçons notre stack ELK par une solution de journalisation moderne
        pour une architecture de microservices Node.js + Python (~50 services, ~2 To de logs/jour).
        Étudiez ces bibliothèques et plateformes de journalisation en parallèle — une session
        par bibliothèque :

        Datadog Logs, Grafana Loki, AWS CloudWatch Logs, Google Cloud Logging,
        Splunk, New Relic Logs, Axiom, Better Stack (Logtail), Mezmo (LogDNA),
        Logz.io, Papertrail, Sumo Logic, Elastic Cloud, Scalyr (Dataset),
        Timber.io, Seq, Graylog, Fluentd, Vector, Logstash, Syslog-ng,
        OpenTelemetry Collector, Cribl, Coralogix, Honeycomb, Baselime,
        Highlight.io, Signoz, Hyperdx, Last9

        Pour chaque bibliothèque, remplissez ce modèle :
        - Type : plateforme SaaS, auto-hébergée ou agent/collecteur
        - Modèle de tarification et coût mensuel estimé pour 2 To/jour d’ingestion
        - Options de rétention des logs (niveaux hot, warm, cold)
        - SDK Node.js : qualité 1-5, prise en charge de l’auto-instrumentation (oui/non)
        - SDK Python : qualité 1-5, prise en charge de l’auto-instrumentation (oui/non)
        - Langage de requête et latence moyenne des requêtes pour une fenêtre de 7 jours
        - Alerting : règles intégrées, détection d’anomalies (oui/non)
        - Limitations notables ou plaintes courantes provenant des forums de développeurs

        Générez un rapport en markdown avec le modèle rempli.
        ```
      </PromptBlock>
    </Step>

    <Step title="Passez en revue et approuvez les sessions proposées">
      Une fois envoyée, Devin analyse votre liste et propose une session par bibliothèque. Vous verrez un aperçu semblable à :

      ```
      Proposed sessions (30):
        1. Research Datadog Logs — pricing, SDKs, retention, alerting...
        2. Research Grafana Loki — pricing, SDKs, retention, alerting...
        3. Research AWS CloudWatch Logs — pricing, SDKs, retention, alerting...
        ...
      ```

      Passez la liste en revue et cliquez sur **Approve** pour lancer toutes les sessions simultanément. Chaque session s’exécute indépendamment : navigation sur le site de la bibliothèque, lecture de la documentation, consultation des forums pour développeurs et remplissage du modèle.

      Si vous souhaitez ignorer ou ajouter des bibliothèques, modifiez la liste avant d’approuver. Vous pouvez aussi associer un [playbook](/fr/product-guides/creating-playbooks) afin de vous assurer que chaque session applique la même méthodologie de recherche.
    </Step>

    <Step title="Rassembler et comparer les résultats">
      Une fois toutes les sessions terminées, Devin fusionne automatiquement les rapports individuels en une seule comparaison. Le résultat suit le format que vous avez demandé — voici à quoi ressemble la comparaison compilée sous forme de feuille de calcul :

      ```
      ## Logging Library Comparison (Node.js + Python, 2 TB/day)

      | Library           | Type       | $/mo (2 TB/day) | Retention       | Node SDK | Python SDK | Query Lang   | Alerting     |
      |-------------------|------------|-----------------|-----------------|----------|------------|--------------|--------------|
      | Datadog Logs      | SaaS       | ~$5,400         | 15d hot, archive| 5/5      | 5/5        | Custom DSL   | Yes + anomaly|
      | Grafana Loki      | Self-host  | Infra only      | Configurable    | 4/5      | 4/5        | LogQL        | Via Grafana  |
      | Axiom              | SaaS       | ~$1,200         | 30d hot, 1yr    | 4/5      | 4/5        | APL          | Yes          |
      | Better Stack      | SaaS       | ~$890           | 30d default     | 5/5      | 4/5        | SQL-like     | Yes          |
      | Elastic Cloud     | SaaS/self  | ~$3,600         | ILM policies    | 5/5      | 5/5        | KQL / Lucene | Yes + ML     |
      | Signoz            | Self-host  | Infra only      | Configurable    | 4/5      | 4/5        | ClickHouse SQL| Yes         |
      | Coralogix         | SaaS       | ~$2,100         | Hot/warm/cold   | 4/5      | 3/5        | Lucene / SQL | Yes + anomaly|
      | ...               |            |                 |                 |          |            |              |              |

      ### Top 3 for a 50-service Node.js + Python stack:
      1. Axiom — lowest cost at scale, fast APL queries, solid SDKs
      2. Grafana Loki — zero license cost, pairs with existing Grafana dashboards
      3. Datadog Logs — best SDK auto-instrumentation, but expensive at 2 TB/day
      ```

      Vous pouvez poser des questions complémentaires dans la même session — elle dispose du contexte de toutes les sous-sessions.

      Une fois que vous avez choisi un gagnant, vous pouvez lancer une session Devin directement depuis la même session pour configurer la bibliothèque dans votre dépôt :

      <PromptBlock>
        ```txt Set up Axiom logging in our monorepo theme={null}
        Set up Axiom as our logging solution across our Node.js Express and
        Python FastAPI services. Install the SDKs, configure structured
        logging with correlation IDs, add the AXIOM_API_TOKEN from env vars,
        and verify logs are flowing by hitting a test endpoint. Open a PR
        with the setup.
        ```
      </PromptBlock>
    </Step>

    <Step title="Approfondissez la présélection">
      Une fois que vous avez une liste restreinte, commencez des sessions de suivi ciblées pour une évaluation plus approfondie.

      <PromptBlock agent="advanced" intent="batch">
        ```txt Analyse approfondie des 3 principales solutions de logging theme={null}
        Prenez Axiom, Grafana Loki et Datadog Logs et réalisez une évaluation plus poussée :
        - Créez une intégration de proof-of-concept pour chacune en utilisant notre service
          Node.js Express et notre service Python FastAPI
        - Ingérez 10 000 lignes de logs d’exemple et mesurez la latence d’ingestion
        - Exécutez 5 requêtes réalistes (taux d’erreur, latence P99, corrélation de traces,
          recherche en texte libre, filtre regex) et enregistrez les temps de réponse
        - Documentez les points de friction lors de la mise en place (création de compte,
          installation du SDK, premier log visible)
        Indiquez laquelle a été la plus rapide à configurer et dont les requêtes ont été les plus fiables.
        ```
      </PromptBlock>

      <PromptBlock agent="advanced" intent="batch">
        ```txt Appliquez le même modèle aux outils d’APM theme={null}
        Utilisez le même modèle de recherche en parallèle pour évaluer 15 plateformes
        d’APM / traçage : Datadog APM, New Relic, Dynatrace, Honeycomb, Lightstep,
        Jaeger, Zipkin, Signoz, Grafana Tempo, AWS X-Ray, Google Cloud Trace,
        Elastic APM, Splunk APM, Highlight.io, Last9. Même trame : tarification,
        qualité du SDK, langage de requête et limitations notables.
        ```
      </PromptBlock>
    </Step>

    <Step title="Conseils">
      ### Ce modèle fonctionne pour toute évaluation technique

      La recherche en parallèle ne se limite pas aux outils de journalisation. Utilisez-la pour toute évaluation où vous avez besoin des mêmes indicateurs pour de nombreuses options — plateformes CI/CD, services de feature flags, ORM, fournisseurs cloud ou cadres de conformité. Exemple : « Étudie ces 20 plateformes CI/CD et compare la vitesse de build, la tarification, les options auto‑hébergées et la qualité de l’intégration GitHub. »

      ### Limitez chaque session à 15 à 30 minutes

      Si une seule bibliothèque nécessite des heures d’analyse approfondie, c’est le signe qu’elle devrait faire l’objet de sa propre session dédiée plutôt que de faire partie d’une exécution parallèle. Les sessions parallèles fonctionnent mieux lorsque chaque élément demande à peu près le même niveau d’effort.
    </Step>
  </Steps>
</div>
