Get datafeed statistics API

edit

Retrieves usage information for datafeeds.

Request

edit

GET _ml/datafeeds/<feed_id>/_stats

GET _ml/datafeeds/<feed_id>,<feed_id>/_stats

GET _ml/datafeeds/_stats

GET _ml/datafeeds/_all/_stats

Prerequisites

edit
  • If the Elasticsearch security features are enabled, you must have monitor_ml, monitor, manage_ml, or manage cluster privileges to use this API. See Security privileges.

Description

edit

You can get statistics for multiple datafeeds in a single API request by using a comma-separated list of datafeeds or a wildcard expression. You can get statistics for all datafeeds by using _all, by specifying * as the <feed_id>, or by omitting the <feed_id>.

If the datafeed is stopped, the only information you receive is the datafeed_id and the state.

This API returns a maximum of 10,000 datafeeds.

Path parameters

edit
<feed_id>
(Optional, string) Identifier for the datafeed. It can be a datafeed identifier or a wildcard expression. If you do not specify one of these options, the API returns statistics for all datafeeds.

Query parameters

edit
allow_no_datafeeds

(Optional, boolean) Specifies what to do when the request:

  • Contains wildcard expressions and there are no {datafeeds} that match.
  • Contains the _all string or no identifiers and there are no matches.
  • Contains wildcard expressions and there are only partial matches.

The default value is true, which returns an empty datafeeds array when there are no matches and the subset of results when there are partial matches. If this parameter is false, the request returns a 404 status code when there are no matches or only partial matches.

Response body

edit

The API returns the following information:

datafeeds
(array) An array of datafeed count objects. For more information, see Datafeed counts.

Response codes

edit
404 (Missing resources)
If allow_no_datafeeds is false, this code indicates that there are no resources that match the request or only partial matches for the request.

Examples

edit

The following example gets usage information for the datafeed-total-requests datafeed:

GET _ml/datafeeds/datafeed-total-requests/_stats

The API returns the following results:

{
  "count": 1,
  "datafeeds": [
    {
      "datafeed_id": "datafeed-total-requests",
      "state": "started",
      "node": {
        "id": "2spCyo1pRi2Ajo-j-_dnPX",
        "name": "node-0",
        "ephemeral_id": "hoXMLZB0RWKfR9UPPUCxXX",
        "transport_address": "127.0.0.1:9300",
        "attributes": {
          "ml.machine_memory": "17179869184",
          "ml.max_open_jobs": "20"
        }
      },
      "assignment_explanation": "",
      "timing_stats": {
        "job_id": "job-total-requests",
        "search_count": 20,
        "total_search_time_ms": 120.5
      }
    }
  ]
}