2019-03-21 10:45:17 -04:00
|
|
|
[role="xpack"]
|
|
|
|
[testenv="basic"]
|
2019-09-20 18:57:43 -04:00
|
|
|
[[get-transform-stats]]
|
2019-09-16 11:28:19 -04:00
|
|
|
=== Get {transform} statistics API
|
2019-04-30 13:46:13 -04:00
|
|
|
|
|
|
|
[subs="attributes"]
|
2019-03-21 10:45:17 -04:00
|
|
|
++++
|
2019-09-16 11:28:19 -04:00
|
|
|
<titleabbrev>Get {transform} statistics</titleabbrev>
|
2019-03-21 10:45:17 -04:00
|
|
|
++++
|
|
|
|
|
2019-09-16 11:28:19 -04:00
|
|
|
Retrieves usage information for {transforms}.
|
2019-07-10 17:39:38 -04:00
|
|
|
|
2019-03-21 10:45:17 -04:00
|
|
|
|
2019-09-20 18:57:43 -04:00
|
|
|
[[get-transform-stats-request]]
|
2019-06-26 16:46:21 -04:00
|
|
|
==== {api-request-title}
|
2019-03-21 10:45:17 -04:00
|
|
|
|
2019-10-08 02:59:01 -04:00
|
|
|
`GET _transform/<transform_id>/_stats`
|
2019-03-21 10:45:17 -04:00
|
|
|
|
2019-10-08 02:59:01 -04:00
|
|
|
`GET _transform/<transform_id>,<transform_id>/_stats` +
|
2019-03-21 10:45:17 -04:00
|
|
|
|
2019-10-08 02:59:01 -04:00
|
|
|
`GET _transform/_stats` +
|
2019-03-21 10:45:17 -04:00
|
|
|
|
2019-10-08 02:59:01 -04:00
|
|
|
`GET _transform/_all/_stats` +
|
2019-03-21 10:45:17 -04:00
|
|
|
|
2019-10-08 02:59:01 -04:00
|
|
|
`GET _transform/*/_stats` +
|
2019-03-21 10:45:17 -04:00
|
|
|
|
2019-07-10 17:39:38 -04:00
|
|
|
|
2019-09-20 18:57:43 -04:00
|
|
|
[[get-transform-stats-prereqs]]
|
2019-06-26 16:46:21 -04:00
|
|
|
==== {api-prereq-title}
|
2019-03-21 10:45:17 -04:00
|
|
|
|
2019-10-17 04:22:38 -04:00
|
|
|
* 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 <<security-privileges>> and
|
|
|
|
<<built-in-roles>>.
|
2019-06-26 16:46:21 -04:00
|
|
|
|
2019-07-10 17:39:38 -04:00
|
|
|
|
2019-09-20 18:57:43 -04:00
|
|
|
[[get-transform-stats-desc]]
|
2019-06-27 18:16:24 -04:00
|
|
|
==== {api-description-title}
|
|
|
|
|
2019-09-16 11:28:19 -04:00
|
|
|
You can get statistics for multiple {transforms} in a single API
|
2019-06-27 18:16:24 -04:00
|
|
|
request by using a comma-separated list of identifiers or a wildcard expression.
|
2019-09-16 11:28:19 -04:00
|
|
|
You can get statistics for all {transforms} by using `_all`, by
|
|
|
|
specifying `*` as the `<transform_id>`, or by omitting the
|
|
|
|
`<transform_id>`.
|
2019-03-21 10:45:17 -04:00
|
|
|
|
2019-07-10 17:39:38 -04:00
|
|
|
|
2019-09-20 18:57:43 -04:00
|
|
|
[[get-transform-stats-path-parms]]
|
2019-06-26 16:46:21 -04:00
|
|
|
==== {api-path-parms-title}
|
|
|
|
|
2019-09-16 11:28:19 -04:00
|
|
|
`<transform_id>`::
|
2019-12-17 12:01:31 -05:00
|
|
|
(Optional, string)
|
|
|
|
include::{docdir}/rest-api/common-parms.asciidoc[tag=transform-id-wildcard]
|
2019-06-26 16:46:21 -04:00
|
|
|
|
2019-07-10 17:39:38 -04:00
|
|
|
|
2019-09-20 18:57:43 -04:00
|
|
|
[[get-transform-stats-query-parms]]
|
2019-06-26 16:46:21 -04:00
|
|
|
==== {api-query-parms-title}
|
2019-03-21 10:45:17 -04:00
|
|
|
|
2019-07-10 17:39:38 -04:00
|
|
|
`allow_no_match`::
|
2019-12-17 12:01:31 -05:00
|
|
|
(Optional, boolean)
|
|
|
|
include::{docdir}/rest-api/common-parms.asciidoc[tag=allow-no-match-transforms1]
|
2019-06-26 11:09:56 -04:00
|
|
|
|
2019-07-10 17:39:38 -04:00
|
|
|
`from`::
|
2019-12-17 12:01:31 -05:00
|
|
|
(Optional, integer)
|
|
|
|
include::{docdir}/rest-api/common-parms.asciidoc[tag=from-transforms]
|
2019-06-14 11:42:18 -04:00
|
|
|
|
2019-07-10 17:39:38 -04:00
|
|
|
`size`::
|
2019-12-17 12:01:31 -05:00
|
|
|
(Optional, integer)
|
|
|
|
include::{docdir}/rest-api/common-parms.asciidoc[tag=size-transforms]
|
2019-06-26 11:09:56 -04:00
|
|
|
|
2019-09-20 18:57:43 -04:00
|
|
|
[[get-transform-stats-response]]
|
2019-06-26 16:46:21 -04:00
|
|
|
==== {api-response-body-title}
|
2019-03-21 10:45:17 -04:00
|
|
|
|
2020-02-05 15:23:30 -05:00
|
|
|
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.
|
|
|
|
|
|
|
|
`checkpointing`::
|
|
|
|
(object) Contains statistics about <<transform-checkpoints,checkpoints>>.
|
|
|
|
`checkpointing`.`changes_last_detected_at`:::
|
|
|
|
(date) The timestamp when changes were last detected in the source indices.
|
|
|
|
`checkpointing`.`last`:::
|
|
|
|
(object) Contains statistics about the last completed checkpoint.
|
|
|
|
`checkpointing`.`last`.`checkpoint`::::
|
|
|
|
(integer) The sequence number for the checkpoint.
|
|
|
|
`checkpointing`.`last`.`time_upper_bound_millis`::::
|
|
|
|
(date) When using time-based synchronization, this timestamp indicates the
|
|
|
|
upper bound of data that is included in the checkpoint.
|
|
|
|
`checkpointing`.`last`.`timestamp_millis`::::
|
|
|
|
(date) The timestamp of the checkpoint, which indicates when the checkpoint
|
|
|
|
was created.
|
|
|
|
`checkpointing`.`next`:::
|
|
|
|
(object) Contains statistics about the next checkpoint that is currently in
|
|
|
|
progress. This object appears only when the {transform} `state` is `indexing`.
|
|
|
|
`checkpointing`.`next`.`checkpoint`::::
|
|
|
|
(integer) The sequence number for the checkpoint.
|
|
|
|
`checkpointing`.`next`.`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}.
|
|
|
|
`checkpointing`.`next`.`time_upper_bound_millis`::::
|
|
|
|
(date) When using time-based synchronization, this timestamp indicates the
|
|
|
|
upper bound of data that is included in the checkpoint.
|
|
|
|
`checkpointing`.`next`.`timestamp_millis`::::
|
|
|
|
(date) The timestamp of the checkpoint, which indicates when the checkpoint was
|
|
|
|
created.
|
2020-03-13 12:32:15 -04:00
|
|
|
`checkpointing`.`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.
|
2020-02-05 15:23:30 -05:00
|
|
|
|
|
|
|
`id`::
|
|
|
|
(string)
|
|
|
|
include::{docdir}/rest-api/common-parms.asciidoc[tag=transform-id]
|
|
|
|
|
|
|
|
`node`::
|
|
|
|
(object) For started {transforms} only, the node upon which the {transform} is
|
|
|
|
started.
|
|
|
|
`node`.`attributes`:::
|
|
|
|
(object) A list of attributes for the node.
|
|
|
|
`node`.`ephemeral_id`:::
|
|
|
|
(string) The node ephemeral ID.
|
|
|
|
`node`.`id`:::
|
|
|
|
(string) The unique identifier of the node. For example, "0-o0tOoRTwKFZifatTWKNw".
|
|
|
|
`node`.`name`:::
|
|
|
|
(string) The node name. For example, `0-o0tOo`.
|
|
|
|
`node`.`transport_address`:::
|
|
|
|
(string) The host and port where transport HTTP connections are accepted. For
|
|
|
|
example, `127.0.0.1:9300`.
|
|
|
|
`state`::
|
|
|
|
(string) The status of the {transform}, which can be one of the following values:
|
|
|
|
+
|
|
|
|
--
|
|
|
|
* `aborting`: The {transform} is aborting.
|
|
|
|
* `failed`: The {transform} failed. For more information about the failure,
|
|
|
|
check the reason field.
|
|
|
|
* `indexing`: The {transform} is actively processing data and creating new
|
|
|
|
documents.
|
|
|
|
* `started`: The {transform} is running but not actively indexing data.
|
|
|
|
* `stopped`: The {transform} is stopped.
|
|
|
|
* `stopping`: The {transform} is stopping.
|
|
|
|
--
|
|
|
|
|
|
|
|
`stats`::
|
|
|
|
(object) An object that provides statistical information about the {transform}.
|
|
|
|
`stats`.`documents_indexed`:::
|
|
|
|
(long) The number of documents that have been indexed into the destination index
|
|
|
|
for the {transform}.
|
|
|
|
`stats`.`documents_processed`:::
|
|
|
|
(long) The number of documents that have been processed from the source index of
|
|
|
|
the {transform}.
|
|
|
|
`stats`.`exponential_avg_checkpoint_duration_ms`:::
|
|
|
|
(double) Exponential moving average of the duration of the checkpoint, in milliseconds.
|
|
|
|
`stats`.`exponential_avg_documents_indexed`:::
|
|
|
|
(double) Exponential moving average of the number of new documents that have been
|
|
|
|
indexed.
|
|
|
|
`stats`.`exponential_avg_documents_processed`:::
|
|
|
|
(double) Exponential moving average of the number of documents that have been
|
|
|
|
processed.
|
|
|
|
`stats`.`index_failures`:::
|
|
|
|
(long) The number of indexing failures.
|
|
|
|
`stats`.`index_time_in_ms`:::
|
|
|
|
(long) The amount of time spent indexing, in milliseconds.
|
|
|
|
`stats`.`index_total`:::
|
|
|
|
(long) The number of indices created.
|
|
|
|
`stats`.`pages_processed`:::
|
|
|
|
(long) The number of search or bulk index operations processed. Documents are
|
|
|
|
processed in batches instead of individually.
|
|
|
|
`stats`.`search_failures`:::
|
|
|
|
(long) The number of search failures.
|
|
|
|
`stats`.`search_time_in_ms`:::
|
|
|
|
(long) The amount of time spent searching, in milliseconds.
|
|
|
|
`stats`.`search_total`:::
|
|
|
|
(long) The number of search operations on the source index for the {transform}.
|
|
|
|
`stats`.`trigger_count`:::
|
|
|
|
(long) The number of times the {transform} has been triggered by the scheduler.
|
|
|
|
For example, the scheduler triggers the {transform} indexer to check for updates
|
|
|
|
or ingest new data at an interval specified in the
|
|
|
|
<<put-transform-request-body,`frequency` property>>.
|
2019-06-27 18:16:24 -04:00
|
|
|
|
2019-09-20 18:57:43 -04:00
|
|
|
[[get-transform-stats-response-codes]]
|
2019-06-27 18:16:24 -04:00
|
|
|
==== {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.
|
2019-03-21 10:45:17 -04:00
|
|
|
|
2019-09-20 18:57:43 -04:00
|
|
|
[[get-transform-stats-example]]
|
2019-03-21 10:45:17 -04:00
|
|
|
==== Examples
|
|
|
|
|
2019-09-16 11:28:19 -04:00
|
|
|
The following example skips for the first five {transforms} and
|
2019-06-14 11:42:18 -04:00
|
|
|
gets usage information for a maximum of ten results:
|
|
|
|
|
2019-09-09 13:38:14 -04:00
|
|
|
[source,console]
|
2019-06-14 11:42:18 -04:00
|
|
|
--------------------------------------------------
|
2019-10-08 02:59:01 -04:00
|
|
|
GET _transform/_stats?from=5&size=10
|
2019-06-14 11:42:18 -04:00
|
|
|
--------------------------------------------------
|
|
|
|
// TEST[skip:todo]
|
|
|
|
|
2019-03-21 10:45:17 -04:00
|
|
|
The following example gets usage information for the `ecommerce_transform`
|
2019-09-16 11:28:19 -04:00
|
|
|
{transform}:
|
2019-03-21 10:45:17 -04:00
|
|
|
|
2019-09-09 13:38:14 -04:00
|
|
|
[source,console]
|
2019-03-21 10:45:17 -04:00
|
|
|
--------------------------------------------------
|
2019-10-08 02:59:01 -04:00
|
|
|
GET _transform/ecommerce_transform/_stats
|
2019-03-21 10:45:17 -04:00
|
|
|
--------------------------------------------------
|
|
|
|
// TEST[skip:todo]
|
|
|
|
|
|
|
|
The API returns the following results:
|
2019-09-06 09:22:08 -04:00
|
|
|
|
|
|
|
[source,console-result]
|
2019-03-21 10:45:17 -04:00
|
|
|
----
|
|
|
|
{
|
|
|
|
"count" : 1,
|
|
|
|
"transforms" : [
|
|
|
|
{
|
|
|
|
"id" : "ecommerce_transform",
|
2019-08-08 11:24:26 -04:00
|
|
|
"state" : "indexing",
|
2019-03-21 10:45:17 -04:00
|
|
|
"stats" : {
|
2019-05-16 10:10:23 -04:00
|
|
|
"pages_processed" : 2,
|
|
|
|
"documents_processed" : 1220,
|
|
|
|
"documents_indexed" : 13,
|
|
|
|
"trigger_count" : 1,
|
|
|
|
"index_time_in_ms" : 19,
|
|
|
|
"index_total" : 1,
|
2019-03-21 10:45:17 -04:00
|
|
|
"index_failures" : 0,
|
2019-05-16 10:10:23 -04:00
|
|
|
"search_time_in_ms" : 52,
|
|
|
|
"search_total" : 2,
|
2019-08-14 14:08:27 -04:00
|
|
|
"search_failures" : 0,
|
|
|
|
"exponential_avg_checkpoint_duration_ms" : 77,
|
|
|
|
"exponential_avg_documents_indexed" : 2,
|
|
|
|
"exponential_avg_documents_processed" : 12
|
2019-05-16 10:10:23 -04:00
|
|
|
},
|
|
|
|
"checkpointing" : {
|
2019-07-23 13:00:50 -04:00
|
|
|
"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" : {
|
2019-08-14 14:08:27 -04:00
|
|
|
"documents_processed": 100,
|
|
|
|
"documents_indexed": 1
|
2019-07-23 13:00:50 -04:00
|
|
|
},
|
2019-08-14 14:08:27 -04:00
|
|
|
"changes_last_detected_at": 1561740629170,
|
2019-07-23 13:00:50 -04:00
|
|
|
"timestamp_millis" : 1561740629172,
|
|
|
|
"time_upper_bound_millis" : 1561740569172
|
2019-05-16 10:10:23 -04:00
|
|
|
},
|
2019-07-23 13:00:50 -04:00
|
|
|
"operations_behind": 27000
|
2019-03-21 10:45:17 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
]
|
|
|
|
}
|
|
|
|
----
|