{"id":13415363,"url":"https://github.com/baidu/Curve","last_synced_at":"2025-03-14T22:33:22.111Z","repository":{"id":55857326,"uuid":"107930664","full_name":"baidu/Curve","owner":"baidu","description":"An Integrated Experimental Platform for time series data anomaly detection.","archived":true,"fork":false,"pushed_at":"2020-12-24T08:19:38.000Z","size":1863,"stargazers_count":534,"open_issues_count":37,"forks_count":134,"subscribers_count":42,"default_branch":"master","last_synced_at":"2025-01-19T13:19:04.061Z","etag":null,"topics":["anomaly-detection","labeling","monitoring-tool","series-data"],"latest_commit_sha":null,"homepage":"http://curve.baidu.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/baidu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-10-23T04:07:19.000Z","updated_at":"2025-01-14T13:35:17.000Z","dependencies_parsed_at":"2022-08-15T07:51:22.490Z","dependency_job_id":null,"html_url":"https://github.com/baidu/Curve","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baidu%2FCurve","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baidu%2FCurve/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baidu%2FCurve/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/baidu%2FCurve/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/baidu","download_url":"https://codeload.github.com/baidu/Curve/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243658059,"owners_count":20326459,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anomaly-detection","labeling","monitoring-tool","series-data"],"created_at":"2024-07-30T21:00:47.626Z","updated_at":"2025-03-14T22:33:22.105Z","avatar_url":"https://github.com/baidu.png","language":"JavaScript","funding_links":[],"categories":["✏️ Annotation and Labeling","Labeling Tools","相关包","Related Software","Tools and Algorithms","📦 Legacy \u0026 Inactive Projects"],"sub_categories":["Managed database services","Time Series","标注","Labeling"],"readme":"Curve\n---\n\n**Sorry to tell contributors and users. We decided to archive the project temporarily due to the employee work plan of collaborators.**\n\n**There are no more official support. Collaborators may offer a bit personal support.**\n\nCurve 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.\n\nCurve 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.\n\nCurve is originally developed by Baidu and Tsinghua NetMan Lab.\n\n\u003cimg src=\"https://raw.githubusercontent.com/baidu/Curve/master/doc/pic/index.png\"\u003e\n\n## Getting Started\n\n### Run and stop\n\nSimply use control.sh to start or stop Curve.\n\n```bash\n./control.sh start\n./control.sh stop\n```\nServer will blind 8080 by default, you can change it in `./api/uwsgi.ini`.\n\n\u003e The first start will take a while because of the compilation. \n\u003e If you pull updates from github, Rebuild will be triggered during start or reload.\n\n### Data format\n\nYou can load a CSV file into Curve. The CSV should have the following format\n\n* First column is the timestamp\n* Second column is the value\n* Third column (optional) is the label. 0 for normal and 1 for abnormal.\n\nThe header of CSV is optional, like `timestamp,value,label`.  \n\nSome examples of valid CSV\n\n* With a header and the label column\n\n|timestamp|value|label|\n|---|---|---|\n|1476460800|2566.35|0|\n|1476460860|2704.65|0|\n|1476460920|2700.05|0|\n\n\n* Without the header\n \n|1476460800|2566.35|0|\n|---|---|---|\n|1476460860|2704.65|0|\n|1476460920|2700.05|0|\n\n* Without the header and the label column\n\n|1476460800|2566.35|\n|---|---|\n|1476460860|2704.65|\n|1476460920|2700.05|\n\n* Timestamp in human-readable format\n\n|20161015000000|2566.35|\n|---|---|\n|20161015000100|2704.65|\n|20161015000200|2700.05|\n\n## Additional\n\n### Recommend environments\n\n#### For PC\n\nDarwin(Mac OSX) or Linux(Ubuntu, CentOS, Arch, etc.) is Recommended\n\n* Dependency:\n    * Python 2.7.3+~~/3.1.2+~~(Python 3 does not seem to be supported as of now.), if python is not owned by current user, virtualenv is required\n    * Node.js 4.7.0+\n    * gcc, pip and npm path is correctly set\n\n\u003e Control Scripts for Windows is under development\n\n#### For VPS like EC2\n\n**Minimal**\n\n* Server: 1 CPU, 512MB RAM, 5GB Storage\n* System: Ubuntu10.04LTS or CentOS5.5\n\n\u003e Swap is required during build\n\n**Recommend**\n\n* Server: 1 CPU, 1GB RAM, 10GB Storage\n* System: Ubuntu16.04LTS or CentOS7\n\n### Backend Unit Test\n\n```bash\ncd api \u0026\u0026 pytest\n```\n\n### Plugin dir\n\n```api/curve/v1/plugins```\n\n### GitHub oauth\n\nGitHub Oauth is supported, please put a configuration file into ```api/curve/auth/github_oauth.json``` like this:\n\n```json\n{\n  \"id\": \"your github application Client ID\",\n  \"secret\": \"your application Client Secret\"\n}\n```\n\n\u003e [Doc:Creating-An-Github-Oauth-App](https://developer.github.com/apps/building-oauth-apps/creating-an-oauth-app/)\n\n### Change Log\n* 2018-08-07  [Function Optimization]: Refactoring code\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaidu%2FCurve","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbaidu%2FCurve","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbaidu%2FCurve/lists"}