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

# Valuta 30 librerie di logging per il tuo 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="Valuta 30 librerie di logging per il tuo stack" description="Esegui una sessione Devin per ciascuna libreria per valutare costi, prestazioni e qualità degli SDK, quindi riunisci tutto in un'unica tabella comparativa classificata." prompt="Stiamo sostituendo la nostra pipeline di logging. Avvia un batch di 30 sessioni Devin in parallelo — una per ogni libreria di logging — per analizzare benchmark delle prestazioni, fasce di prezzo, qualità degli SDK per i vari linguaggi e politiche di conservazione dei log. Raccogli tutti i risultati in un unico foglio di calcolo comparativo, classificato in base all’idoneità complessiva a uno stack di microservizi Node.js + Python." category="Ottimizzazione con Devin" features="Avanzate" agent="advanced" intent="batch" />

<div className="uc-detail-wrapper">
  <Tip>Non vuoi configurarlo manualmente? Incolla un collegamento a questa pagina in una sessione Devin e chiedigli di impostare tutto per te.</Tip>

  <Steps>
    <Step title="Scrivi un prompt di ricerca seguendo un modello coerente">
      La chiave per una ricerca parallela efficace è dare a ogni sessione la stessa checklist. Ogni sessione analizza una libreria in modo indipendente, quindi il modello assicura che i risultati siano direttamente confrontabili quando vengono uniti.

      Apri una nuova sessione Devin dalla [home page di Devin](https://app.devin.ai/?utm_source=docs\&utm_medium=use-case-gallery), oppure usa la pagina **Explore Advanced Capabilities** nella home page di Devin per un template di prompt per la ricerca parallela.

      <PromptBlock agent="advanced" intent="batch">
        ```txt Valutazione in parallelo delle librerie di logging theme={null}
        Stiamo sostituendo il nostro stack ELK con una soluzione di logging moderna
        per un'architettura a microservizi Node.js + Python (~50 servizi, ~2 TB di log/giorno).
        Effettua una ricerca in parallelo su queste librerie e piattaforme di logging — una sessione
        per ogni libreria:

        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

        Per ogni libreria, compila questo template:
        - Tipo: piattaforma SaaS, self-hosted o agent/collector
        - Modello di prezzo e costo mensile stimato per un'ingestione di 2 TB/giorno
        - Opzioni di conservazione dei log (tier hot, warm, cold)
        - SDK Node.js: qualità 1-5, supporto auto-instrumentation (sì/no)
        - SDK Python: qualità 1-5, supporto auto-instrumentation (sì/no)
        - Linguaggio di query e latenza media delle query per una finestra di 7 giorni
        - Alerting: regole integrate, rilevamento anomalie (sì/no)
        - Limitazioni rilevanti o problemi comuni segnalati dagli sviluppatori nei forum

        Genera un report in markdown con il template compilato.
        ```
      </PromptBlock>
    </Step>

    <Step title="Rivedi e approva le sessioni proposte">
      Dopo l'invio, Devin analizza il tuo elenco e propone una sessione per ogni libreria. Vedrai un'anteprima simile a questa:

      ```
      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...
        ...
      ```

      Esamina l'elenco e fai clic su **Approve** per avviare tutte le sessioni contemporaneamente. Ogni sessione viene eseguita in modo indipendente, esplorando il sito web della libreria, leggendo la documentazione, consultando i forum per sviluppatori e compilando il modello.

      Se vuoi escludere o aggiungere librerie, modifica l'elenco prima di approvare. Puoi anche allegare un [playbook](/it/product-guides/creating-playbooks) per assicurarti che ogni sessione segua la stessa metodologia di ricerca.
    </Step>

    <Step title="Raccogli e confronta i risultati">
      Una volta completate tutte le sessioni, Devin unisce automaticamente i singoli report in un unico confronto. L'output viene generato nel formato che hai richiesto — ecco come appare il confronto in stile foglio di calcolo risultante:

      ```
      ## 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
      ```

      Puoi porre domande di follow-up nella stessa sessione: ha il contesto di tutte le sessioni figlie.

      Una volta scelto un vincitore, puoi avviare una sessione Devin direttamente dalla stessa sessione per configurare la libreria nella tua repo:

      <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="Approfondisci la lista ristretta">
      Once you have a shortlist, start targeted follow-up sessions for deeper evaluation.

      <PromptBlock agent="advanced" intent="batch">
        ```txt Analisi approfondita delle 3 principali soluzioni di logging theme={null}
        Prendi Axiom, Grafana Loki e Datadog Logs ed esegui una valutazione più approfondita:
        - Crea un’integrazione proof-of-concept per ciascuna utilizzando il nostro servizio
          Node.js Express e il nostro servizio Python FastAPI
        - Ingerisci 10.000 righe di log di esempio e misura la latenza di ingestione
        - Esegui 5 query realistiche (tasso di errore, latenza P99, correlazione delle tracce,
          ricerca full-text, filtro regex) e registra i tempi di risposta
        - Documenta l’attrito nel setup (creazione account, installazione SDK, primo log visibile)
        Indica quale è stato il più rapido da configurare e il più affidabile nelle query.
        ```
      </PromptBlock>

      <PromptBlock agent="advanced" intent="batch">
        ```txt Applica lo stesso schema agli strumenti APM theme={null}
        Usa lo stesso schema di ricerca parallela per valutare 15 piattaforme APM / tracing:
        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. Stesso modello: pricing,
        qualità degli SDK, linguaggio di query e principali limitazioni.
        ```
      </PromptBlock>
    </Step>

    <Step title="Suggerimenti">
      ### Questo modello funziona per qualsiasi valutazione tecnica

      La ricerca in parallelo non è limitata agli strumenti di logging. Usala per qualsiasi valutazione in cui hai bisogno degli stessi dati su molte opzioni — piattaforme CI/CD, servizi di feature flag, ORM, provider cloud o framework di conformità. Esempio: "Analizza queste 20 piattaforme CI/CD e confronta velocità di build, prezzi, opzioni self-hosted e qualità dell'integrazione con GitHub."

      ### Mantieni ogni sessione tra i 15 e i 30 minuti

      Se una singola libreria richiede ore di analisi approfondita, è un segnale che dovrebbe avere una sessione dedicata invece di far parte di un run parallelo. Le sessioni parallele funzionano meglio quando ogni elemento richiede all’incirca lo stesso sforzo.
    </Step>
  </Steps>
</div>
