Stop rollup jobs API

edit

Stops an existing, started rollup job.

This functionality is in technical preview and may be changed or removed in a future release. Elastic will work to fix any issues, but features in technical preview are not subject to the support SLA of official GA features.

For version 8.5 and above we recommend downsampling over rollups as a way to reduce your storage costs for time series data.

Request

edit

POST _rollup/job/<job_id>/_stop

Prerequisites

edit
  • If the Elasticsearch security features are enabled, you must have manage or manage_rollup cluster privileges to use this API. For more information, see Security privileges.

Description

edit

If you try to stop a job that does not exist, an exception occurs. If you try to stop a job that is already stopped, nothing happens.

Path parameters

edit
<job_id>
(Required, string) Identifier for the rollup job.

Query parameters

edit
timeout

(Optional, TimeValue) If wait_for_completion is true, the API blocks for (at maximum) the specified duration while waiting for the job to stop. If more than timeout time has passed, the API throws a timeout exception. Defaults to 30s.

Even if a timeout exception is thrown, the stop request is still processing and eventually moves the job to STOPPED. The timeout simply means the API call itself timed out while waiting for the status change.

wait_for_completion
(Optional, Boolean) If set to true, causes the API to block until the indexer state completely stops. If set to false, the API returns immediately and the indexer is stopped asynchronously in the background. Defaults to false.

Response codes

edit
404 (Missing resources)
This code indicates that there are no resources that match the request. It occurs if you try to stop a job that doesn’t exist.

Examples

edit

Since only a stopped job can be deleted, it can be useful to block the API until the indexer has fully stopped. This is accomplished with the wait_for_completion query parameter, and optionally a timeout:

response = client.rollup.stop_job(
  id: 'sensor',
  wait_for_completion: true,
  timeout: '10s'
)
puts response
POST _rollup/job/sensor/_stop?wait_for_completion=true&timeout=10s

The parameter blocks the API call from returning until either the job has moved to STOPPED or the specified time has elapsed. If the specified time elapses without the job moving to STOPPED, a timeout exception is thrown.