Home

Awesome

Curve

Sorry to tell contributors and users. We decided to archive the project temporarily due to the employee work plan of collaborators.

There are no more official support. Collaborators may offer a bit personal support.

Curve is an open-source tool to help label anomalies on time-series data. The labeled data (also known as the ground truth) is necessary for evaluating time-series anomaly detection methods. Otherwise, one can not easily choose a detection method, or say method A is better than method B. The labeled data can also be used as the training set if one wants to develop supervised learning methods for detection.

Curve is designed to support plugin, so one can equip Curve with customized and powerful functions to help label effectively. For example, a plugin to identify anomalies which are similar to the one you labeled, so you don't have to search them through all the data.

Curve is originally developed by Baidu and Tsinghua NetMan Lab.

<img src="https://raw.githubusercontent.com/baidu/Curve/master/doc/pic/index.png">

Getting Started

Run and stop

Simply use control.sh to start or stop Curve.

./control.sh start
./control.sh stop

Server will blind 8080 by default, you can change it in ./api/uwsgi.ini.

The first start will take a while because of the compilation. If you pull updates from github, Rebuild will be triggered during start or reload.

Data format

You can load a CSV file into Curve. The CSV should have the following format

The header of CSV is optional, like timestamp,value,label.

Some examples of valid CSV

timestampvaluelabel
14764608002566.350
14764608602704.650
14764609202700.050
14764608002566.350
14764608602704.650
14764609202700.050
14764608002566.35
14764608602704.65
14764609202700.05
201610150000002566.35
201610150001002704.65
201610150002002700.05

Additional

Recommend environments

For PC

Darwin(Mac OSX) or Linux(Ubuntu, CentOS, Arch, etc.) is Recommended

Control Scripts for Windows is under development

For VPS like EC2

Minimal

Swap is required during build

Recommend

Backend Unit Test

cd api && pytest

Plugin dir

api/curve/v1/plugins

GitHub oauth

GitHub Oauth is supported, please put a configuration file into api/curve/auth/github_oauth.json like this:

{
  "id": "your github application Client ID",
  "secret": "your application Client Secret"
}

Doc:Creating-An-Github-Oauth-App

Change Log