123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474 |
- [role="xpack"]
- [testenv="platinum"]
- [[ml-get-job-stats]]
- = Get {anomaly-job} statistics API
- ++++
- <titleabbrev>Get job statistics</titleabbrev>
- ++++
- Retrieves usage information for {anomaly-jobs}.
- [[ml-get-job-stats-request]]
- == {api-request-title}
- `GET _ml/anomaly_detectors/<job_id>/_stats`
- `GET _ml/anomaly_detectors/<job_id>,<job_id>/_stats` +
- `GET _ml/anomaly_detectors/_stats` +
- `GET _ml/anomaly_detectors/_all/_stats`
- [[ml-get-job-stats-prereqs]]
- == {api-prereq-title}
- * If the {es} {security-features} are enabled, you must have `monitor_ml`,
- `monitor`, `manage_ml`, or `manage` cluster privileges to use this API. See
- <<security-privileges>> and {ml-docs-setup-privileges}.
- [[ml-get-job-stats-desc]]
- == {api-description-title}
- You can get statistics for multiple {anomaly-jobs} in a single API request by
- using a group name, a comma-separated list of jobs, or a wildcard expression.
- You can get statistics for all {anomaly-jobs} by using `_all`, by specifying `*`
- as the `<job_id>`, or by omitting the `<job_id>`.
- IMPORTANT: This API returns a maximum of 10,000 jobs.
- [[ml-get-job-stats-path-parms]]
- == {api-path-parms-title}
- `<job_id>`::
- (Optional, string)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=job-id-anomaly-detection-default]
- [[ml-get-job-stats-query-parms]]
- == {api-query-parms-title}
- `allow_no_match`::
- (Optional, boolean)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=allow-no-jobs]
- [role="child_attributes"]
- [[ml-get-job-stats-results]]
- == {api-response-body-title}
- The API returns the following information about the operational progress of a
- job:
- `assignment_explanation`::
- (string)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=assignment-explanation-anomaly-jobs]
- //Begin data_counts
- [[datacounts]]`data_counts`::
- (object) An object that describes the quantity of input to the job and any
- related error counts. The `data_count` values are cumulative for the lifetime of
- a job. If a model snapshot is reverted or old results are deleted, the job
- counts are not reset.
- +
- .Properties of `data_counts`
- [%collapsible%open]
- ====
- `bucket_count`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=bucket-count-anomaly-jobs]
- `earliest_record_timestamp`:::
- (date)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=earliest-record-timestamp]
- `empty_bucket_count`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=empty-bucket-count]
- `input_bytes`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=input-bytes]
- `input_field_count`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=input-field-count]
- `input_record_count`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=input-record-count]
- `invalid_date_count`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=invalid-date-count]
- `job_id`:::
- (string)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=job-id-anomaly-detection]
- `last_data_time`:::
- (date)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=last-data-time]
- `latest_empty_bucket_timestamp`:::
- (date)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=latest-empty-bucket-timestamp]
- `latest_record_timestamp`:::
- (date)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=latest-record-timestamp]
- `latest_sparse_bucket_timestamp`:::
- (date)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=latest-sparse-record-timestamp]
- `missing_field_count`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=missing-field-count]
- +
- The value of `processed_record_count` includes this count.
- `out_of_order_timestamp_count`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=out-of-order-timestamp-count]
- `processed_field_count`:::
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=processed-field-count]
- `processed_record_count`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=processed-record-count]
- `sparse_bucket_count`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=sparse-bucket-count]
- ====
- //End data_counts
- `deleting`::
- (boolean)
- Indicates that the process of deleting the job is in progress but not yet
- completed. It is only reported when `true`.
- //Begin forecasts_stats
- [[forecastsstats]]`forecasts_stats`::
- (object) An object that provides statistical information about forecasts
- belonging to this job. Some statistics are omitted if no forecasts have been
- made.
- +
- NOTE: Unless there is at least one forecast, `memory_bytes`, `records`,
- `processing_time_ms` and `status` properties are omitted.
- +
- .Properties of `forecasts_stats`
- [%collapsible%open]
- ====
- `forecasted_jobs`:::
- (long) A value of `0` indicates that forecasts do not exist for this job. A
- value of `1` indicates that at least one forecast exists.
- `memory_bytes`:::
- (object) The `avg`, `min`, `max` and `total` memory usage in bytes for forecasts
- related to this job. If there are no forecasts, this property is omitted.
- `records`:::
- (object) The `avg`, `min`, `max` and `total` number of `model_forecast` documents
- written for forecasts related to this job. If there are no forecasts, this
- property is omitted.
- `processing_time_ms`:::
- (object) The `avg`, `min`, `max` and `total` runtime in milliseconds for
- forecasts related to this job. If there are no forecasts, this property is omitted.
- `status`:::
- (object) The count of forecasts by their status. For example:
- {"finished" : 2, "started" : 1}. If there are no forecasts, this property is omitted.
- `total`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=forecast-total]
- ====
- //End forecasts_stats
- `job_id`::
- (string)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=job-id-anomaly-detection]
- //Begin model_size_stats
- [[modelsizestats]]`model_size_stats`::
- (object) An object that provides information about the size and contents of the
- model.
- +
- .Properties of `model_size_stats`
- [%collapsible%open]
- ====
- `bucket_allocation_failures_count`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=bucket-allocation-failures-count]
- `categorized_doc_count`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=categorized-doc-count]
- `categorization_status`:::
- (string)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=categorization-status]
- `dead_category_count`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=dead-category-count]
- `failed_category_count`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=failed-category-count]
- `frequent_category_count`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=frequent-category-count]
- `job_id`:::
- (string)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=job-id-anomaly-detection]
- `log_time`:::
- (date) The timestamp of the `model_size_stats` according to server time.
- `memory_status`:::
- (string)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=model-memory-status]
- `model_bytes`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=model-bytes]
- `model_bytes_exceeded`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=model-bytes-exceeded]
- `model_bytes_memory_limit`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=model-memory-limit-anomaly-jobs]
- `peak_model_bytes`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=peak-model-bytes]
- `rare_category_count`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=rare-category-count]
- `result_type`:::
- (string) For internal use. The type of result.
- `total_by_field_count`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=total-by-field-count]
- `total_category_count`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=total-category-count]
- `total_over_field_count`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=total-over-field-count]
- `total_partition_field_count`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=total-partition-field-count]
- `timestamp`:::
- (date)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=model-timestamp]
- ====
- //End model_size_stats
- //Begin node
- [[stats-node]]`node`::
- (object) Contains properties for the node that runs the job. This information is
- available only for open jobs.
- +
- .Properties of `node`
- [%collapsible%open]
- ====
- `attributes`:::
- (object)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=node-attributes]
-
- `ephemeral_id`:::
- (string)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=node-ephemeral-id]
- `id`:::
- (string)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=node-id]
- `name`:::
- (string) The node name.
- `transport_address`:::
- (string)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=node-transport-address]
- ====
- //End node
- `open_time`::
- (string)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=open-time]
- `state`::
- (string)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=state-anomaly-job]
- //Begin timing_stats
- [[timingstats]]`timing_stats`::
- (object) An object that provides statistical information about timing aspect of
- this job.
- +
- .Properties of `timing_stats`
- [%collapsible%open]
- ====
- `average_bucket_processing_time_ms`:::
- (double) Average of all bucket processing times in milliseconds.
- `bucket_count`:::
- (long)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=bucket-count]
- `exponential_average_bucket_processing_time_ms`:::
- (double)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=bucket-time-exponential-average]
- `exponential_average_bucket_processing_time_per_hour_ms`:::
- (double)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=bucket-time-exponential-average-hour]
- `job_id`:::
- (string)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=job-id-anomaly-detection]
- `maximum_bucket_processing_time_ms`:::
- (double)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=bucket-time-maximum]
- `minimum_bucket_processing_time_ms`:::
- (double)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=bucket-time-minimum]
- `total_bucket_processing_time_ms`:::
- (double)
- include::{es-repo-dir}/ml/ml-shared.asciidoc[tag=bucket-time-total]
- ====
- //End timing_stats
- [[ml-get-job-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.
- [[ml-get-job-stats-example]]
- == {api-examples-title}
- [source,console]
- --------------------------------------------------
- GET _ml/anomaly_detectors/low_request_rate/_stats
- --------------------------------------------------
- // TEST[skip:Kibana sample data]
- The API returns the following results:
- [source,js]
- ----
- {
- "count" : 1,
- "jobs" : [
- {
- "job_id" : "low_request_rate",
- "data_counts" : {
- "job_id" : "low_request_rate",
- "processed_record_count" : 1216,
- "processed_field_count" : 1216,
- "input_bytes" : 51678,
- "input_field_count" : 1216,
- "invalid_date_count" : 0,
- "missing_field_count" : 0,
- "out_of_order_timestamp_count" : 0,
- "empty_bucket_count" : 242,
- "sparse_bucket_count" : 0,
- "bucket_count" : 1457,
- "earliest_record_timestamp" : 1575172659612,
- "latest_record_timestamp" : 1580417369440,
- "last_data_time" : 1576017595046,
- "latest_empty_bucket_timestamp" : 1580356800000,
- "input_record_count" : 1216
- },
- "model_size_stats" : {
- "job_id" : "low_request_rate",
- "result_type" : "model_size_stats",
- "model_bytes" : 41480,
- "model_bytes_exceeded" : 0,
- "model_bytes_memory_limit" : 10485760,
- "total_by_field_count" : 3,
- "total_over_field_count" : 0,
- "total_partition_field_count" : 2,
- "bucket_allocation_failures_count" : 0,
- "memory_status" : "ok",
- "categorized_doc_count" : 0,
- "total_category_count" : 0,
- "frequent_category_count" : 0,
- "rare_category_count" : 0,
- "dead_category_count" : 0,
- "failed_category_count" : 0,
- "categorization_status" : "ok",
- "log_time" : 1576017596000,
- "timestamp" : 1580410800000
- },
- "forecasts_stats" : {
- "total" : 1,
- "forecasted_jobs" : 1,
- "memory_bytes" : {
- "total" : 9179.0,
- "min" : 9179.0,
- "avg" : 9179.0,
- "max" : 9179.0
- },
- "records" : {
- "total" : 168.0,
- "min" : 168.0,
- "avg" : 168.0,
- "max" : 168.0
- },
- "processing_time_ms" : {
- "total" : 40.0,
- "min" : 40.0,
- "avg" : 40.0,
- "max" : 40.0
- },
- "status" : {
- "finished" : 1
- }
- },
- "state" : "opened",
- "node" : {
- "id" : "7bmMXyWCRs-TuPfGJJ_yMw",
- "name" : "node-0",
- "ephemeral_id" : "hoXMLZB0RWKfR9UPPUCxXX",
- "transport_address" : "127.0.0.1:9300",
- "attributes" : {
- "ml.machine_memory" : "17179869184",
- "xpack.installed" : "true",
- "ml.max_open_jobs" : "20"
- }
- },
- "assignment_explanation" : "",
- "open_time" : "13s",
- "timing_stats" : {
- "job_id" : "low_request_rate",
- "bucket_count" : 1457,
- "total_bucket_processing_time_ms" : 1094.000000000001,
- "minimum_bucket_processing_time_ms" : 0.0,
- "maximum_bucket_processing_time_ms" : 48.0,
- "average_bucket_processing_time_ms" : 0.75085792724777,
- "exponential_average_bucket_processing_time_ms" : 0.5571716855800993,
- "exponential_average_bucket_processing_time_per_hour_ms" : 15.0
- }
- }
- ]
- }
- ----
|