-->

Update jobs API

Updates certain properties of a job.

Request

POST _ml/anomaly_detectors/<job_id>/_update

Path Parameters

job_id (required)
(string) Identifier for the job

Request Body

The following properties can be updated after the job is created:

Name Description Requires Restart

analysis_limits: model_memory_limit

The approximate maximum amount of memory resources required for analytical processing. See Analysis Limits.

Yes

background_persist_interval

Advanced configuration option. The time between each periodic persistence of the model. See Job resources.

Yes

custom_settings

Contains custom meta data about the job.

No

description

A description of the job. See Job resources.

No

detectors

An array of detector update objects.

No

groups

A list of job groups. See Job resources.

No

model_plot_config: enabled

If true, enables calculation and storage of the model bounds for each entity that is being analyzed. See Model Plot Config.

No

model_snapshot_retention_days

The time in days that model snapshots are retained for the job. See Job resources.

Yes

renormalization_window_days

Advanced configuration option. The period over which adjustments to the score are applied, as new data is seen. See Job resources.

Yes

results_retention_days

Advanced configuration option. The number of days for which job results are retained. See Job resources.

Yes

For those properties that have Requires Restart set to Yes in this table, if the job is open when you make the update, you must stop the data feed, close the job, then restart the data feed and open the job for the changes to take effect.

Note
  • You can update the analysis_limits only while the job is closed.
  • The model_memory_limit property value cannot be decreased below the current usage.
  • If the memory_status property in the model_size_stats object has a value of hard_limit, this means that it was unable to process some data. You might want to re-run this job with an increased model_memory_limit.

Detector Update Objects

A detector update object has the following properties:

detector_index
(integer) The identifier of the detector to update.
description
(string) The new description for the detector.
custom_rules
(array) The new list of rules for the detector.

No other detector property can be updated.

Authorization

You must have manage_ml, or manage cluster privileges to use this API. For more information, see Security Privileges.

Examples

The following example updates the total-requests job:

POST _ml/anomaly_detectors/total-requests/_update
{
  "description":"An updated job",
  "groups": ["group1","group2"],
  "model_plot_config": {
    "enabled": true
  },
  "analysis_limits": {
    "model_memory_limit": "1024mb"
  },
  "renormalization_window_days": 30,
  "background_persist_interval": "2h",
  "model_snapshot_retention_days": 7,
  "results_retention_days": 60,
  "custom_settings": {
    "custom_urls" : [{
      "url_name" : "Lookup IP",
      "url_value" : "http://geoiplookup.net/ip/$clientip$"
    }]
  }
}

When the job is updated, you receive a summary of the job configuration information, including the updated property values. For example:

{
  "job_id": "total-requests",
  "job_type": "anomaly_detector",
  "job_version": "7.0.0-alpha1",
  "groups": [
    "group1",
    "group2"
  ],
  "description": "An updated job",
  "create_time": 1518808660505,
  "analysis_config": {
    "bucket_span": "10m",
    "detectors": [
      {
        "detector_description": "Sum of total",
        "function": "sum",
        "field_name": "total",
        "detector_index": 0
      }
    ],
    "influencers": []
  },
  "analysis_limits": {
    "model_memory_limit": "1024mb",
    "categorization_examples_limit": 4
  },
  "data_description": {
    "time_field": "timestamp",
    "time_format": "epoch_ms"
  },
  "model_plot_config": {
    "enabled": true
  },
  "renormalization_window_days": 30,
  "background_persist_interval": "2h",
  "model_snapshot_retention_days": 7,
  "results_retention_days": 60,
  "custom_settings": {
    "custom_urls": [
      {
        "url_name": "Lookup IP",
        "url_value": "http://geoiplookup.net/ip/$clientip$"
      }
    ]
  },
  "results_index_name": "shared"
}