* feat: gc worker only on local region Signed-off-by: discord9 <discord9@163.com> feat: gc scheduler wip: gc trigger Signed-off-by: discord9 <discord9@163.com> feat: dn file removal rate Signed-off-by: discord9 <discord9@163.com> feat: trigger gc with stats(WIP) Signed-off-by: discord9 <discord9@163.com> chore Signed-off-by: discord9 <discord9@163.com> also move files ref manifest to store-api Signed-off-by: discord9 <discord9@163.com> feat: basic gc trigger impl Signed-off-by: discord9 <discord9@163.com> wip: handle file ref change Signed-off-by: discord9 <discord9@163.com> refactor: use region ids Signed-off-by: discord9 <discord9@163.com> fix: retry using related regions Signed-off-by: discord9 <discord9@163.com> chore: rm unused Signed-off-by: discord9 <discord9@163.com> fix: update file reference type in GC worker Signed-off-by: discord9 <discord9@163.com> feat: dn gc limiter Signed-off-by: discord9 <discord9@163.com> rename Signed-off-by: discord9 <discord9@163.com> feat: gc scheduler retry with outdated regions Signed-off-by: discord9 <discord9@163.com> feat: use real object store purger Signed-off-by: discord9 <discord9@163.com> wip: add to metasrv Signed-off-by: discord9 <discord9@163.com> feat: add to metasrv Signed-off-by: discord9 <discord9@163.com> feat: datanode gc worker handler Signed-off-by: discord9 <discord9@163.com> fix: no partition col fix Signed-off-by: discord9 <discord9@163.com> fix: RegionId json deser workaround Signed-off-by: discord9 <discord9@163.com> fix: find access layer Signed-off-by: discord9 <discord9@163.com> fix: on host dn Signed-off-by: discord9 <discord9@163.com> fix: stat dedup Signed-off-by: discord9 <discord9@163.com> refactor: rm load-based Signed-off-by: discord9 <discord9@163.com> chore: aft rebase fix Signed-off-by: discord9 <discord9@163.com> feat: not full scan Signed-off-by: discord9 <discord9@163.com> chore: after rebase fix Signed-off-by: discord9 <discord9@163.com> feat: clean tracker Signed-off-by: discord9 <discord9@163.com> after rebase fix Signed-off-by: discord9 <discord9@163.com> clippy Signed-off-by: discord9 <discord9@163.com> refactor: split gc scheduler Signed-off-by: discord9 <discord9@163.com> feat: smaller linger time Signed-off-by: discord9 <discord9@163.com> feat: parallel region gc instr Signed-off-by: discord9 <discord9@163.com> chore: rename Signed-off-by: discord9 <discord9@163.com> chore: rename Signed-off-by: discord9 <discord9@163.com> enable is false Signed-off-by: discord9 <discord9@163.com> feat: update removed files precisely Signed-off-by: discord9 <discord9@163.com> all default to false&use local file purger Signed-off-by: discord9 <discord9@163.com> feat: not evict if gc enabled Signed-off-by: discord9 <discord9@163.com> per review Signed-off-by: discord9 <discord9@163.com> fix: pass gc config in mito&test: after truncate gc Signed-off-by: discord9 <discord9@163.com> WIP: one more test Signed-off-by: discord9 <discord9@163.com> test: basic compact Signed-off-by: discord9 <discord9@163.com> test: compact with ref Signed-off-by: discord9 <discord9@163.com> refactor: for easier mock Signed-off-by: discord9 <discord9@163.com> docs: explain race condition Signed-off-by: discord9 <discord9@163.com> feat: gc region procedure Signed-off-by: discord9 <discord9@163.com> refactor: ctx send gc/ref instr with procedure Signed-off-by: discord9 <discord9@163.com> fix: config deser to default Signed-off-by: discord9 <discord9@163.com> refactor: gc report Signed-off-by: discord9 <discord9@163.com> wip: async index file rm Signed-off-by: discord9 <discord9@163.com> fixme? Signed-off-by: discord9 <discord9@163.com> typo Signed-off-by: discord9 <discord9@163.com> more ut Signed-off-by: discord9 <discord9@163.com> test: more mock test Signed-off-by: discord9 <discord9@163.com> more Signed-off-by: discord9 <discord9@163.com> refactor: split mock test Signed-off-by: discord9 <discord9@163.com> clippy Signed-off-by: discord9 <discord9@163.com> refactor: rm stuff Signed-off-by: discord9 <discord9@163.com> test: mock add gc report per region Signed-off-by: discord9 <discord9@163.com> fix: stricter table failure condition Signed-off-by: discord9 <discord9@163.com> sutff Signed-off-by: discord9 <discord9@163.com> feat: can do different table gc same time&more todos Signed-off-by: discord9 <discord9@163.com> after rebase check Signed-off-by: discord9 <discord9@163.com> * chore Signed-off-by: discord9 <discord9@163.com> * chore Signed-off-by: discord9 <discord9@163.com> * wip: refactoring test Signed-off-by: discord9 <discord9@163.com> * fix: also get from follower peer Signed-off-by: discord9 <discord9@163.com> * test: update mock test Signed-off-by: discord9 <discord9@163.com> * revert some change&clean up Signed-off-by: discord9 <discord9@163.com> * typo Signed-off-by: discord9 <discord9@163.com> * chore: after rebase fix Signed-off-by: discord9 <discord9@163.com> * choer: more fix Signed-off-by: discord9 <discord9@163.com> * revert Signed-off-by: discord9 <discord9@163.com> * revert change to handler.rs Signed-off-by: discord9 <discord9@163.com> * test: fix mock test Signed-off-by: discord9 <discord9@163.com> * chore: rm retry Signed-off-by: discord9 <discord9@163.com> * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: discord9 <discord9@163.com> * after rebase fix Signed-off-by: discord9 <discord9@163.com> * pcr Signed-off-by: discord9 <discord9@163.com> --------- Signed-off-by: discord9 <discord9@163.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
greptime_memory_limit_in_bytes and greptime_cpu_limit_in_millicores metrics (#7043)
Real-Time & Cloud-Native Observability Database
for metrics, logs, and traces
Delivers sub-second querying at PB scale and exceptional cost efficiency from edge to cloud.
- Introduction
- ⭐ Key Features
- Quick Comparison
- Architecture
- Try GreptimeDB
- Getting Started
- Build From Source
- Tools & Extensions
- Project Status
- Community
- License
- Commercial Support
- Contributing
- Acknowledgement
Introduction
GreptimeDB is an open-source, cloud-native database that unifies metrics, logs, and traces, enabling real-time observability at any scale — across edge, cloud, and hybrid environments.
Features
| Feature | Description |
|---|---|
| All-in-One Observability | OpenTelemetry-native platform unifying metrics, logs, and traces. Query via SQL, PromQL, and Flow. |
| High Performance | Written in Rust with rich indexing (inverted, fulltext, skipping, vector), delivering sub-second responses at PB scale. |
| Cost Efficiency | 50x lower operational and storage costs with compute-storage separation and native object storage (S3, Azure Blob, etc.). |
| Cloud-Native & Scalable | Purpose-built for Kubernetes with unlimited cross-cloud scaling, handling hundreds of thousands of concurrent requests. |
| Developer-Friendly | SQL/PromQL interfaces, built-in web dashboard, REST API, MySQL/PostgreSQL protocol compatibility, and native OpenTelemetry support. |
| Flexible Deployment | Deploy anywhere from ARM-based edge devices (including Android) to cloud, with unified APIs and efficient data sync. |
✅ Perfect for:
- Unified observability stack replacing Prometheus + Loki + Tempo
- Large-scale metrics with high cardinality (millions to billions of time series)
- Large-scale observability platform requiring cost efficiency and scalability
- IoT and edge computing with resource and bandwidth constraints
Learn more in Why GreptimeDB and Observability 2.0 and the Database for It.
Quick Comparison
| Feature | GreptimeDB | Traditional TSDB | Log Stores |
|---|---|---|---|
| Data Types | Metrics, Logs, Traces | Metrics only | Logs only |
| Query Language | SQL, PromQL | Custom/PromQL | Custom/DSL |
| Deployment | Edge + Cloud | Cloud/On-prem | Mostly central |
| Indexing & Performance | PB-Scale, Sub-second | Varies | Varies |
| Integration | REST API, SQL, Common protocols | Varies | Varies |
Performance:
Read more benchmark reports.
Architecture
GreptimeDB can run in two modes:
- Standalone Mode - Single binary for development and small deployments
- Distributed Mode - Separate components for production scale:
- Frontend: Query processing and protocol handling
- Datanode: Data storage and retrieval
- Metasrv: Metadata management and coordination
Read the architecture document. DeepWiki provides an in-depth look at GreptimeDB:

Try GreptimeDB
docker pull greptime/greptimedb
docker run -p 127.0.0.1:4000-4003:4000-4003 \
-v "$(pwd)/greptimedb_data:/greptimedb_data" \
--name greptime --rm \
greptime/greptimedb:latest standalone start \
--http-addr 0.0.0.0:4000 \
--rpc-bind-addr 0.0.0.0:4001 \
--mysql-addr 0.0.0.0:4002 \
--postgres-addr 0.0.0.0:4003
Dashboard: http://localhost:4000/dashboard
Read more in the full Install Guide.
Troubleshooting:
- Cannot connect to the database? Ensure that ports
4000,4001,4002, and4003are not blocked by a firewall or used by other services. - Failed to start? Check the container logs with
docker logs greptimefor further details.
Getting Started
Build From Source
Prerequisites:
- Rust toolchain (nightly)
- Protobuf compiler (>= 3.15)
- C/C++ building essentials, including
gcc/g++/autoconfand glibc library (eg.libc6-devon Ubuntu andglibc-develon Fedora) - Python toolchain (optional): Required only if using some test scripts.
Build and Run:
make
cargo run -- standalone start
Tools & Extensions
- Kubernetes: GreptimeDB Operator
- Helm Charts: Greptime Helm Charts
- Dashboard: Web UI
- gRPC Ingester: Go, Java, C++, Erlang, Rust
- Grafana Data Source: GreptimeDB Grafana data source plugin
- Grafana Dashboard: Official Dashboard for monitoring
Project Status
Status: Beta — marching toward v1.0 GA! GA (v1.0): January 10, 2026
- Deployed in production by open-source projects and commercial users
- Stable, actively maintained, with regular releases (version info)
- Suitable for evaluation and pilot deployments
GreptimeDB v1.0 represents a major milestone toward maturity — marking stable APIs, production readiness, and proven performance.
Roadmap: Beta1 (Nov 10) → Beta2 (Nov 24) → RC1 (Dec 8) → GA (Jan 10, 2026), please read v1.0 highlights and release plan for details.
For production use, we recommend using the latest stable release.
If you find this project useful, a ⭐ would mean a lot to us!

Community
We invite you to engage and contribute!
License
GreptimeDB is licensed under the Apache License 2.0.
Commercial Support
Running GreptimeDB in your organization? We offer enterprise add-ons, services, training, and consulting. Contact us for details.
Contributing
- Read our Contribution Guidelines.
- Explore Internal Concepts and DeepWiki.
- Pick up a good first issue and join the #contributors Slack channel.
Acknowledgement
Special thanks to all contributors! See AUTHORS.md.
- Uses Apache Arrow™ (memory model)
- Apache Parquet™ (file storage)
- Apache DataFusion™ (query engine)
- Apache OpenDAL™ (data access abstraction)
