GreptimeDB
A Rust database that stores metrics, logs and traces as tables on object storage, queried with SQL or PromQL.
- What it is
- Time-series databases
- Used for
- Observability
- Type
- Open source
- Made by
- GrepTime Inc.
- License
- Apache 2.0 (core); a few enterprise-only features under the GreptimeDB Enterprise License, not built by default
- Facts checked
- 6 October 2026
What it is
GreptimeDB runs as one binary for development or as a cluster of four kinds of process. Frontends are stateless: they accept OpenTelemetry (OTLP), Prometheus remote write, Loki push, Elasticsearch bulk, InfluxDB line protocol, gRPC and the MySQL and PostgreSQL wire protocols, then plan queries and route reads and writes. Metasrv keeps the catalog and the map of which Datanode hosts which region (a slice of a table), backed by etcd or a relational database. Datanodes hold the regions: each write goes to a write-ahead log and an in-memory table (memtable), which is flushed as Parquet files to S3, Google Cloud Storage, Azure Blob or local disk, with memory and local-disk caches for recent data. The WAL can be local (an embedded raft-engine) or remote in Kafka, which is what makes fast failover and moving regions between nodes possible. An optional Flownode runs continuous aggregations into other tables.
Every signal is a table with tag columns (the primary key), one time-index column and field columns: a Prometheus metric becomes a table with its labels as tags, OpenTelemetry logs and spans land in opentelemetry_logs and opentelemetry_traces, and SQL can join them on trace_id. The core is Apache 2.0, including cluster mode, object storage and every ingestion protocol. GrepTime Inc. sells GreptimeDB Enterprise, which adds read replicas, automatic rebalancing, LDAP, RBAC and audit logging, either fully managed from $290 a month or deployed in your own cloud at custom prices. Version 1.0 shipped in April 2026; the current release is 1.2.1.
Why teams pick it
- One engine and one SQL dialect for metrics, logs and traces, so you can join a slow span to the log lines it produced
- Drop-in ingestion for existing agents: OpenTelemetry, Prometheus remote write, Loki push, Elasticsearch bulk and InfluxDB line protocol
- Object storage is the primary store, so long retention costs bucket prices and compute scales separately from data
- PromQL for dashboards and alerts that already exist, plus SQL over the same data through MySQL or PostgreSQL clients
- Cluster mode, object storage and continuous aggregation (Flow) are all in the Apache 2.0 build
Watch out for
- Open core: read replicas, automatic repartitioning and region rebalancing, LDAP, RBAC, audit logging and Kibana-style Elasticsearch queries are Enterprise only; in the open build, repartitioning and region migration are manual
- Query compatibility is narrower than ingestion: Loki’s LogQL and most Elasticsearch APIs aren’t supported, and PromQL has documented gaps
- Fast failover needs Kafka as a remote WAL; with the local WAL, recovery means replaying the log and regions can’t move to other nodes
- Young as a 1.x product: GA only in April 2026, and 1.2.0 shipped a compaction bug that could lose
JSON2data, fixed in 1.2.1 - The self-serve Hobby and Serverless cloud plans of 2024 are gone from the pricing page; managed service now starts at $290 a month
Alternatives
What all time-series databases have in common →
Amazon TimestreamAWSAWS’s time-series databases: a serverless engine now closed to new customers, and managed InfluxDB 2 and 3.Apache IoTDBOpen sourceAn Apache time-series database for industrial IoT that stores everything in its own open file format, TsFile, and lets you model devices as a tree of paths or as SQL tables.+1 TimechoDBArcOpen sourceA young single-binary time-series database in Go that writes incoming data as Parquet files and queries them with DuckDB SQL.
QuestDBOpen sourceA columnar time-series database in Java, C++ and Rust that ingests millions of rows a second and answers time-series SQL, with old partitions kept as Parquet.
TDengineOpen sourceA clustered time-series database for IoT and industrial data that gives every device its own table, grouped under “supertables” with tags.How it fits with other technologies
What GreptimeDB uses
- GreptimeDBstores its data files inAmazon S3
- GreptimeDBwrites data files asApache Parquet
- GreptimeDBbuilds its query engine onApache DataFusion
- GreptimeDBcan use as its write-ahead logApache Kafka
- GreptimeDBtakes remote write and PromQL queries fromPrometheus
- GreptimeDBingests OTLP metrics, logs and traces fromOpenTelemetry
- GreptimeDBtakes metrics via line protocol fromTelegraf
- GreptimeDBis queried, through a plugin, byGrafana
- GreptimeDBruns, through its operator, onKubernetes
A metrics table, a downsampling flow, and PromQL from SQL · sql
-- tags form the primary key; one time index; fields hold the values
CREATE TABLE cpu (
host STRING,
region STRING,
usage_pct DOUBLE,
ts TIMESTAMP TIME INDEX,
PRIMARY KEY (host, region)
) WITH ('ttl' = '30d');
-- keep 5-minute peaks per region; Flow creates and updates cpu_5m
CREATE FLOW cpu_5m_flow
SINK TO cpu_5m
AS
SELECT region, max(usage_pct) AS peak_pct,
date_bin('5 minutes'::INTERVAL, ts) AS time_window
FROM cpu
GROUP BY region, time_window;
-- a metric written by Prometheus remote write, queried with PromQL
TQL EVAL (1759730400, 1759734000, '1m')
sum by (job) (rate(http_requests_total[5m]));GreptimeDB, Prometheus or TimescaleDB?#
All three store time-stamped data, but they start from different places: GreptimeDB from object storage and several signal types, Prometheus from scraping metrics, TimescaleDB from PostgreSQL.
| GreptimeDB | Prometheus | TimescaleDB | |
|---|---|---|---|
| What it stores | Metrics, logs and traces, each signal in its own tables | Metrics only | Any PostgreSQL rows; hypertables split them into time chunks |
| Where the data lives | Object storage (S3, GCS, Azure Blob) or local disk, with local caches | Local disk on one server, not clustered or replicated | PostgreSQL’s own disks |
| How data gets in | OTLP, Prometheus remote write, Loki push, Elasticsearch bulk, InfluxDB line protocol, SQL inserts | Pulls (scrapes) HTTP /metrics endpoints | Ordinary PostgreSQL inserts |
| Query languages | SQL and PromQL | PromQL | SQL |
| Licence | Apache 2.0 core; some features Enterprise only | Apache 2.0 | Apache 2.0 core; most features under the Tiger Data License |
- The two can be combined: Prometheus can keep scraping and send its samples to GreptimeDB with
remote_write, using it as long-term storage, and read them back withremote_read.
Open source and Enterprise#
The same database in each column; Enterprise adds operations, security and support features and a commercial licence. Prices are list prices checked on 2026-10-06.
| Feature | Open source | Enterprise, your cloud | Enterprise, fully managed |
|---|---|---|---|
| Who runs it | You | You, with GrepTime support (also on AWS Marketplace) | GrepTime |
| Price | Free | Custom | From $290 a month |
| Cluster mode, object storage, Flow, all ingestion protocols | Yes | Yes | Yes |
| Read replicas, automatic region rebalancing, scheduled compaction | No | Yes | Yes |
| LDAP login, RBAC, audit logging, protection against `DROP` | No | Yes | Yes |
| Elasticsearch query compatibility (Kibana), triggers with webhooks | No | Yes | Yes |
| Active-active disaster recovery | No | Yes | Yes |
- Enterprise-only source files carry the GreptimeDB Enterprise License header and sit behind the
enterpriseCargo feature, which the default build leaves out.
See it in a real stack
No architecture uses GreptimeDB yet. Drop it into the playground and wire it up yourself.Open playground →Where it came from2022–2026
Most of Greptime’s founding team had spent four years building a proprietary time-series database at a major tech company, which at peak wrote more than 100 million data points a second. Storage costs kept growing, and they had seen the cost of running metrics, logs and traces in three siloed systems: when something broke, the logs and traces behind a metric spike lived somewhere else. Existing architectures also kept several copies of the data on over-provisioned clusters, and handling high-cardinality series at a reasonable cost was still unsolved.
Founder and CEO Dennis Zhuang announced GreptimeDB on November 15, 2022, when the GitHub repository went public after about six months of work. It was a cloud-native time-series database written in Rust, with stateless frontends and Datanodes and cheap object storage such as S3 underneath. Version 0.4 in October 2023 replaced the first row-oriented storage engine with a columnar one, Mito2, which made scans several times faster.
The project then widened from metrics to logs and traces in one table model, and reached 1.0 in April 2026. In June 2026 GrepTime added a separate Enterprise License for its feature-gated code, keeping the core under Apache 2.0.
Why it’s built this way
- Rust instead of Go or Java
- The team wanted precise memory control and stable latency under heavy write load. Co-founder Jeremy Feng wrote that at the storage-engine level “a single GC pause can mean a latency spike”, which they considered unacceptable.
- Object storage underneath, with local caches
- Separating storage from compute lets data live on commodity object storage while compute scales elastically; local disks keep hot data close to avoid object-store latency.
- Rewriting the storage engine as columnar
- The original row-oriented memtable duplicated keys and tags for every row and inflated memory. Incremental fixes couldn’t solve a data-layout problem, so version 0.4 rebuilt it around series and columnar files.
- One table model for all three signals
- Metrics, logs and traces are all timestamped events with context. Storing them as tables with shared tags lets one SQL query correlate them instead of jumping between three systems.
Timeline
- 2022
GreptimeDB open-sourced on GitHub on November 15
- 2023
First release, 0.1.0, in March
- 2023
0.4 in October replaces the storage engine with columnar Mito2
- 2026
Version 1.0 GA in April
- 2026
Enterprise License for gated code in June; 1.2 adds
JSON2in September
- Greptime blog: This time, for real (open-source announcement, November 2022)
- Greptime blog: GreptimeDB internal design (December 2022)
- Greptime blog: GreptimeDB four years retrospective (April 2026)
- GitHub: GreptimeDB v0.1.0 release (March 2023)
- Greptime blog: GreptimeDB v1.0 GA release (April 2026)
- GitHub: commit declaring the GreptimeDB Enterprise License (June 2026)
Sources18 · facts checked 6 October 2026
- GreptimeDB README: protocols, storage backends, edition boundary, licence
- GreptimeDB docs: Architecture (Frontend, Datanode, Metasrv, Flownode)
- GreptimeDB docs: Data model (tags, time index, fields)
- GreptimeDB docs: WAL overview (local raft-engine, remote Kafka)
- GreptimeDB docs: CREATE (table options such as ttl)
- GreptimeDB docs: TQL
- GreptimeDB docs: Manage flows
- GreptimeDB docs: Prometheus remote write and remote read
- GreptimeDB docs: InfluxDB line protocol and Telegraf
- GreptimeDB docs: Enterprise overview
- GreptimeDB pricing (checked 2026-10-06)
- Greptime blog: GreptimeCloud plans (Hobby, Serverless, Dedicated; June 2024)
- GreptimeDB Enterprise License
- GitHub: GreptimeDB v1.2.0 release notes (JSON2, Remote Write v2, upgrade advice)
- GitHub: GreptimeDB v1.2.1 release
- Prometheus docs: Storage (local storage not clustered or replicated, remote write)
- Tiger Data docs: Hypertables
- Tiger Data docs: TimescaleDB editions (Apache 2.0 and Community)