这个项目能做什么

GreptimeDB 是一个开源可观测性数据库,将指标、日志和链路追踪存储在对象存储之上的单一列式引擎中。这三种信号类型共享同一个表模型——标签、时间戳和字段——因此当信号携带诸如 service、host 或 trace ID 等公共标识符时,可以通过 SQL join 进行关联,而无需在彼此分离的系统之间移动数据。 写入路径包括 OpenTelemetry(OTLP)、Prometheus Remote Write、Loki Push、Elasticsearch Bulk、InfluxDB line protocol 和 gRPC。查询选项包括 SQL、PromQL、兼容 Jaeger 的追踪查询,以及 MySQL 和 PostgreSQL 线协议。S3、GCS、Azure Blob 和兼容 S3 的端点等对象存储后端作为主存储,内存和本地磁盘缓存则将近期或频繁查询的数据保留在计算节点附近。内置能力涵盖保留策略、降采样、持续聚合(Flow 引擎)、显式表分区,以及倒排、跳数和全文索引。 部署有两种模式。Standalone 是用于开发和小型部署的单一二进制文件。Distributed 拆分为可独立扩展的组件:Frontend(协议入口和分布式查询引擎,无状态)、Datanode(区域引擎,包含 WAL、memtable、SST、缓存、压缩和索引,并持久化到对象存储)、Metasrv(元数据、路由、重分区和安全性,由 etcd 或 RDS 支持),以及可选的 Flownode,用于持续流计算。 README 记录了各协议的兼容性:支持 Prometheus Remote Write 写入和 PromQL 查询,但 PromQL 存在一些缺口;Loki Push 写入可用,而 LogQL 以及 Loki 查询 API 的其余部分不兼容;Elasticsearch `_bulk` 写入位于开源核心中,QueryDSL 在企业版中部分可用。该项目将自己描述为 open-core:集群部署、对象存储、Flow 引擎以及所有列出的写入协议都在 Apache-2.0 构建中,而只读副本、工作负载隔离、自动重分区以及企业级安全/治理属于企业版功能。在开源构建中,重分区、区域迁移和索引创建均为手动操作。 提供了通过 Docker 的快速开始方式,暴露 HTTP(4000)、gRPC(4001)、MySQL(4002)和 PostgreSQL(4003)端口,并在 HTTP 端口提供 Web 仪表盘。从源码构建需要固定版本的 nightly Rust 工具链、Protobuf 编译器以及 C/C++ 构建基础组件;常用命令包括 make、make fmt、make clippy、make test 和 make sqlness-test。配套工具包括 Kubernetes operator、Helm charts、仪表盘、适用于 Go、Java、C++、Erlang、Rust、.NET 和 TypeScript 的 gRPC ingester,以及 Grafana 数据源插件。 README 还列出了基准测试报告(Agent RCA Bench、JSONBench、TSBS)和一个生产案例研究,并指出该项目已正式可用,API 稳定且定期发布。核心采用 Apache-2.0 许可,另有少量仅限企业版的功能采用单独许可。