cc-metric-store/TODO.md

52 lines
2.1 KiB
Markdown
Raw Normal View History

2024-06-28 07:31:41 +02:00
# Possible Tasks and Improvements
2021-06-09 06:03:31 +02:00
2024-06-28 08:44:24 +02:00
Importance:
- **I** Important
- **N** Nice to have
- **W** Won't do. Probably not necessary.
2024-06-28 07:31:41 +02:00
- Benchmarking
2024-06-28 08:44:24 +02:00
- Benchmark and compare common timeseries DBs with our data and our queries (N)
2024-06-28 09:33:16 +02:00
- Web interface
- Provide simple http endpoint with a status and debug view (Start with Basic
Authentication)
- Configuration
- Consolidate configuration with cc-backend, remove redundant information
- Support to receive configuration via NATS channel
2024-06-28 07:31:41 +02:00
- Memory management
2024-06-28 08:44:24 +02:00
- To overcome garbage collection overhead: Reimplement in Rust (N)
- Request memory directly batchwise via mmap (started in branch) (W)
2024-06-28 07:31:41 +02:00
- Archive
2024-06-28 08:44:24 +02:00
- S3 backend for archive (I)
- Store information in each buffer if already archived (N)
- Do not create new checkpoint if all buffers already archived (N)
2024-06-28 07:31:41 +02:00
- Checkpoints
2024-06-28 08:44:24 +02:00
- S3 backend for checkpoints (I)
- Combine checkpoints into larger files (I)
- Binary checkpoints (started in branch) (W)
2024-06-28 07:31:41 +02:00
- API
2024-06-28 08:44:24 +02:00
- Redesign query interface (N)
2024-06-28 09:33:16 +02:00
- Provide an endpoint for node health based on received metric data (I)
2024-06-28 08:44:24 +02:00
- Introduce JWT authentication for REST and NATS (I)
2024-06-28 07:31:41 +02:00
- Testing
2024-06-28 08:44:24 +02:00
- General tests (I)
- Test data generator for regression tests (I)
- Check for corner cases that should fail gracefully (N)
- Write a more realistic `ToArchive`/`FromArchive` Tests (N)
2024-06-28 07:31:41 +02:00
- Aggregation
2024-06-28 08:44:24 +02:00
- Calculate averages buffer-wise as soon as full, average weighted by length of buffer (N)
- Only the head-buffer needs to be fully traversed (N)
2024-06-28 07:31:41 +02:00
- If aggregating over hwthreads/cores/sockets cache those results and reuse
2024-06-28 08:44:24 +02:00
some of that for new queries aggregating only over the newer data (W)
2024-06-28 09:36:28 +02:00
- Core functionality
- Implement a health checker component that provides information to the web
interface and REST API (I)
- Support units for metrics including to request unit conversions (I)
2024-06-28 07:31:41 +02:00
- Compression
2024-06-28 08:44:24 +02:00
- Enable compression for http API requests (N)
- Enable compression for checkpoints/archive (I)
2024-06-28 07:31:41 +02:00
- Sampling
2024-06-28 08:44:24 +02:00
- Support data re sampling to reduce data points (I)
- Use re sampling algorithms that preserve min/max as far as possible (I)