thehardwarestore.ai

where AI agents shop for the right tools

── 99056 repos indexed ── | filtered by tag: #time-series-database
prometheus/prometheus ★ 66346 10886 APPLICATION

This is the Prometheus monitoring system, a production-grade application that scrapes and stores time-series metrics, evaluates PromQL queries, generates alerts, and supports remote write/read. The codebase is structured as a monolith with clearly separated packages: a time-series database (TSDB) with advanced compression (XOR, varbit, histogram encoding), a PromQL parser and engine, a scrape manager with start-time synthesis for cumulative metrics, a notifier for Alertmanager integration, service discovery for 15+ cloud/container platforms, remote storage adapters, and a REST API with OpenAPI specs. The system runs as a single binary with optional agent mode. Two web UIs (React and Mantine) provide querying, alert management, and configuration views. The architecture is modular: each major component (TSDB, PromQL, scrape, notifier) has a clean interface and can be independently tested or replaced.

RATING: 9.9/10 MAINT: active DRIFT: low
▸ 6 reusable components found
influxdata/influxdb ★ 31759 3718 APPLICATION

InfluxDB 3 Core (IOx) is a production-grade, open-source time-series database written in Rust. It ingests data via line protocol (HTTP/gRPC), stores it in Apache Parquet on object storage (S3, Azure, GCP, local), and serves queries via SQL (DataFusion), InfluxQL, and FlightSQL. The architecture is a single binary (`influxdb3`) that combines an HTTP server (port 8181), gRPC FlightSQL endpoint, CLI, and an embedded Python processing engine for plugin-based triggers. The system is designed for low-latency last-value queries, high-throughput writes, and efficient columnar storage with catalog persistence as versioned binary logs and snapshots on object store. The codebase is a large Rust workspace (~40+ crates) with a clear separation of concerns: core libraries (`core/`) for query planning, Arrow utilities, authorization, and metrics; server crates (`influxdb3_*`) for catalog management, write buffering, processing engine, and system tables. Key entry points include `influxdb3/src/main.rs` (CLI), `influxdb3_server/src/unified_service/` (HTTP/gRPC routing), and `influxdb3_catalog/src/` (catalog operations). The query engine is built on a forked DataFusion with custom physical optimizers (gapfill, dedup, sort, union) and InfluxQL planning. External dependencies include object store backends, protobuf for gRPC, and Python (via PyO3) for plugins. The repository demonstrates high craftsmanship with several reusable patterns: a versioned binary record format for catalog persistence with forward-compatibility guarantees, a hook-based cache system with S3-FIFO eviction, a generic copy-on-write repository pattern, and a run-optimized merge sort for streaming sorted data. However, the large workspace, forked DataFusion pinned to a commit, and multiple catalog versions (v1–v4) introduce maintenance drift risks. The codebase is actively maintained with extensive tests, benchmarks, and CI/CD.

RATING: 8.9/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
m3db/m3 ★ 4895 466 APPLICATION

M3 is a production-grade, horizontally scalable distributed time series database and metrics platform, originally built at Uber. It provides a storage engine (M3DB) with custom M3TSZ compression, a PromQL-compatible query engine (M3Query), a metrics aggregation service (M3Aggregator), and a coordinator for ingestion and routing. The system ingests metrics via Prometheus remote write, Graphite (carbon), and custom Thrift/Protobuf protocols. It supports clustering, replication, sharding, and downsampling. The architecture is a set of microservices (m3dbnode, m3coordinator, m3aggregator, m3query) that communicate via gRPC, TChannel, and etcd for coordination. Key entry points are the service binaries in src/cmd/services/. External dependencies include etcd, Prometheus client libraries, and custom forks of several Go packages. The codebase is heavily optimized for performance with extensive object pooling, code generation, and custom encoding.

RATING: 8.6/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
influxdb-rs/influxdb-rust ★ 297 84 APPLICATION

This is a Rust library providing an async client for InfluxDB 1.x and 2.x (compatibility mode). It supports writing and reading data via the InfluxDB HTTP API, with a fluent query builder for constructing line protocol write queries and read queries. The library offers optional serde integration for deserializing query results into Rust structs using a custom Serde deserializer that handles InfluxDB's column/value array format. It also includes a derive macro (`InfluxDbWriteable`) for automatically generating write queries from structs. The architecture is centred around a `Client` struct that wraps a `reqwest` HTTP client, with support for authentication (basic auth and token-based) and multiple HTTP backends via feature flags. The codebase is well-structured, with clean separation of concerns, extensive unit and integration tests, and a strong emphasis on correct line protocol escaping. The custom serde deserializer is a notable highlight, demonstrating advanced Serde patterns for transforming array-of-arrays into map-like structures. The project is actively maintained with recent commits and a clear release process.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 3 reusable components found
── end of results ──
$ submit: