Trench
Frigade · コーディング
Trench は Frigade が公開した無料のオープンソース分析基盤で、ClickHouse と Kafka 上でイベントをリアルタイムに追跡し、Cookie なしで動くよう設計されている。

Trench について
What Is Trench
Trench は自分でホストし、自分のアカウントの下に置いておけるイベント追跡システムだ。利用者がアプリ内で行ったこと、たとえば会員登録や購入の完了、機能を開く動作などを記録し、あとからそのデータを SQL や REST エンドポイントでリアルタイムに問い合わせられる。土台では Apache Kafka が流入するストリームを受け止め、ClickHouse が問い合わせに素早く答える。
Frigade のチームが自社のイベント処理をスケールさせるために作り、のちにオープンソースとして公開した。ホスティング型の分析ツールの請求額を見て、なぜ自分の利用者を追跡するのにこんなに費用がかかるのかと疑問に思ったことがあるなら、この点は意味を持つ。Trench が狙うのは、Segment 流の追跡を、すべてのイベントを他社のサーバーへ送ることなく実現したい開発者だ。
手に入るものを決めるのは二点ある。第一に、Trench は Segment API に準拠しているため、すでに書いた track、identify、group の呼び出しはエンドポイントを変えるだけで多くの場合動く。第二に、Kafka と ClickHouse を内包した単一の Docker イメージとして届くため、導入は短く済むが、本物のデータベースを運用することにもなる。本番ノードには少なくとも 4 GB のメモリと 4 コアを用意したい。
Getting Started
- FrigadeHQ/trench リポジトリをクローンし、apps/trench フォルダを開く。
- サンプルの環境ファイルをコピーし、Docker Compose でスタックを起動する。ローカルの Kafka と ClickHouse も一緒に立ち上がる。
- ポート 4000 のサーバーを開き、環境ファイルで公開キーと秘密キーを確認する。
- events エンドポイントへ、userId、track などの type、properties オブジェクトを付けてイベントを送る。
- events エンドポイントでデータを読み戻すか、queries エンドポイントで SQL 文を実行する。
AIツール情報
Trenchの料金、対応プラットフォーム、性能を簡単に確認できます。
こんな人におすすめ
このツールが最も力を発揮するユーザー、タスク、シーン。
ユーザー
- Segment 流の追跡を、ホスティングの請求なしで使いたい開発者。Trench は同じ API を話すため、既存の track や identify の呼び出しはエンドポイントを変えるだけで済むことが多い。
- データの扱いに厳しいルールを持つチーム。イベントは自分の ClickHouse インスタンスに残るので、生データを第三者が持たない点で GDPR と噛み合う。
- すでに Kafka を運用しているエンジニア。スタックは慣れた道具の上に成り立つため、ほかのパイプラインと同じ感覚でスループットを調整できる。
タスク
- プロダクトのイベントを記録する。userId、イベント名、プロパティを送れば、数秒後にクエリで読み戻せる。
- SQL で行動を調べる。ClickHouse のストアに文を投げ、登録数を数えたり活動を集計したりできる。データを外へ出す必要はない。
- イベントを他のツールへ送る。Webhook を別のサービスへ向ければ、新しいイベントはチームがすでに使う場所へ届く。
シーン
- プロダクト分析のダッシュボードを作る。追跡した利用者ごとに課金される代わりに、生のイベントを自分の画面へ引き込む。
- コンプライアンス担当を納得させる。個人データが自分が管理する基盤から出ないことを示せる。
- 利用者の文脈を要する言語モデルの流れを試作する。保存済みのイベントを問い合わせ、すでに動かしている検索の工程に渡す。
主な機能
Segment 互換の追跡 API
Trench は track、identify、group の呼び出しで Segment API に準拠する。アプリがすでにこの形式でイベントを送っているなら、Trench のエンドポイントへ向け直して既存コードをそのまま使える。この互換性こそ、移行が書き直しではなく数時間で済む主な理由だ。
単一の Docker イメージでの配備
システム全体が、Kafka と ClickHouse を同梱した本番向けの Docker イメージとして届く。Compose のコマンドを一つ実行すれば動くスタックが手に入り、三つのサービスを手作業でつなぐ必要はない。代償はハードウェアで、本番ノードには 4 GB のメモリと 4 コアを目安にしたい。
Kafka と ClickHouse によるリアルタイムのスループット
Kafka が流入するストリームを受け止め、ClickHouse が問い合わせに答える。単一ノードでも毎秒数千のイベントをさばき、同じ二つの道具は Airbnb や Spotify のような企業で数兆件のイベントを扱っている。一人の開発者や小さなチームなら、拡張が必要になるまで一つのノードでかなり持つ。
SQL と REST での問い合わせ
データを読むために別の BI ツールは要らない。events エンドポイントは保存済みのイベントを JSON で返し、queries エンドポイントは ClickHouse のストアに生の SQL を実行する。日ごとのアクティブ利用者を数えたり、イベントをプロパティでまとめたりするのは短い一文で済み、エクスポート作業にはならない。
Webhook による送り先
流量を絞った Webhook が、新しいイベントを他のサービスへ押し出す。これで Trench はスタックの中央に座り、イベントを受け止めて CRM、データウェアハウス、アラート用のツールへ転送する。システム間でデータを動かすためだけの自前の中継を書かずに済む。
メリットとデメリット
メリット
- MIT ライセンスのオープンソースで、コードを読んでも書き換えてもよい。
- セルフホストは無料で利用上限もなく、イベント単位の課金を避けられる。
- Segment API に準拠するため、既存の追跡コードがそのまま動くことが多い。
- データは自分の ClickHouse インスタンスに残り、GDPR への対応に役立つ。
- 一つの Docker イメージが Kafka と ClickHouse をまとめ、導入の手間を減らす。
デメリット
- Kafka と ClickHouse のスタックを運用するため、本番ノードには 4 GB のメモリと 4 コアが要る。
- ダッシュボードは同梱されない。グラフを見るには Grafana をつなぐか、自前の画面を作る。
- 自分で運用する以上、更新やバックアップ、稼働率の維持も自分で担う。
- マネージドの Cloud はあるが、固定価格は公表されておらず、見積もりを求める形になる。
よくある質問
Trench は自分のプロダクト内のイベントを追跡し、リアルタイム分析のために保存する。Segment の仕様に沿った API でイベントを送り、あとから SQL や REST 呼び出しで問い合わせて、利用者の行動を確認する。
関連コンテンツ
Trenchに関連するツール、スキル、記事を探す。
Trenchの代替ツール
Forefront
Forefront · コーディングForefrontはオープンソースAIで構築するためのウェブプラットフォームだ。主要なオープンソース言語モデルを自分のデータで微調整し、性能を評価し、API経由で実行したり、エクスポートして自分でホストしたりできる。クローズドなプラットフォームの手軽さを求めつつ、モデルとデータの所有権にはこだわる開発者が対象だ。
Startkit
StartKit.AI · コーディングStartkitは、AI SaaSとAIラッパー製品を作るためのボイラープレートだ。面倒な部分をあらかじめ配線済みにしたAIスタートアップボイラープレートと考えればいい。認証、StripeとLemon Squeezyの決済、利用制限、トランザクションメール、そしてOpenAI、Anthropic、Groq、Llamaと通信するAI APIスターターキットが含まれる。リポジトリをクローンして価格を設定し、ユーザーが実際にお金を払う部分に取りかかれる。ReactとTailwind上のNext.jsで作られているため、ボイラープレートコードの多くはすでに見慣れたものだ。
Testim
Tricentis · コーディングTestimは、Web・モバイル・Salesforceアプリ向けにエンドツーエンドテストを構築して実行するAIテスト自動化プラットフォームだ。機械学習を頼りに、インターフェースが変わってもテストを安定させ、チームが壊れたセレクターの修正に費やす時間を減らす。今日から使い始められる自動テストツールとしては悪くない。ブラウザで操作を録画してテストを作り、より細かい制御が必要なときはJavaScriptを足す。忙しいQAチームにとって堅実な選択肢である。
