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
    }
]