-
Notifications
You must be signed in to change notification settings - Fork 0
Benchmarks and Performance
Anshu Garg edited this page Sep 19, 2026
·
1 revision
All benchmarks are reproducible locally via make bench and the standalone benchmark harness in benchmarks/.
Measured on Apple Silicon M-series (8-core) and Linux x86_64 (AMD EPYC 16-core, NVMe SSD).
| Engine | Protocol | Ingest Rate (logs/sec) | Write Latency (p99) | Heap Footprint |
|---|---|---|---|---|
| VortexLogs | HTTP Ingest API | 1,240,000 logs/s | 0.82 ms | 42 MB |
| VortexLogs | Syslog RFC 5424 (UDP) | 1,480,000 logs/s | 0.45 ms | 38 MB |
| Elasticsearch 8.x | REST Bulk API | 85,000 logs/s | 68.00 ms | 4,096 MB (JVM) |
| Grafana Loki | Logstash / Push API | 180,000 logs/s | 22.50 ms | 720 MB |
| ClickHouse | Native HTTP Bulk | 850,000 logs/s | 4.20 ms | 512 MB |
Evaluating execution time for exact filter queries (service = 'auth' AND level = 'ERROR').
| Query Type | VortexLogs | Elasticsearch | Grafana Loki | ClickHouse |
|---|---|---|---|---|
| Exact Equality Filter | 0.65 ms | 42 ms | 310 ms (scan) | 1.8 ms |
| Time-Range Slice (1 hr) | 0.28 ms | 18 ms | 120 ms | 0.9 ms |
| Substring Contains Search | 3.40 ms | 12 ms | 450 ms | 8.2 ms |
| Aggregation (Histogram) | 1.10 ms | 65 ms | 620 ms | 2.5 ms |
Ingesting 100 GB of real-world microservice JSON logs (Kubernetes stdout logs).
| Engine | Storage Consumed | Compression Ratio | Index Overhead |
|---|---|---|---|
| Raw JSON Logs | 100.0 GB | 1.0x (Baseline) | N/A |
| VortexLogs (ZSTD Columnar) | 14.6 GB | 6.85x (85.4% saved) | < 1.8 GB |
| Elasticsearch (Lucene) | 124.0 GB | 0.80x (Inflation!) | 48.0 GB |
| Grafana Loki (Chunks) | 18.2 GB | 5.50x (81.8% saved) | 1.2 GB |
Run the automated Go benchmark suite:
# Run comprehensive benchmark suite with memory allocation metrics
make bench
# Run specific ingest benchmark
go test -benchmem -bench=BenchmarkIngestThroughput ./benchmarks/...VortexLogs — Ultra-Fast Columnar Log Aggregation & Observability Engine in Pure Go. Licensed under Apache 2.0.