Skip to content

Froot-NetSys/promsketch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

63 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PromSketch: Approximation-First Timeseries Query at Scale

About

PromSketch is an approximation-first timeseries query framework serving as intermediate result caches for cloud telemetry systems. It eliminates two major query bottlnecks in window-based aggregation queries, i.e., 1) repeated data scans, and 2) repeated query computation concerning window overlaps in rule queries.

PromSketch combines approximate window-based query frameworks, e.g., Exponential Historgrams, and sketch-based precomputation as algorithmic building blocks. It can serve as a plugin to Prometheus and VictoriaMetrics, two representative cloud monitoring systems, and significantly reduces query latency operational dollar costs.

Check out our PromSketch demo, paper, and a standalone PromSketch implementation as well!

Demo

Quick Start

Install Dependencies

# installs Golang
wget https://go.dev/dl/go1.22.4.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.22.4.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
# installs nvm (Node Version Manager)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
# download and install Node.js (you may need to restart the terminal)
nvm install 20

Datasets

Run EHUniv test

cd promsketch
go test -v -timeout 0 -run ^TestExpoHistogramUnivMonOptimizedCAIDA$ github.com/froot-netsys/promsketch

Run EHKLL test

cd promsketch
go test -v -timeout 0 -run ^TestCostAnalysisQuantile$ github.com/froot-netsys/promsketch

Integration with Prometheus

git clone git@github.com:zzylol/prometheus-sketches.git

Compile:

cd prometheus-sketches
make build

Integration with VictoriaMetrics single-node version

git clone git@github.com:zzylol/VictoriaMetrics.git

Compile:

cd VictoriaMetrics
make victoria-metrics
make vmalert

Integration with VictoriaMetrics Cluster version

https://github.com/zzylol/VictoriaMetrics-cluster

Citation

Please consider citing this work if you find the repository helpful.

@article{zhu2025approximation,
  title={Approximation-First Timeseries Query At Scale},
  author={Zhu, Zeying and Chamberlain, Jonathan and Wu, Kenny and Starobinski, David and Liu, Zaoxing},
  journal={Proceedings of the VLDB Endowment},
  volume={18},
  number={8},
  pages={2348--2361},
  year={2025},
  publisher={VLDB Endowment}
}

Contact

Feel free to raise issues or contact us if you have any questions or suggestions. You can reach us at:

Packages

No packages published

Contributors 2

  •  
  •