Detect anomalies in the univariate time series data
You can use this API to detect anomalies in any time series data (date-time and metrics value). For example, you can pass metric values such as the duration of a job or query, I/0 metrics, CPU usage, cost of a query or job, and so on. You can specify one metric at a time in each request. Then, the API locates anomalies in the specified metrics and returns anomalous data.
Request
The request produces an application/json payload.
POST http://<unravel-host>/api/v1/app_store/api/v1/anomalies/time-series
Example: http://<unravel_host>/api/v1/app_store/api/v1/anomalies/time-series -d'{"<startTime1>" : <metrics value>, "<startTime2>" : <metrics value>, "<startTime3>" : <metrics value>}'
Note
You must pass the time-series data manually in the request. See Examples
Path parameters
None
Query parameters
All the parameters are optional.
Name | Type | Description | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
tolerance | integer | Controls the anomaly boundaries—the lower the tolerance, the higher the anomalies. Default value: 0.95 Valid values: 0 to 1 | |||||||||||||||
| float | The For example, if the algorithm returns $0.5 and $2 costs as anomalies, and if you do not want to see these anomalies, then define a Examples:
Default: None | |||||||||||||||
| integer | Displays the highest number of anomalies based on the significance (score). N indicates any number you want to specify to return the top anomalies. NoteIf you have specified Default: None | |||||||||||||||
| boolean |
Default: False | |||||||||||||||
| boolean |
Default: False |
Examples
Request
curl -X POST -H "Authorization: JWT <token>" -H "Content-Type: application/json"
-d '{
"2022-02-22T03:58:15.944Z": 50.33,
"2022-02-22T14:23:44.369Z": 51.12,
"2022-02-22T15:25:51.078Z": 57.06,
"2022-02-22T18:58:03.523Z": 69.71,
"2022-02-23T20:49:45.484Z": 32.76,
"2022-03-04T15:34:48.189Z": 47.54,
"2022-03-04T15:57:40.994Z": 50.69,
"2022-03-05T01:27:51.496Z": 41.12,
"2022-03-07T14:10:26.054Z": 65.81,
"2022-03-07T18:58:27.724Z": 62.19,
"2022-03-07T21:51:45.795Z": 72.33,
"2022-03-08T01:27:10.392Z": 76.90,
"2022-03-08T02:59:06.260Z": 3.74,
"2022-03-08T03:04:06.170Z": 892.88,
"2022-03-08T14:43:58.895Z": 45.68 }'
http://<unravel-host>/api/v1/app_store/api/v1/anomalies/time-series
Note
Alternatively, you can specify the date without a timestamp in the request, for example, --d '{ "2022-02-22": 50.33}'.
Response
[
{
"value": 50.33,
"anomaly": 0,
"datetime": "2022-02-22T03:58:15.944000Z",
"lowerBoundary": -151.5689863110632,
"upperBoundary": 309.6075651211625,
"score": 0.0
},
{
"value": 51.12,
"anomaly": 0,
"datetime": "2022-02-22T14:23:44.369000Z",
"lowerBoundary": -196.4820692181124,
"upperBoundary": 274.988031900136,
"score": 0.0
},
{
"value": 57.06,
"anomaly": 0,
"datetime": "2022-02-22T15:25:51.078000Z",
"lowerBoundary": -179.66430889182902,
"upperBoundary": 285.0467646923019,
"score": 0.0
},
{
"value": 69.71,
"anomaly": 0,
"datetime": "2022-02-22T18:58:03.523000Z",
"lowerBoundary": -166.13682141126742,
"upperBoundary": 309.65327527682035,
"score": 0.0
},
{
"value": 32.76,
"anomaly": 0,
"datetime": "2022-02-23T20:49:45.484000Z",
"lowerBoundary": -195.8326199493043,
"upperBoundary": 267.5704782275939,
"score": 0.0
},
{
"value": 47.54,
"anomaly": 0,
"datetime": "2022-03-04T15:34:48.189000Z",
"lowerBoundary": -225.808921942789,
"upperBoundary": 248.08816652995216,
"score": 0.0
},
{
"value": 50.69,
"anomaly": 0,
"datetime": "2022-03-04T15:57:40.994000Z",
"lowerBoundary": -156.7418278886897,
"upperBoundary": 303.3146308606596,
"score": 0.0
},
{
"value": 41.12,
"anomaly": 0,
"datetime": "2022-03-05T01:27:51.496000Z",
"lowerBoundary": -176.68871413153553,
"upperBoundary": 271.1775045154612,
"score": 0.0
},
{
"value": 65.81,
"anomaly": 0,
"datetime": "2022-03-07T14:10:26.054000Z",
"lowerBoundary": -145.4064201546787,
"upperBoundary": 294.55383723341055,
"score": 0.0
},
{
"value": 62.19,
"anomaly": 0,
"datetime": "2022-03-07T18:58:27.724000Z",
"lowerBoundary": -185.20942550542986,
"upperBoundary": 301.62357198114006,
"score": 0.0
},
{
"value": 72.33,
"anomaly": 0,
"datetime": "2022-03-07T21:51:45.795000Z",
"lowerBoundary": -143.64130130498756,
"upperBoundary": 307.1662054911512,
"score": 0.0
},
{
"value": 76.9,
"anomaly": 0,
"datetime": "2022-03-08T01:27:10.392000Z",
"lowerBoundary": -163.7108291889344,
"upperBoundary": 305.01130817100415,
"score": 0.0
},
{
"value": 3.74,
"anomaly": -1,
"datetime": "2022-03-08T02:59:06.260000Z",
"lowerBoundary": 209.8489573150019,
"upperBoundary": 681.1699932092157,
"score": 0.9821776574549002
},
{
"value": 892.88,
"anomaly": 1,
"datetime": "2022-03-08T03:04:06.170000Z",
"lowerBoundary": 193.72941058005716,
"upperBoundary": 685.9399035641256,
"score": 0.3016883773062612
},
{
"value": 45.68,
"anomaly": 0,
"datetime": "2022-03-08T14:43:58.895000Z",
"lowerBoundary": -157.15185634049396,
"upperBoundary": 300.7481991778867,
"score": 0.0
}
]