asopi tech
asopi techIndie Developer

Time-Series Engine

Alopex Skulk

A time-series engine that grows from embedded to cluster

Start small by embedding it in your application, then move the same application to a server with Prometheus-compatible endpoints and to a cluster that scales out with sharding and replication. Alopex Skulk removes the need to switch time-series databases every time your scale changes. The same engine runs from edge devices to the platform that gathers their data.

A time-series engine that grows from embedded to server to cluster on the same engine, so metrics you start small scale out without switching products.

RustOSS
Scale
Embedded, server, cluster
Queries
SQL and PromQL

Key points

  • Start small and scale out without switching
  • One engine from the edge to the central platform
  • Stored Parquet remains directly readable by other tools
observabilitydatabaserust

Challenge

You switch time-series databases every time you scale

  • A different product at every scale
  • Databases that do not fit the edge
  • Exports before analysis

One engine, from embedded to cluster

Start embedded, then grow to a server and a cluster. Point your existing agents at it as they are.

  • Embed it in your application and grow to a server and a cluster on the same engine
  • Arrow + Parquet keeps stored data directly readable by other tools
  • InfluxDB, Prometheus and JSON ingestion let existing agents send data unchanged
Deployment
Embedded, server, cluster
Storage format
Parquet

Capabilities

From embedded to server to cluster

Every form runs the same engine.

Embedded

Inside edge devices and applications

  • Embed it in your application and start right away
  • Ship it with your application all the way to edge devices
  • Read stored Parquet in place with other tools

Server

Gather and read over the network

  • Prometheus-compatible endpoints
  • Send data from existing agents and Prometheus
  • Query with SQL and PromQL

Cluster

Scale out with availability

  • Scale out with sharding
  • Protect against node outages with replication
  • Use the same data and queries on the cluster

Features

Key features

What Skulk provides to store and read time-series data.

Ingestion in existing formats

Supports InfluxDB Line Protocol, Prometheus Remote Write, and JSON. Point existing agents at it to ingest data.

Time partitioning and TTL

Store data in time-based partitions and automatically remove expired data. No separate retention-management mechanism is needed.

Highly compressed columnar storage

Both repetitive values and highly variable gauges are stored compactly. Retain more history on the same disk.

Parquet readable by external tools

Data stays in Parquet, so analysis needs no export step.

SQL and PromQL queries

Shares Alopex DB's Nim parsers, so the same data reads with both SQL and PromQL.

Tech Stack

Technology stack

Shares components with the Alopex family.

Storage

Apache Arrow + Apache Parquet

Arrow: columnar in-memory representation with zero-copy handoffParquet: columnar file formatCrash-safe writes and file publication

Queries

Nim-based parsers

Shares Alopex DB's Nim SQL parserPromQL parser also implemented in NimReleases ship with a prebuilt static library

Resources

Related resources

Documentation, source code, and the package.

“Start from the problem you have today. You will see quickly what this product removes.”

Takamine Akari

Product guide

“Open the repository and read the design rationale and the tests yourself.”

Asmati Tatsumi

Technical explanation

Get Involved

Try it and tell us where it gets stuck

If an ingestion protocol or storage behavior gets in the way, please open an issue.