mrkeyoor.com_
Fri 04 Sept 18:00 UTC
Dataevaluationupdated 04 Sept 2026

greptimedb review

GreptimeDB is an observability database that stores metrics, logs, and traces in one columnar table model, with object storage holding the durable data. It accepts familiar telemetry protocols and lets operators query with SQL or PromQL instead of maintaining a separate database for each signal.

trackingstars / 7d
Verdict

Our 3-CPU sandbox installed 1,579 packages in 207 seconds, then both build and tests hit 900-second caps, so GreptimeDB is a serious systems project with a high source-work cost. Try the published standalone image if one database for metrics, logs, and traces would simplify your operation. Choose it only after checking protocol gaps and the open-core boundary against the scaling work your team expects to automate.

We ran it

Lab card: what happened when we ran greptimedbScreenshot of greptimedb (greptime.com/product/db)
Install✓ · 207s1579 packages
Build✗ timed out · 900s
Tests✗ timed out · 900sran, no count parsed
Repo3676 files~919,716 lines of source · 44.5 MB · 30 CI workflows · tests dir

Answers from our run

Does greptimedb build from source?

Dependencies installed in 207 seconds (1579 packages), and the build failed. We cloned commit a932433 into a clean Debian container with 3 CPUs and no project-specific setup.

Do greptimedb's tests pass?

We could not finish them: the suite was still running after 15 minutes in our container.

Who should not use greptimedb?

Loki users who require LogQL or its wider query API: the README supports Loki Push ingestion but explicitly excludes LogQL compatibility.

What are the alternatives to greptimedb?

VictoriaMetrics, ClickHouse, OpenObserve. Our 3-CPU sandbox installed 1,579 packages in 207 seconds, then both build and tests hit 900-second caps, so GreptimeDB is a serious systems project with a high source-work cost.

Setup2/5Container trial is short; source build and tests exceeded 900 seconds
Docs5/5Clear protocols, limits, architecture, editions, and build requirements
Community5/56,610 stars with same-day code, issue, and pull request activity
Maturity4/5GA core and stable releases, with manual open-source scaling work

Who it’s for

Platform teams consolidating Prometheus metrics, Loki-style log ingestion, and OpenTelemetry traces.
Operators who want long retention on S3, GCS, Azure Blob, or compatible object storage.
Developers who need SQL beside PromQL and MySQL or PostgreSQL wire compatibility.
Rust contributors prepared for a large workspace and long compilation cycles.

Who it’s NOT for

Loki users who require LogQL or its wider query API: the README supports Loki Push ingestion but explicitly excludes LogQL compatibility.
Elasticsearch users expecting a drop-in replacement: the open-source core supports bulk ingestion, while partial QueryDSL support is an Enterprise feature and most other APIs are absent.
Core-only operators who need automatic repartitioning, region migration, read replicas, or workload isolation: the README places those operations in the Enterprise edition or leaves them manual.
Contributors whose CI cannot exceed 900 seconds per major step: both our build and test commands reached that cap before finishing.
Users testing alpha/main with JSON integers beyond u64::MAX: open issue 9020 reports silent precision loss on write in v1.3.0-alpha.1.

Setup reality

Our sandbox installed 1,579 Rust packages in 207 seconds. The build timed out at 900 seconds, and the tests also timed out at 900 seconds. The test log was still compiling crates and ended at tests-fuzz; it showed no completed test result. Commit a932433 had 3,676 files, roughly 919,716 source lines, and a 44.5 MB checkout.

The README's prebuilt container is the shortest trial. Building source needs the pinned nightly Rust toolchain, Protobuf 3.15 or newer, GCC or G++, autoconf, and glibc development files. A distributed deployment adds object-storage credentials, a metadata store such as etcd or RDS, and separate frontend, datanode, metasrv, and optional flownode configuration.

Standalone mode exposes HTTP, gRPC, MySQL, and PostgreSQL endpoints on ports 4000 through 4003. The repository has 30 CI workflows and a tests directory but no Dockerfile, even though a published image is documented. PromQL coverage has gaps, Loki support stops at ingestion, and several scaling operations remain manual in the open-source edition.

One table model covers metrics, logs, and traces

GreptimeDB stores 3 observability signals in the same columnar engine: metrics, logs, and traces. Tables share tags, timestamps, and fields, so a service name or trace ID can connect records through SQL. Ingestion includes OpenTelemetry, Prometheus Remote Write, Loki Push, Elasticsearch Bulk, InfluxDB line protocol, and gRPC. Queries use SQL, PromQL, Jaeger-compatible trace routes, or MySQL and PostgreSQL wire protocols.

The distributed design separates compute from durable object storage. Frontends accept protocols and run distributed queries, datanodes own regions and compaction, metasrv handles routing and metadata, and optional flownodes run continuous aggregation. S3, GCS, Azure Blob, and compatible stores are primary storage, with memory and local disk acting as caches. A standalone binary is available for development and smaller deployments, so evaluating the data model does not require assembling all 4 roles first.

What happened when we ran it

Our run cloned commit a932433 into an unprivileged Rust container with 3 CPUs, 12 GB of RAM, and no secrets. Installing dependencies succeeded in 207 seconds and brought in 1,579 packages. The 44.5 MB checkout contained 3,676 files and roughly 919,716 lines of source. Dependency setup finished, but it was only the beginning of the source-build cost.

The build reached our 900-second limit without completing. The test command also timed out after 900 seconds. Its final lines were compilation messages for crates including hyper, minijinja, the repository's standalone and cli packages, sqlness, and finally tests-fuzz. The log tail showed no failed assertion or completed suite, so the correct finding is a timeout during compilation, not a test pass or a diagnosed code defect.

The prebuilt container avoids the source compilation bill

The README's trial command publishes 4 local endpoints on ports 4000 through 4003 for HTTP, gRPC, MySQL, and PostgreSQL. It starts the official image in standalone mode and points to a dashboard on the HTTP port. Building from source is much heavier: the documented prerequisites include a pinned nightly Rust toolchain, Protobuf 3.15 or newer, GCC or G++, autoconf, and glibc development headers.

Our scan found 30 CI workflow files and a tests directory, but no Dockerfile in the checkout. That does not contradict the documented published image; it means the image recipe was not among the signals our harness found. Contributors also have several maintained commands to distinguish: formatting, Clippy, unit plus integration tests through cargo-nextest, and SQL regression tests through sqlness. A local cargo test alone does not represent that full matrix.

Apache-2.0 includes clustering, while automation has an edition boundary

The Apache-2.0 core includes cluster deployment, object storage, the Flow engine, and every ingestion protocol listed in the README. Repartitioning, region migration, and index creation are manual operations in that edition. Read replicas, workload isolation, automatic repartitioning, and enterprise security and governance sit behind the separate Enterprise license. That division matters more than the ability to start one standalone process.

A production comparison should price the operations your team must perform repeatedly. GreptimeDB v1.1.4 can distribute storage and compute without an Enterprise license, but a team expecting automatic data movement or isolated workloads will either write procedures around the core or pay for the additional edition. The README states this boundary directly, which makes the buying decision easier even if the answer sends some users elsewhere.

Protocol support eases ingestion but does not promise drop-in replacement

Prometheus Remote Write data can be queried with PromQL, though the documentation lists syntax and function gaps. Loki compatibility accepts Push ingestion but excludes LogQL and the rest of Loki's query API. Elasticsearch compatibility is narrower: the open-source core accepts _bulk, partial QueryDSL support belongs to Enterprise, and most Elasticsearch APIs are absent. Migration can be gradual at the ingestion edge, but dashboards and queries may need rewriting.

That makes GreptimeDB most convincing when SQL is part of the desired end state. A team can dual-write one signal, compare retained data and queries, and then decide whether consolidation is worth the query changes. Existing collectors do not guarantee existing alert rules or dashboards will work unchanged. The 3-signal pitch is credible at storage and ingestion level; compatibility remains specific to each protocol and direction.

Issue 9020 reports alpha JSON precision loss beyond u64

Open issue 9020 reproduces large JSON integers being accepted and stored as floating-point approximations in v1.3.0-alpha.1 on main. The report is explicit that ordinary BIGINT overflow fails loudly, while the JSON path can lose precision without an error. This is an alpha-branch report, not evidence about every stable deployment, but anyone storing huge numeric identifiers as JSON should add a round-trip case before adoption.

The stable release is v1.1.4, while main stayed active in September

Release v1.1.4 arrived on 2026-07-24 with fixes for Flow expiration units, MySQL timestamp precision, metadata caching, compaction scheduling, and credential sanitization. GitHub showed 6,610 stars and 244 combined open issues and pull requests on 2026-09-04. The default branch was pushed that day, and new or updated work covered WAL behavior, JSON precision, PromQL, Flow state, and storage. Release age and issue activity together point to active maintenance.

A 900-second cap makes source contribution the harder route

GreptimeDB deserves a trial when separate metrics and log stores have become an operational burden and SQL across telemetry is useful. The published standalone image is the sensible first contact; our two 900-second timeouts make a source checkout a poor way to answer a basic product question. For contributors, allocate more CPU time and follow the project's split test commands before judging the tree.

VictoriaMetrics is the narrower option for a metrics-first estate. ClickHouse gives a general analytics engine but leaves more observability assembly to the operator. OpenObserve puts a larger application surface, including search and dashboards, around the telemetry store. GreptimeDB sits between those choices: database-first, multi-signal, and explicit about the manual work that remains in its open-source edition.

Alternatives

ProjectWhat it isPick it when
VictoriaMetrics gh↗A monitoring database centered on Prometheus-compatible metrics and long retention.pick this instead when metrics are the main signal and Prometheus compatibility matters more than one table model for logs and traces.
ClickHouse gh↗A general columnar analytics database often used as the storage layer for observability systems.pick this instead when you want a broader analytics engine and are willing to assemble telemetry ingestion and conventions yourself.
OpenObserve gh↗A self-hosted observability platform that includes logs, metrics, traces, pipelines, and a user interface.pick this instead when an integrated search and dashboard product matters more than GreptimeDB's database and SQL focus.

What people are saying

  1. [github-trending] GreptimeTeam/greptimedb

Sources

  1. GreptimeDB README
  2. GreptimeDB GitHub repository
  3. GreptimeDB v1.1.4 release
  4. GreptimeDB protocol compatibility
  5. GreptimeDB Enterprise boundary
  6. JSON integer precision issue 9020
  7. Compaction adaptiveness tracking issue 8575

More data reviews

chinese-independent-developer · dataease · tidb · anki · Summer2027-Internships · postgres · the whole board →