asopi tech
asopi techIndie Developer

Time-Series Engine

Alopex Skulk

組み込みからクラスタまで育つ時系列エンジン

アプリケーションに組み込んで小さく始め、同じアプリのまま、Prometheusと互換のエンドポイントを持つサーバー、シャーディングと複製で広げるクラスタへ。Alopex Skulkは、規模が変わるたびに時系列データベースを乗り換える手間をなくします。エッジ機器から集約の基盤まで、同じエンジンが動きます。

組み込みからサーバー、クラスタまで、同じエンジンで育てられる時系列エンジン。小さく始めたメトリクスを、乗り換えずに広げられる。

RustOSS
スケール
組み込み・サーバー・クラスタ
クエリ
SQL・PromQL

Key points

  • 小さく始めて、乗り換えずに広げられる
  • エッジから集約の基盤まで同じエンジン
  • 貯めたParquetは他のツールからそのまま読める
observabilitydatabaserust

Challenge

規模が変わるたびに、時系列DBを乗り換えている

  • 規模ごとに違う製品
  • エッジに載らないDB
  • 分析のためのエクスポート

同じエンジンで、組み込みからクラスタまで

小さく組み込んで始め、サーバー、クラスタへ広げる。既存のエージェントはそのまま向けられる。

  • アプリケーションに組み込み、サーバー、クラスタへ同じエンジンのまま広げられる
  • Arrow + Parquetで、書いたデータはそのまま他ツールから読める
  • InfluxDB、Prometheus、JSONの取り込みで、既存のエージェントをそのまま向けられる
使い方
組み込み・サーバー・クラスタ
保存形式
Parquet

Capabilities

組み込みからサーバー、クラスタまで

どの形でも同じエンジンです。

組み込み

エッジ機器、アプリケーションの中で

  • アプリケーションに組み込んで、すぐに使い始められる
  • アプリケーションと一緒にエッジ機器まで配れる
  • 貯めたParquetはその場で他のツールから読める

サーバー

ネットワーク越しに集めて読む

  • Prometheusと互換のエンドポイントを備える
  • 既存のエージェントやPrometheusから送り込める
  • SQLとPromQLで問い合わせる

クラスタ

規模と可用性を広げる

  • シャーディングで規模を広げる
  • 複製でノードの障害に備える
  • 同じデータと問い合わせを、クラスタでも使える

Features

主要機能

時系列を貯めて読むために備えている機能。

既存の形式での取り込み

InfluxDB Line Protocol、Prometheus Remote Write、JSONに対応。既存のエージェントを向けるだけで取り込めます。

時間パーティションとTTL

期間で区切って保存し、期限を過ぎたものは自動で落とします。保持期間の管理に別の仕組みが要りません。

高圧縮の列指向保存

繰り返しの多い値も、変動の大きいゲージも小さく保存します。同じディスクでより長く保持できます。

外部ツールから読めるParquet

貯めたデータはParquetのまま置かれます。分析のためにエクスポートする必要がありません。

SQLとPromQLのクエリ

Alopex DBと同じNim実装のパーサーを共有し、同じデータをSQLでもPromQLでも読めます。

Tech Stack

技術スタック

Alopexファミリーと部品を共有しています。

ストレージ

Apache Arrow + Apache Parquet

Arrow: 列指向のインメモリ形式、ゼロコピーでの受け渡しParquet: 列指向のファイルフォーマットクラッシュに強い書き込みとファイル公開

クエリ

Nim実装のパーサー

SQLパーサーはAlopex DBのNim実装を共有PromQLパーサーもNimで実装ビルド済みの静的ライブラリを同梱してリリース

Resources

関連情報

ドキュメント、ソースコード、パッケージ。

“いま抱えている課題から読み始めてください。この製品が何を減らせるか、すぐにわかります。”

高峰明里

製品案内

“リポジトリを開けば、設計の理由とテストを自分の目で確かめられます。”

アスマティ・辰巳

技術解説

公開リソース

最新の資料・コード・コミュニティ導線をまとめています。

Get Involved

使ってみて、詰まったところを教えてください

取り込みプロトコルや保存の挙動で困った点があれば、Issueに書いてください。