À propos du projet

GreptimeDB est une base de données d'observabilité open-source qui stocke les métriques, les journaux et les traces dans un moteur columnar unique sur stockage objet. Les trois types de signaux partagent un modèle de table unique — tags, horodatage et champs — de sorte que lorsque les signaux portent des identifiants communs tels que le service, l'hôte ou l'ID de trace, ils peuvent être corrélés avec des jointures SQL au lieu de déplacer des données entre des systèmes séparés. Les chemins d'ingestion incluent OpenTelemetry (OTLP), Prometheus Remote Write, Loki Push, Elasticsearch Bulk, le protocole ligne InfluxDB et gRPC. Les options de requête incluent SQL, PromQL, les requêtes de traces compatibles Jaeger, ainsi que les protocoles filaires MySQL et PostgreSQL. Les backends de stockage objet tels que S3, GCS, Azure Blob et les points de terminaison compatibles S3 servent de stockage principal, avec des caches en mémoire et sur disque local gardant les données récentes ou fréquemment interrogées près du calcul. Les capacités intégrées couvrent les politiques de rétention, le sous-échantillonnage, l'agrégation continue (moteur Flow), le partitionnement explicite des tables, et les index inversés, de saut et de texte intégral. Le déploiement se fait en deux modes. Standalone est un binaire unique pour le développement et les petits déploiements. Distribué se divise en composants évolutifs indépendamment : Frontend (entrée de protocole et moteur de requête distribué, sans état), Datanode (moteur de région avec WAL, memtable, SST, cache, compaction et index, persistant sur stockage objet), Metasrv (métadonnées, routage, repartitionnement et sécurité, soutenu par etcd ou RDS), et un Flownode optionnel pour le calcul de flux continu. Le README documente la compatibilité par protocole : l'ingestion Prometheus Remote Write et les requêtes PromQL sont prises en charge avec certaines lacunes PromQL ; l'ingestion Loki Push fonctionne, tandis que LogQL et le reste de l'API de requête Loki ne sont pas compatibles ; l'ingestion Elasticsearch `_bulk` est dans le cœur open-source, avec QueryDSL partiellement disponible dans l'édition Enterprise. Le projet se décrit comme open-core : le déploiement en cluster, le stockage objet, le moteur Flow et tous les protocoles d'ingestion listés sont dans la version Apache-2.0, tandis que les réplicas de lecture, l'isolation de charge de travail, le repartitionnement automatisé et la sécurité/gouvernance d'entreprise sont des fonctionnalités Enterprise. Le repartitionnement, la migration de région et la création d'index sont manuels dans la version open-source. Un démarrage rapide est fourni via Docker, exposant les ports HTTP (4000), gRPC (4001), MySQL (4002) et PostgreSQL (4003), avec un tableau de bord web sur le port HTTP. La compilation à partir des sources nécessite une chaîne d'outils Rust nightly épinglée, un compilateur Protobuf et des éléments essentiels de compilation C/C++ ; les commandes courantes incluent make, make fmt, make clippy, make test et make sqlness-test. Les outils associés incluent un opérateur Kubernetes, des charts Helm, un tableau de bord, des ingesteurs gRPC pour Go, Java, C++, Erlang, Rust, .NET et TypeScript, et un plugin de source de données Grafana. Le README liste également des rapports de benchmark (Agent RCA Bench, JSONBench, TSBS) et une étude de cas de production, et note que le projet est généralement disponible avec des API stables et des versions régulières. Le cœur est sous licence Apache-2.0, avec un petit ensemble de fonctionnalités exclusives à l'entreprise sous une licence distincte.