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

# 自分のスタック向けログライブラリ30種を評価する

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="スタック向けのロギングライブラリ30個を評価する" description="ライブラリごとに1つずつDevinセッションを実行し、料金、パフォーマンス、SDK品質をスコアリングし、その結果をすべて統合して順位付きの比較表にまとめます。" prompt="ロギングパイプラインを刷新します。ログライブラリごとに1つ、合計30個のDevinセッションを並列バッチ実行し、パフォーマンスベンチマーク、料金プラン、各言語向けSDKの品質、データ保持ポリシーを調査してください。すべての調査結果を、Node.js + Pythonマイクロサービススタックへの総合的な適合度で順位付けした1つの比較スプレッドシートにまとめてください。" category="Devin最適化" features="高度" agent="advanced" intent="batch" />

<div className="uc-detail-wrapper">
  <Tip>手動でのセットアップが面倒ですか？このページのリンクを Devin セッションに貼り付けて、すべてセットアップするよう依頼してください。</Tip>

  <Steps>
    <Step title="一貫したテンプレートでリサーチ用プロンプトを作成する">
      有用な並列調査を行うための鍵は、すべてのセッションに同じチェックリストを与えることです。各セッションは 1 つのライブラリを独立して調査するため、このテンプレートによって、結果をマージした際に直接比較できるようになります。

      [Devin home page](https://app.devin.ai/?utm_source=docs\&utm_medium=use-case-gallery) から新しい Devin セッションを開くか、並列調査用のプロンプトテンプレートについては、Devin home page の **Explore Advanced Capabilities** ページを利用します。

      <PromptBlock agent="advanced" intent="batch">
        ```txt 並列ログライブラリ評価 theme={null}
        Node.js + Python マイクロサービスアーキテクチャ（約 50 サービス、約 2 TB/日 のログ）向けに、
        既存の ELK スタックをモダンなログソリューションに置き換えます。
        以下のログライブラリおよびプラットフォームを並列でリサーチしてください — ライブラリごとに 1 セッションです:

        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

        各ライブラリについて、次のテンプレートを埋めてください:
        - Type: SaaS プラットフォーム、セルフホスト、またはエージェント/コレクター
        - 料金モデルと、2 TB/日を取り込む場合の概算月額コスト
        - ログ保持オプション（ホット、ウォーム、コールド層）
        - Node.js SDK: 品質 1〜5、自動インスツルメンテーション対応（yes/no）
        - Python SDK: 品質 1〜5、自動インスツルメンテーション対応（yes/no）
        - クエリ言語と、直近 7 日分のデータに対する平均クエリレイテンシ
        - アラート機能: 組み込みルール、異常検知の有無（yes/no）
        - 開発者フォーラムでよく挙げられる制限事項や一般的な不満点

        テンプレートを埋めたうえで、Markdown レポートとして出力してください。
        ```
      </PromptBlock>
    </Step>

    <Step title="提案されたセッションをレビューして承認する">
      送信すると、Devin がリストを解析し、ライブラリごとに 1 つのセッションを提案します。次のようなプレビューが表示されます：

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

      リストを確認し、**Approve** をクリックしてすべてのセッションを同時に起動します。各セッションは独立して実行され、ライブラリの Web サイトを閲覧し、ドキュメントを読み、開発者フォーラムを確認し、テンプレートに入力します。

      ライブラリをスキップしたり追加したりしたい場合は、承認する前にリストを編集してください。すべてのセッションが同じ調査手法に従うようにするには、[playbook](/ja/product-guides/creating-playbooks) を添付することもできます。
    </Step>

    <Step title="結果を収集して比較する">
      すべてのセッションが完了すると、Devin は個々のレポートを自動的に 1 つの比較結果に統合します。出力は指定したフォーマットに従います — 統合されたスプレッドシート形式の比較結果は次のようになります。

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

      同じセッション内でフォローアップの質問を行うことができます。このセッションには、すべての子セッションのコンテキストが含まれています。

      ベストな案を選んだら、同じセッションから直接Devinセッションを起動して、リポジトリ内にライブラリをセットアップできます:

      <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="ショートリストをさらに掘り下げる">
      Once you have a shortlist, start targeted follow-up sessions for deeper evaluation.

      <PromptBlock agent="advanced" intent="batch">
        ```txt 上位3つのログソリューションを詳細評価 theme={null}
        Axiom、Grafana Loki、Datadog Logs の3つを選び、より深い評価を行ってください:
        - Node.js の Express サービスと Python の FastAPI サービスを使って、
          それぞれのプロダクト向けに PoC レベルの連携実装を構築する
        - サンプルのログ行を 10,000 件取り込み、インジェストのレイテンシを計測する
        - 現実的なクエリを5種類（エラー率、P99 レイテンシ、トレース相関、
          フリーテキスト検索、正規表現フィルタ）実行し、レスポンス時間を記録する
        - セットアップ時の負荷（アカウント作成、SDK インストール、最初のログが見えるまで）
          をドキュメント化する
        どれが最もセットアップが速く、クエリが最も安定して実行できたかを報告してください。
        ```
      </PromptBlock>

      <PromptBlock agent="advanced" intent="batch">
        ```txt 同じパターンを APM ツールにも適用 theme={null}
        同じ並行リサーチのパターンを使って、以下 15 の APM / トレーシング
        プラットフォームを評価してください: 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。
        評価テンプレートは同じです: 価格、SDK の品質、クエリ言語、顕著な制約。
        ```
      </PromptBlock>
    </Step>

    <Step title="ヒント">
      ### このパターンはあらゆる技術的な評価に使える

      並行して行う調査はロギングツールに限定されません。同じ観点で複数の選択肢を評価するあらゆる場面で使えます — CI/CD プラットフォーム、フィーチャーフラグサービス、ORM、クラウドプロバイダ、コンプライアンスフレームワークなどです。例: 「これら 20 個の CI/CD プラットフォームを調査し、ビルド速度、料金、セルフホストの可否、GitHub 連携の品質を比較する。」

      ### 各セッションは 15〜30 分に収める

      1 つのライブラリの調査に数時間の深掘りが必要になる場合、それは並列実行の一部ではなく、専用のセッションとして個別に集中して行うべきだというサインです。並列セッションが最も有効なのは、各項目にかかる作業量がおおよそ同程度のときです。
    </Step>
  </Steps>
</div>
