[role="xpack"] [testenv="basic"] [[get-transform-stats]] === Get {transform} statistics API [subs="attributes"] ++++ Get {transform} statistics ++++ Retrieves usage information for {transforms}. [[get-transform-stats-request]] ==== {api-request-title} `GET _transform//_stats` `GET _transform/,/_stats` + `GET _transform/_stats` + `GET _transform/_all/_stats` + `GET _transform/*/_stats` + [[get-transform-stats-prereqs]] ==== {api-prereq-title} * If the {es} {security-features} are enabled, you must have `monitor_transform` cluster privileges to use this API. The built-in `transform_user` role has these privileges. For more information, see <> and <>. [[get-transform-stats-desc]] ==== {api-description-title} You can get statistics for multiple {transforms} in a single API request by using a comma-separated list of identifiers or a wildcard expression. You can get statistics for all {transforms} by using `_all`, by specifying `*` as the ``, or by omitting the ``. [[get-transform-stats-path-parms]] ==== {api-path-parms-title} ``:: (Optional, string) include::{docdir}/rest-api/common-parms.asciidoc[tag=transform-id-wildcard] [[get-transform-stats-query-parms]] ==== {api-query-parms-title} `allow_no_match`:: (Optional, boolean) include::{docdir}/rest-api/common-parms.asciidoc[tag=allow-no-match-transforms1] `from`:: (Optional, integer) include::{docdir}/rest-api/common-parms.asciidoc[tag=from-transforms] `size`:: (Optional, integer) include::{docdir}/rest-api/common-parms.asciidoc[tag=size-transforms] [role="child_attributes"] [[get-transform-stats-response]] ==== {api-response-body-title} The API returns an array of statistics objects for {transforms}, which are sorted by the `id` value in ascending order. All of these properties are informational; you cannot update their values. //Begin checkpointing `checkpointing`:: (object) Contains statistics about <>. + .Properties of `checkpointing` [%collapsible%open] ==== `changes_last_detected_at`::: (date) include::{docdir}/rest-api/common-parms.asciidoc[tag=checkpointing-changes-last-detected-at] //Begin checkpointing.last `last`::: (object) Contains statistics about the last completed checkpoint. + .Properties of `last` [%collapsible%open] ===== `checkpoint`:::: (integer) The sequence number for the checkpoint. `time_upper_bound_millis`:::: (date) When using time-based synchronization, this timestamp indicates the upper bound of data that is included in the checkpoint. `timestamp_millis`:::: (date) The timestamp of the checkpoint, which indicates when the checkpoint was created. ===== //End checkpointing.last //Begin checkpointing.next `next`::: (object) Contains statistics about the next checkpoint that is currently in progress. This object appears only when the {transform} `state` is `indexing`. + .Properties of `next` [%collapsible%open] ===== `checkpoint`:::: (integer) The sequence number for the checkpoint. `checkpoint_progress`:::: (object) Contains statistics about the progress of the checkpoint. For example, it lists the `total_docs`, `docs_remaining`, `percent_complete`, `docs_processed`, and `docs_indexed`. This information is available only for batch {transforms} and the first checkpoint of {ctransforms}. `time_upper_bound_millis`:::: (date) When using time-based synchronization, this timestamp indicates the upper bound of data that is included in the checkpoint. `timestamp_millis`:::: (date) The timestamp of the checkpoint, which indicates when the checkpoint was created. ===== //End checkpointing.next `operations_behind`::: (integer) The number of operations that have occurred on the source index but have not been applied to the destination index yet. A high number can indicate that the {transform} is failing to keep up. ==== //End checkpointing `id`:: (string) include::{docdir}/rest-api/common-parms.asciidoc[tag=transform-id] //Begin node `node`:: (object) For started {transforms} only, the node upon which the {transform} is started. + .Properties of `node` [%collapsible%open] ==== `attributes`::: (object) A list of attributes for the node. `ephemeral_id`::: (string) The node ephemeral ID. `id`::: (string) The unique identifier of the node. For example, "0-o0tOoRTwKFZifatTWKNw". `name`::: (string) The node name. For example, `0-o0tOo`. `transport_address`::: (string) The host and port where transport HTTP connections are accepted. For example, `127.0.0.1:9300`. ==== //End node `reason`:: (string) include::{docdir}/rest-api/common-parms.asciidoc[tag=state-transform-reason] `state`:: (string) include::{docdir}/rest-api/common-parms.asciidoc[tag=state-transform] //Begin stats `stats`:: (object) An object that provides statistical information about the {transform}. + .Properties of `stats` [%collapsible%open] ==== `documents_indexed`::: (long) include::{docdir}/rest-api/common-parms.asciidoc[tag=docs-indexed] `documents_processed`::: (long) include::{docdir}/rest-api/common-parms.asciidoc[tag=docs-processed] `exponential_avg_checkpoint_duration_ms`::: (double) include::{docdir}/rest-api/common-parms.asciidoc[tag=exponential-avg-checkpoint-duration-ms] `exponential_avg_documents_indexed`::: (double) include::{docdir}/rest-api/common-parms.asciidoc[tag=exponential-avg-documents-indexed] `exponential_avg_documents_processed`::: (double) include::{docdir}/rest-api/common-parms.asciidoc[tag=exponential-avg-documents-processed] `index_failures`::: (long) include::{docdir}/rest-api/common-parms.asciidoc[tag=index-failures] `index_time_in_ms`::: (long) include::{docdir}/rest-api/common-parms.asciidoc[tag=index-time-ms] `index_total`::: (long) include::{docdir}/rest-api/common-parms.asciidoc[tag=index-total] `pages_processed`::: (long) include::{docdir}/rest-api/common-parms.asciidoc[tag=pages-processed] `search_failures`::: (long) include::{docdir}/rest-api/common-parms.asciidoc[tag=search-failures] `search_time_in_ms`::: (long) include::{docdir}/rest-api/common-parms.asciidoc[tag=search-time-ms] `search_total`::: (long) include::{docdir}/rest-api/common-parms.asciidoc[tag=search-total] `trigger_count`::: (long) include::{docdir}/rest-api/common-parms.asciidoc[tag=trigger-count] ==== //End stats [[get-transform-stats-response-codes]] ==== {api-response-codes-title} `404` (Missing resources):: If `allow_no_match` is `false`, this code indicates that there are no resources that match the request or only partial matches for the request. [[get-transform-stats-example]] ==== Examples The following example skips for the first five {transforms} and gets usage information for a maximum of ten results: [source,console] -------------------------------------------------- GET _transform/_stats?from=5&size=10 -------------------------------------------------- // TEST[skip:todo] The following example gets usage information for the `ecommerce_transform` {transform}: [source,console] -------------------------------------------------- GET _transform/ecommerce_transform/_stats -------------------------------------------------- // TEST[skip:todo] The API returns the following results: [source,console-result] ---- { "count" : 1, "transforms" : [ { "id" : "ecommerce_transform", "state" : "indexing", "stats" : { "pages_processed" : 2, "documents_processed" : 1220, "documents_indexed" : 13, "trigger_count" : 1, "index_time_in_ms" : 19, "index_total" : 1, "index_failures" : 0, "search_time_in_ms" : 52, "search_total" : 2, "search_failures" : 0, "exponential_avg_checkpoint_duration_ms" : 77, "exponential_avg_documents_indexed" : 2, "exponential_avg_documents_processed" : 12 }, "checkpointing" : { "last" : { "checkpoint" : 100, "timestamp_millis" : 1561740252497, "time_upper_bound_millis" : 1561740192497 }, "next" : { "checkpoint" : 101, "position" : { "indexer_position" : { "hashtag" : "abcd1234" }, "buckets_position" : { "hashtag" : "abcd5678" } }, "checkpoint_progress" : { "documents_processed": 100, "documents_indexed": 1 }, "changes_last_detected_at": 1561740629170, "timestamp_millis" : 1561740629172, "time_upper_bound_millis" : 1561740569172 }, "operations_behind": 27000 } } ] } ----