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…ms 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"
}