Skip to content

Node.js implementation of DDSketch, a fast and fully-mergeable quantile sketch with relative-error guarantees

License

Notifications You must be signed in to change notification settings

monti-apm/sketches-js

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sketches-js

Fork of sketches-js to fix compatibility with older versions of Node.

An implementation of DDSketch for Node.js.

DDSketch is a data structure for recording large amounts of numeric data and calculating quantiles over that data. It's designed to be fast, fully-mergeable and provide guarantees that a quantile value is within a configurable percentage threshold of the real value.

Implementation

The implementation is based on the official paper: DDSketch: A Fast and Fully-Mergeable Quantile Sketch with Relative-Error Guarantees (PDF)

Usage

npm install monti-apm-sketches-js
const { DDSketch } = require('sketches-js');

const sketch = new DDSketch({
  alpha: 0.005 // compute quantiles with precision of 1/2 of a percent
});

for (let i = 0; i < 1000; i++) {
  sketch.add(Math.random() * 1000);
}

[0.5, 0.75, 0.9, 0.95, 0.99].forEach(function(q) {
  console.log(`p${q * 100}: ${sketch.quantile(q)}`);
});

License

The source code is distributed under the terms of MPL 2.0 license.

About

Node.js implementation of DDSketch, a fast and fully-mergeable quantile sketch with relative-error guarantees

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%