123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385 |
- [role="xpack"]
- [[get-transform-stats]]
- = Get {transform} statistics API
- [subs="attributes"]
- ++++
- <titleabbrev>Get {transform} statistics</titleabbrev>
- ++++
- Retrieves usage information for {transforms}.
- [[get-transform-stats-request]]
- == {api-request-title}
- `GET _transform/<transform_id>/_stats`
- `GET _transform/<transform_id>,<transform_id>/_stats` +
- `GET _transform/_stats` +
- `GET _transform/_all/_stats` +
- `GET _transform/*/_stats` +
- [[get-transform-stats-prereqs]]
- == {api-prereq-title}
- Requires the following privileges:
- * cluster: `monitor_transform` (the `transform_user` built-in role grants this
- privilege)
- * destination index: `read`, `view_index_metadata`.
- [[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 `<transform_id>`, or by omitting the
- `<transform_id>`.
- [[get-transform-stats-path-parms]]
- == {api-path-parms-title}
- `<transform_id>`::
- (Optional, string)
- include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=transform-id-wildcard]
-
- [[get-transform-stats-query-parms]]
- == {api-query-parms-title}
- `allow_no_match`::
- (Optional, Boolean)
- include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=allow-no-match-transforms1]
- `from`::
- (Optional, integer)
- include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=from-transforms]
- `size`::
- (Optional, integer)
- include::{es-repo-dir}/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 <<transform-checkpoints,checkpoints>>.
- +
- .Properties of `checkpointing`
- [%collapsible%open]
- ====
- `changes_last_detected_at`:::
- (date)
- include::{es-repo-dir}/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
- `last_search_time`:::
- (date)
- include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=checkpointing-last-search-time]
- //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
- //Begin health
- `health`::
- (object) Health indicator for this {transform}.
- +
- .Properties of `health`
- [%collapsible%open]
- ====
- `status`::
- (string) Health status of this transform. Statuses are:
- * `green`:
- The transform is healthy.
- * `unknown`:
- The health of the transform could not be determined.
- * `yellow`:
- The functionality of the transform is in a degraded state and may need
- remediation to avoid the health becoming `red`.
- * `red`:
- The transform is experiencing an outage or is unavailable for use.
- `issues`::
- (Optional, array) If a non-healthy status is returned, contains a list of issues
- of the transform.
- +
- .Properties of `issues`
- [%collapsible%open]
- ========
- `issue`::
- (string) A description of the issue.
- `details`::
- (Optional, string) Details about the issue.
- `count`::
- (integer) Number of times the issue has occured since it started.
- `first_occurrence`::
- (Optional, date) The timestamp this issue occured for the first time.
- ========
- //End issues
- ====
- //End health
- `id`::
- (string)
- include::{es-repo-dir}/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::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=state-transform-reason]
- `state`::
- (string)
- include::{es-repo-dir}/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]
- ====
- `delete_time_in_ms`:::
- (long)
- include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=delete-time-ms]
- `documents_deleted`:::
- (long)
- include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=docs-deleted-transform]
- `documents_indexed`:::
- (long)
- include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=docs-indexed]
- `documents_processed`:::
- (long)
- include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=docs-processed]
- `exponential_avg_checkpoint_duration_ms`:::
- (double)
- include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=exponential-avg-checkpoint-duration-ms]
- `exponential_avg_documents_indexed`:::
- (double)
- include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=exponential-avg-documents-indexed]
- `exponential_avg_documents_processed`:::
- (double)
- include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=exponential-avg-documents-processed]
- `index_failures`:::
- (long)
- include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=index-failures]
- `index_time_in_ms`:::
- (long)
- include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=index-time-ms]
- `index_total`:::
- (long)
- include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=index-total]
- `pages_processed`:::
- (long)
- include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=pages-processed]
- `processing_time_in_ms`:::
- (long)
- include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=processing-time-ms]
- `processing_total`:::
- (long)
- include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=processing-total]
- `search_failures`:::
- (long)
- include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=search-failures]
- `search_time_in_ms`:::
- (long)
- include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=search-time-ms]
- `search_total`:::
- (long)
- include::{es-repo-dir}/rest-api/common-parms.asciidoc[tag=search-total]
- `trigger_count`:::
- (long)
- include::{es-repo-dir}/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 {transform}:
- [source,console]
- --------------------------------------------------
- GET _transform/ecommerce-customer-transform/_stats
- --------------------------------------------------
- // TEST[skip:todo]
- The API returns the following results:
- [source,console-result]
- ----
- {
- "count" : 1,
- "transforms" : [
- {
- "id" : "ecommerce-customer-transform",
- "state" : "started",
- "node" : {
- "id" : "cpTIGMsVQ8Gqwqlxxxxxxx",
- "name" : "my.home",
- "ephemeral_id" : "5-L21nFsQxxxxxxxxxx-xx",
- "transport_address" : "127.0.0.1:9300",
- "attributes" : { }
- },
- "stats" : {
- "pages_processed" : 78,
- "documents_processed" : 6027,
- "documents_indexed" : 68,
- "documents_deleted": 22,
- "delete_time_in_ms": 214,
- "trigger_count" : 168,
- "index_time_in_ms" : 412,
- "index_total" : 20,
- "index_failures" : 0,
- "search_time_in_ms" : 353,
- "search_total" : 78,
- "search_failures" : 0,
- "processing_time_in_ms" : 8,
- "processing_total" : 78,
- "exponential_avg_checkpoint_duration_ms" : 97.30637923893185,
- "exponential_avg_documents_indexed" : 2.2064915040974062,
- "exponential_avg_documents_processed" : 179.89419945785045
- },
- "checkpointing" : {
- "last" : {
- "checkpoint" : 20,
- "timestamp_millis" : 1585344558220,
- "time_upper_bound_millis" : 1585344498220
- },
- "changes_last_detected_at" : 1585344558219
- },
- "health": {
- "status": "green"
- }
- }
- ]
- }
- ----
|