A port of HDR Histogram at http://hdrhistogram.github.io/HdrHistogram for use with node. All calls into the Java layer are asynchronous by default to improve performance.
####Solving known OSX java/jni build issues wrt the java node module
Ensure that JAVA_HOME is set to a JDK (not JRE)
and that the JDK is set up to support JNI (off by default on OSX),
$JAVA_HOME/../Info.plist and add
JNI to the
see here for details
##To install from npm registry
npm install hdr-histogram
##Example nodejs code //instantiate the hdr-histogram module with //- max value you expect to record //- min value you expect to record (must be greater than 1 so scale your recorded values appropriately) //- significant digits to record (precision) //- the log file to write to var hdr = require('hdr-histogram')(2000000, 1, 5, 'example.histogram.hlog');
//Record a latency value hdr.recordValue(200); //this //reset the recording process hdr.reset(); All the above calls also return promises so that rather than fire-and-forget the caller can use the return value to determine when the call was completed
##To view the recorded results use the Visualizer to load the produced file. THis allows you to view the max-per-interval plot and the percentile plot without futher processing the log file.
##To generate and view percentile data Run the following script to process the histogram logs above and produce a percentile series log file
`./HistogramLogProcessor -i <log file outputted above> -o processedLogs`
A 'processedLogs.hgrm' file is generated. This can be ploted in excell or opened with the online Dynamic Histogram Plotter tool which dynamically show your percentiles