monoscope-tech/timefusion
ログ、トレース、メトリクス、イベントをS3上のDelta Lakeテーブルとして保存し、PostgreSQLワイヤプロトコルでクエリできる時系列データベース。
- スター
- 223
- フォーク
- 9
- 未解決の Issue
- 7
- 最終コミット
- 9 時間前
これは何?
TimeFusionは、ログ、トレース、メトリクス、イベントなどのオブザーバビリティデータを、S3、MinIO、R2などの独自のS3互換オブジェクトストレージにDelta Lakeテーブルとして保存します。PostgreSQLワイヤプロトコルを公開するため、新しいクライアントを用意しなくても、psqlや標準のPostgresドライバーからデータを挿入・クエリできます。クエリの実行には、Parquetファイル上でApache DataFusionを使用します。
書き込みはwrite-ahead logとインメモリバッファを経由してから、バックグラウンドでDeltaにフラッシュされるため、挿入の応答が速くなります。クエリではインメモリバッファとS3上のデータを組み合わせるため、書き込んだばかりの行もすぐに参照できます。データはproject_idと日付でパーティション分割されます。テナント分離とパーティションプルーニングのため、クエリではproject_idによる絞り込みが想定されています。
このプロジェクトはpre-1.0で、APIToolkitの本番環境で稼働しています。特定のWALディレクトリを所有できるプロセスは1つだけです。設定では、バッファサイズ、フラッシュ間隔、Foyerをベースにしたメモリとディスクのキャッシュを調整できます。
主な機能
- 01S3互換ストレージ上で、Delta Lakeのトランザクションログ配下にデータをParquet形式で保存する。
- 02psqlや任意のPostgreSQLドライバーからの接続を受け付ける。
- 03DataFusionで分析用SQLを実行でき、ウィンドウ関数やPERCENTILE_CONTにも対応する。
- 04WALとインメモリバッファに書き込みをため、バックグラウンドでDeltaにフラッシュする。
- 05project_id単位でデータをパーティション分割し、分離する。
- 06Foyerを介してメモリキャッシュとディスクキャッシュを提供する。
ユースケース
- 独自のS3バケットにアプリケーションログやOpenTelemetryトレースを保存する。
- 標準SQLを使って、プロジェクトごとのイベントデータを対象にレイテンシやエラー率を分析する。
- 新しいクライアントを導入せずに、既存のPostgresベースのBIツールやオブザーバビリティツールからイベントデータにアクセスできるようにする。
クイックスタート
- 1
リポジトリをクローンする
git clone https://github.com/monoscope-tech/timefusion.git - 2
同梱のComposeスタックを起動する(ローカルのMinIOを含むため、AWSアカウントは不要)
docker compose up - 3
ポート5432でpsqlを使って接続する
psql "postgresql://postgres:postgres@localhost:5432/postgres"
使う前に知っておきたいこと
- プロジェクトはまだバージョン1.0未満のため、リリース間でスキーマ、ワイヤー動作、設定が変更される可能性があります。
- 同じWALディレクトリに対して同時に実行できるTimeFusionプロセスは1つだけです。
- クエリでは必ずproject_idで絞り込んでください。そうしないとテナント全体をスキャンし、処理が大幅に遅くなります。
- ソースからビルドするには、Rust 1.85以降が必要です。
収録されている特集
トピック
よくある質問
- timefusion とは?
- ログ、トレース、メトリクス、イベントをS3上のDelta Lakeテーブルとして保存し、PostgreSQLワイヤプロトコルでクエリできる時系列データベース。 TimeFusionは、ログ、トレース、メトリクス、イベントなどのオブザーバビリティデータを、S3、MinIO、R2などの独自のS3互換オブジェクトストレージにDelta Lakeテーブルとして保存します。PostgreSQLワイヤプロトコルを公開するため、新しいクライアントを用意しなくても、psqlや標準のPostgresドライバーからデータを挿入・クエリできます。クエリの実行には、Parquetファイル上でApache DataFusionを使用します。
- timefusion は無料で使えますか?ライセンスは?
- timefusion は MIT ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- timefusion は今もメンテナンスされていますか?
- 活発にメンテナンス中。timefusion の最終コミットは 2026年11月7日 です。
- timefusion は何に使えますか?
- 独自のS3バケットにアプリケーションログやOpenTelemetryトレースを保存する。 標準SQLを使って、プロジェクトごとのイベントデータを対象にレイテンシやエラー率を分析する。 新しいクライアントを導入せずに、既存のPostgresベースのBIツールやオブザーバビリティツールからイベントデータにアクセスできるようにする。
- timefusion のインストール方法は?
- リポジトリをクローンする: git clone https://github.com/monoscope-tech/timefusion.git 同梱のComposeスタックを起動する(ローカルのMinIOを含むため、AWSアカウントは不要): docker compose up ポート5432でpsqlを使って接続する: psql "postgresql://postgres:postgres@localhost:5432/postgres"
- timefusion はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/monoscope-tech/timefusion
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Apache Arrow、DataFusion、Parquetを基盤とする、イベント・メトリクス・監視データ向けのオープンソース時系列データベース。
メトリクス、ログ、トレースをオブジェクトストレージ上の単一カラムナエンジンに格納し、SQLやPromQLでクエリできるオープンソースのオブザーバビリティデータベース。
ログ、メトリクス、トレース、イベントをオブジェクトストレージに保存する、Rust製のオープンソース可観測性プラットフォーム。
多様なデータソースのメトリクス、ログ、トレースをクエリ、可視化、アラート通知、探索できるオープンソースプラットフォーム。
ログやメトリクスを収集・変換し、任意の宛先へルーティングするRust製の高性能なオブザーバビリティデータパイプライン。