TSViewDB is a high-performance storage and graphing web service for time-series data from experiments with multiple iterations (time-series of time-series). It provides:
A RESTful API.
A pluggable storage backend:
Currently uses Apache Cassandra.
Interactive graphs.
Regression detection over non-cyclic data.
Easy horizontal infrastructure scaling.
Time-series of Time-series
Time-series of time-series can be produced by periodically run experiments each of which contain multiple iterations. TSViewDB stores the data points associated with these multiple iterations, and also automatically calculate various summary statistics over them (mean, min, max, 50th percentile, etc.).
Interactive Graphs
TSViewDB provides a UI which quickly shows you what’s in your data. You have ready access to interactive graphs for summary statistics (aggregates), for iteration points, and for histograms of iteration points. Common functionality is either a mouseover, click, or click and drag away. Graphs are zoomable and auto-resizing.
Regression Detection
TSViewDB can optionally determine if a regression has occurred in non-cyclic data for any of the read result data it returns. The regression function works over noisy, non-cyclic data and returns the precise regressing segments (which may also be graphed). This facilitates setting up daily regression alert emails and analysis systems.
Easy Horizontal Infrastructure Scaling
TSViewDB’s current Apache Cassandra backend can be scaled simply by adding nodes, and is known to handle significant write traffic. The TSViewDB server itself can be replicated behind a load balancer. It includes an in-process, cluster-aware cache server which allows latencies for read hits to be low (<100 microseconds for 3.2 GHz Xeon) and throughput high (~100,000 reads/sec for 12-core 3.2 GHz Xeon).
<a name=”Features”/a>
Features
RESTful JSON API
Sparse record input; table output
Input records may have arbitrary metrics
Reads return fully-populated tables
Automatic aggregate calculation
On writes, 13 aggregations are calculated if not supplied (min, mean, max, count, and various percentiles)
TSViewDB
~ Under development: API or features may change. ~
Table Of Contents
<a name=”Overview”/a> Overview
TSViewDB is a high-performance storage and graphing web service for time-series data from experiments with multiple iterations (time-series of time-series). It provides:
Time-series of Time-series
Time-series of time-series can be produced by periodically run experiments each of which contain multiple iterations. TSViewDB stores the data points associated with these multiple iterations, and also automatically calculate various summary statistics over them (mean, min, max, 50th percentile, etc.).
Interactive Graphs
TSViewDB provides a UI which quickly shows you what’s in your data. You have ready access to interactive graphs for summary statistics (aggregates), for iteration points, and for histograms of iteration points. Common functionality is either a mouseover, click, or click and drag away. Graphs are zoomable and auto-resizing.
Regression Detection
TSViewDB can optionally determine if a regression has occurred in non-cyclic data for any of the read result data it returns. The regression function works over noisy, non-cyclic data and returns the precise regressing segments (which may also be graphed). This facilitates setting up daily regression alert emails and analysis systems.
Easy Horizontal Infrastructure Scaling
TSViewDB’s current Apache Cassandra backend can be scaled simply by adding nodes, and is known to handle significant write traffic. The TSViewDB server itself can be replicated behind a load balancer. It includes an in-process, cluster-aware cache server which allows latencies for read hits to be low (<100 microseconds for 3.2 GHz Xeon) and throughput high (~100,000 reads/sec for 12-core 3.2 GHz Xeon).
<a name=”Features”/a> Features
What is it good for?
What is it NOT good for?
- Production monitoring.
- Flat time-series.
- Storing or analyzing only recent data (round-robin type databases are better fits).
- Data analysis which requires rolling up (because not supported).
Installation -------------- 1\. **Install and Setup Apache Cassandra** - Install Apache Cassandra and follow its install instructions: http://cassandra.apache.org/download/ - Modify the Cassandra installation config to allow ordered scan results (don't start the Cassandra server until you do this):2. Setup TSViewDB Either download an executable or build from source.
Download executable:
Build From Source:
- Install the Go Language: http://golang.org/doc/install
- Get and build the TSViewDB server:
- Make resources:<a name=”Quick_Start”/a> Quick Start
Make sure to start the server first (see Installation).
1. Register a new data source: “testdir/testsubdir/testdata”
2. Upload some data to it.
3. Read aggregate data back.
Result should be something like:
<a name=”Additional_Documentation”/a> Additional Documentation
<a name=”License”/a> License
TSViewDB is licensed under the Apache License version 2.0. This is not an official Google product.