You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

2.7 KiB

Hastic server REST API

/anomalies

Get anomalies

GET /anomalies?id=<anomaly_id>[&name=<anomaly_name>]

NOTE: name param is deprecated, use id instead

Return data format:

{
  "name": "<anomaly_name>",
  "metric": "<metric_id>",
  "status": "<str>"
}

status field can be one of:

  • learning
  • ready
  • failed

Get anomaly status

GET /anomalies/status?id=<anomaly_id>[&name=<anomaly_name>]

NOTE: name param is deprecated, use id instead

Return data format:

{
  "status": <str>
}

status field can be one of:

  • learning
  • ready
  • failed

Add anomaly

POST /anomalies

Data format:

{
  "name": "cpu_utilization_supervised",
  "metric": {
    "datasource": "influx accelerometer",
    "targets": [
      <targets>
    ]
  },
  "panelUrl": "http://grafana.example.com/d/oNZ35bWiz/new-dashboard-copy?panelId=2&fullscreen",
  "datasource": {
    "data": null,
    "type": "influxdb",
    "method": "GET",
    "params": {
      "db": "collectd",
      "q": "SELECT mean("value") FROM "cpu_value" WHERE ("type_instance" = 'user') AND time >= 1525603866633ms and time <= 1526986266633ms GROUP BY time(10s)",
      "epoch": "ms"
    }
    "url": "api/datasources/proxy/8/query"
  }
}

targets example:

{
  "alias": "command",
  "groupBy": [],
  "measurement": "data",
  "orderByTime": "ASC",
  "policy": "default",
  "refId": "A",
  "resultFormat": "time_series",
  "select": [
    [
      {
        "params": [
          "command"
        ],
        "type": "field"
      }
    ]
  ],
  "tags": []
}

Return data format:

{
  "anomaly_id": "<anomaly_id>"
}

Delete anpmalies

DELETE /anomalies

Data format:

{
  "id": "<anomaly_id>",
  "name": "<anomaly_name>" // deprecated, use id instead
}

Return data format:

Success

/segments

Get segments

GET /segments?anomaly_id=<anomaly_id>[&last_segment=<id>][&from=<time_from>][&to=<time_to>]

Return data format:

{
  "segments": [
    {
      "id": 0,
      "start": 1392765184318,
      "finish": 1397243699000,
      "labeled": true
    },
    ...
  ]
}

Update segments

PATCH /segments

Data format:

{
  "anomaly_id": "<anomaly_id>",
  "name": "<anomaly_name>", // deprecated, use id instead
  "added_segments": [
    {
      "start": 1397164656000,
      "finish": 1397243699000
    },
    ...
  ],
  "removed_segments": [3, 9]
}

Return data format:

{
  "added_ids": [12, ...]
}

/alerts

Check if alert is enabled for anomaly

GET /alerts?anomaly_id=<anomaly_id>

Return data format:

{
  "enable": true
}

Enable / disable alert for anomaly

POST /alerts

Data format:

{
  "anomaly_id": "<anomaly_id>",
  "enable": true
}

Return data format:

{
  "status": "Ok"
}