Об этом проекте

GreptimeDB — это открытая база данных наблюдаемости, которая хранит метрики, логи и трейсы в едином колоночном движке на объектном хранилище. Все три типа сигналов используют одну табличную модель — теги, временная метка и поля — поэтому, когда сигналы несут общие идентификаторы, такие как сервис, хост или trace ID, их можно сопоставлять с помощью SQL-соединений вместо перемещения данных между отдельными системами. Пути приёма данных включают OpenTelemetry (OTLP), Prometheus Remote Write, Loki Push, Elasticsearch Bulk, протокол строк InfluxDB и 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 и остальная часть API запросов Loki несовместимы; приём Elasticsearch `_bulk` есть в открытом ядре, а QueryDSL частично доступен в Enterprise-редакции. Проект описывает себя как open-core: кластерное развёртывание, объектное хранилище, движок Flow и все перечисленные протоколы приёма входят в сборку под Apache-2.0, тогда как read replicas, изоляция рабочих нагрузок, автоматическое перераспределение и корпоративная безопасность/управление являются функциями Enterprise. Перераспределение, миграция регионов и создание индексов в открытой сборке выполняются вручную. Быстрый старт предоставляется через Docker, открывая порты HTTP (4000), gRPC (4001), MySQL (4002) и PostgreSQL (4003), с веб-панелью на порту HTTP. Сборка из исходного кода требует закреплённого nightly-тулчейна Rust, компилятора Protobuf и базовых средств сборки C/C++; распространённые команды включают make, make fmt, make clippy, make test и make sqlness-test. Сопутствующие инструменты включают Kubernetes-оператор, Helm-чарты, панель управления, gRPC-ингестеры для Go, Java, C++, Erlang, Rust, .NET и TypeScript, а также плагин источника данных Grafana. README также перечисляет отчёты о бенчмарках (Agent RCA Bench, JSONBench, TSBS) и пример из продакшена, а также отмечает, что проект находится в статусе общей доступности со стабильными API и регулярными релизами. Ядро лицензировано под Apache-2.0, а небольшой набор функций только для Enterprise — под отдельной лицензией.