Estimate job model memory usage
- POST /_ml/anomaly_detectors/_estimate_model_memory
Make an estimation of the memory usage for an anomaly detection job model. The estimate is based on analysis configuration details for the job and cardinality estimates for the fields it references.
Required privileges
- Cluster privileges manage_ml
Request body
-
analysis_configobject -
For a list of the properties that you can specify in the
analysis_configcomponent of the body of this API. -
bucket_spanunion oneOf · default: 5m -
The size of the interval that the analysis is aggregated into, typically between
5mand1h. This value should be either a whole number of days or equate to a whole number of buckets in one day. If the anomaly detection job uses a datafeed with aggregations, this value must also be divisible by the interval of the date histogram aggregation. -
Values:
-10 -
categorization_analyzerunion oneOf -
If
categorization_field_nameis specified, you can also define the analyzer that is used to interpret the categorization field. This property cannot be used at the same time ascategorization_filters. The categorization analyzer specifies how thecategorization_fieldis interpreted by the categorization process. Thecategorization_analyzerfield can be specified either as a string or as an object. If it is a string, it must refer to a built-in analyzer or one added by another plugin. - One of:
-
char_filterunion oneOf[] -
One or more character filters. In addition to the built-in character filters, other plugins can provide more character filters. If this property is not specified, no character filters are applied prior to categorization. If you are customizing some other aspect of the analyzer and you need to achieve the equivalent of
categorization_filters(which are not permitted when some other aspect of the analyzer is customized), add them here as pattern replace character filters. - One of:
-
filterunion oneOf[] -
One or more token filters. In addition to the built-in token filters, other plugins can provide more token filters. If this property is not specified, no token filters are applied prior to categorization.
- One of:
-
common_wordsstring[] -
A list of tokens. The filter generates bigrams for these tokens. Either this or the
common_words_pathparameter is required. -
common_words_pathstring -
Path to a file containing a list of tokens. The filter generates bigrams for these tokens. This path must be absolute or relative to the
configlocation. The file must be UTF-8 encoded. Each token in the file must be separated by a line break. Either this or thecommon_wordsparameter is required. -
articlesstring[] -
List of elisions to remove. To be removed, the elision must be at the beginning of a token and be immediately followed by an apostrophe. Both the elision and apostrophe are removed. For custom
elisionfilters, either this parameter orarticles_pathmust be specified. -
articles_pathstring -
Path to a file that contains a list of elisions to remove. This path must be absolute or relative to the
configlocation, and the file must be UTF-8 encoded. Each elision in the file must be separated by a line break. To be removed, the elision must be at the beginning of a token and be immediately followed by an apostrophe. Both the elision and apostrophe are removed. For customelisionfilters, either this parameter orarticlesmust be specified. -
max_subword_sizenumber -
Maximum subword character length. Longer subword tokens are excluded from the output. Defaults to
15. -
min_subword_sizenumber -
Minimum subword character length. Shorter subword tokens are excluded from the output. Defaults to
2. -
min_word_sizenumber -
Minimum word character length. Shorter word tokens are excluded from the output. Defaults to
5. -
word_liststring[] -
A list of subwords to look for in the token stream. If found, the subword is included in the token output. Either this parameter or
word_list_pathmust be specified. -
word_list_pathstring -
Path to a file that contains a list of subwords to find in the token stream. If found, the subword is included in the token output. This path must be absolute or relative to the config location, and the file must be UTF-8 encoded. Each token in the file must be separated by a line break. Either this parameter or
word_listmust be specified. -
hyphenation_patterns_pathstringrequired -
Path to an Apache FOP (Formatting Objects Processor) XML hyphenation pattern file. This path must be absolute or relative to the
configlocation. Only FOP v1.2 compatible files are supported. -
keep_wordsstring[] -
List of words to keep. Only tokens that match words in this list are included in the output. Either this parameter or
keep_words_pathmust be specified. -
keep_words_pathstring -
Path to a file that contains a list of words to keep. Only tokens that match words in this list are included in the output. This path must be absolute or relative to the
configlocation, and the file must be UTF-8 encoded. Each word in the file must be separated by a line break. Either this parameter orkeep_wordsmust be specified. -
ignore_caseboolean -
If
true, matching for thekeywordsandkeywords_pathparameters ignores letter case. Defaults tofalse. -
keywordsunion string | string[] -
Array of keywords. Tokens that match these keywords are not stemmed. This parameter,
keywords_path, orkeywords_patternmust be specified. You cannot specify this parameter andkeywords_pattern. -
keywords_pathstring -
Path to a file that contains a list of keywords. Tokens that match these keywords are not stemmed. This path must be absolute or relative to the
configlocation, and the file must be UTF-8 encoded. Each word in the file must be separated by a line break. This parameter,keywords, orkeywords_patternmust be specified. You cannot specify this parameter andkeywords_pattern. -
filler_tokenstring -
String used in shingles as a replacement for empty positions that do not contain a token. This filler token is only used in shingles, not original unigrams. Defaults to an underscore (
_). -
max_shingle_sizenumber | string -
Maximum number of tokens to concatenate when creating shingles. Defaults to
2. -
min_shingle_sizenumber | string -
Minimum number of tokens to concatenate when creating shingles. Defaults to
2. -
output_unigramsboolean -
If
true, the output includes the original input tokens. Iffalse, the output only includes shingles; the original input tokens are removed. Defaults totrue. -
ignore_caseboolean -
If
true, stop word matching is case insensitive. For example, iftrue, a stop word of the matches and removesThe,THE, orthe. Defaults tofalse. -
remove_trailingboolean -
If
true, the last token of a stream is removed if it’s a stop word. Defaults totrue. -
stopwordsunion oneOf -
Language value, such as
_arabic_or_thai_. Defaults to_english_. -
Values:
_arabic__armenian__basque__bengali__brazilian__bulgarian__catalan__cjk__czech__danish__dutch__english__estonian__finnish__french__galician__german__greek__hindi__hungarian__indonesian__irish__italian__latvian__lithuanian__norwegian__persian__portuguese__romanian__russian__serbian__sorani__spanish__swedish__thai__turkish__none_ -
lenientboolean -
If
trueignores errors while parsing the synonym rules. It is important to note that only those synonym rules which cannot get parsed are ignored. Defaults to the value of theupdateablesetting. -
synonyms_pathstring -
Used to provide a synonym file. This path must be absolute or relative to the
configlocation. -
lenientboolean -
If
trueignores errors while parsing the synonym rules. It is important to note that only those synonym rules which cannot get parsed are ignored. Defaults to the value of theupdateablesetting. -
synonyms_pathstring -
Used to provide a synonym file. This path must be absolute or relative to the
configlocation. -
catenate_allboolean -
If
true, the filter produces catenated tokens for chains of alphanumeric characters separated by non-alphabetic delimiters. Defaults tofalse. -
catenate_numbersboolean -
If
true, the filter produces catenated tokens for chains of numeric characters separated by non-alphabetic delimiters. Defaults tofalse. -
catenate_wordsboolean -
If
true, the filter produces catenated tokens for chains of alphabetical characters separated by non-alphabetic delimiters. Defaults tofalse. -
generate_number_partsboolean -
If
true, the filter includes tokens consisting of only numeric characters in the output. Iffalse, the filter excludes these tokens from the output. Defaults totrue. -
generate_word_partsboolean -
If
true, the filter includes tokens consisting of only alphabetical characters in the output. Iffalse, the filter excludes these tokens from the output. Defaults totrue. -
preserve_originalboolean | string -
If
true, the filter includes the original version of any split tokens in the output. This original version includes non-alphanumeric delimiters. Defaults tofalse. -
protected_words_pathstring -
Path to a file that contains a list of tokens the filter won’t split. This path must be absolute or relative to the
configlocation, and the file must be UTF-8 encoded. Each token in the file must be separated by a line break. -
split_on_case_changeboolean -
If
true, the filter splits tokens at letter case transitions. For example: camelCase -> [ camel, Case ]. Defaults totrue. -
split_on_numericsboolean -
If
true, the filter splits tokens at letter-number transitions. For example: j2se -> [ j, 2, se ]. Defaults totrue. -
stem_english_possessiveboolean -
If
true, the filter removes the English possessive ('s) from the end of each token. For example: O'Neil's -> [ O, Neil ]. Defaults totrue. -
type_tablestring[] -
Array of custom type mappings for characters. This allows you to map non-alphanumeric characters as numeric or alphanumeric to avoid splitting on those characters.
-
type_table_pathstring -
Path to a file that contains custom type mappings for characters. This allows you to map non-alphanumeric characters as numeric or alphanumeric to avoid splitting on those characters.
-
catenate_allboolean -
If
true, the filter produces catenated tokens for chains of alphanumeric characters separated by non-alphabetic delimiters. Defaults tofalse. -
catenate_numbersboolean -
If
true, the filter produces catenated tokens for chains of numeric characters separated by non-alphabetic delimiters. Defaults tofalse. -
catenate_wordsboolean -
If
true, the filter produces catenated tokens for chains of alphabetical characters separated by non-alphabetic delimiters. Defaults tofalse. -
generate_number_partsboolean -
If
true, the filter includes tokens consisting of only numeric characters in the output. Iffalse, the filter excludes these tokens from the output. Defaults totrue. -
generate_word_partsboolean -
If
true, the filter includes tokens consisting of only alphabetical characters in the output. Iffalse, the filter excludes these tokens from the output. Defaults totrue. -
preserve_originalboolean | string -
If
true, the filter includes the original version of any split tokens in the output. This original version includes non-alphanumeric delimiters. Defaults tofalse. -
protected_words_pathstring -
Path to a file that contains a list of tokens the filter won’t split. This path must be absolute or relative to the
configlocation, and the file must be UTF-8 encoded. Each token in the file must be separated by a line break. -
split_on_case_changeboolean -
If
true, the filter splits tokens at letter case transitions. For example: camelCase -> [ camel, Case ]. Defaults totrue. -
split_on_numericsboolean -
If
true, the filter splits tokens at letter-number transitions. For example: j2se -> [ j, 2, se ]. Defaults totrue. -
stem_english_possessiveboolean -
If
true, the filter removes the English possessive ('s) from the end of each token. For example: O'Neil's -> [ O, Neil ]. Defaults totrue. -
stopwordsunion oneOf -
Values:
_arabic__armenian__basque__bengali__brazilian__bulgarian__catalan__cjk__czech__danish__dutch__english__estonian__finnish__french__galician__german__greek__hindi__hungarian__indonesian__irish__italian__latvian__lithuanian__norwegian__persian__portuguese__romanian__russian__serbian__sorani__spanish__swedish__thai__turkish__none_ -
max_subword_sizenumber -
Maximum subword character length. Longer subword tokens are excluded from the output. Defaults to
15. -
min_subword_sizenumber -
Minimum subword character length. Shorter subword tokens are excluded from the output. Defaults to
2. -
min_word_sizenumber -
Minimum word character length. Shorter word tokens are excluded from the output. Defaults to
5. -
word_liststring[] -
A list of subwords to look for in the token stream. If found, the subword is included in the token output. Either this parameter or
word_list_pathmust be specified. -
word_list_pathstring -
Path to a file that contains a list of subwords to find in the token stream. If found, the subword is included in the token output. This path must be absolute or relative to the config location, and the file must be UTF-8 encoded. Each token in the file must be separated by a line break. Either this parameter or
word_listmust be specified. -
tokenizerunion oneOf -
The name or definition of the tokenizer to use after character filters are applied. This property is compulsory if
categorization_analyzeris specified as an object. Machine learning provides a tokenizer calledml_standardthat tokenizes in a way that has been determined to produce good categorization results on a variety of log file formats for logs in English. If you want to use that tokenizer but change the character or token filters, specify "tokenizer": "ml_standard" in yourcategorization_analyzer. Additionally, theml_classictokenizer is available, which tokenizes in the same way as the non-customizable tokenizer in old versions of the product (before 6.2).ml_classicwas the default categorization tokenizer in versions 6.2 to 7.13, so if you need categorization identical to the default for jobs created in these versions, specify "tokenizer": "ml_classic" in yourcategorization_analyzer. - One of:
- Reference
-
categorization_field_namestring -
If this property is specified, the values of the specified field will be categorized. The resulting categories must be used in a detector by setting
by_field_name,over_field_name, orpartition_field_nameto the keywordmlcategory. -
categorization_filtersstring[] -
If
categorization_field_nameis specified, you can also define optional filters. This property expects an array of regular expressions. The expressions are used to filter out matching sequences from the categorization field values. You can use this functionality to fine tune the categorization by excluding sequences from consideration when categories are defined. For example, you can exclude SQL statements that appear in your log files. This property cannot be used at the same time ascategorization_analyzer. If you only want to define simple regular expression filters that are applied prior to tokenization, setting this property is the easiest method. If you also want to customize the tokenizer or post-tokenization filtering, use thecategorization_analyzerproperty instead and include the filters as pattern_replace character filters. The effect is exactly the same. -
detectorsobject[]required -
Detector configuration objects specify which data fields a job analyzes. They also specify which analytical functions are used. You can specify multiple detectors for a job. If the detectors array does not contain at least one detector, no analysis can occur and an error is returned.
-
by_field_namestring -
The field used to split the data. In particular, this property is used for analyzing the splits with respect to their own history. It is used for finding unusual values in the context of the split.
-
custom_rulesobject[] -
Custom rules enable you to customize the way detectors operate. For example, a rule may dictate conditions under which results should be skipped. Kibana refers to custom rules as job rules.
-
actionsenum[] · default: ["skip_result"] -
The set of actions to be triggered when the rule applies. If more than one action is specified the effects of all actions are combined.
Supported values include:
skip_result: The result will not be created. Unless you also specifyskip_model_update, the model will be updated as usual with the corresponding series value.skip_model_update: The value for that series will not be used to update the model. Unless you also specifyskip_result, the results will be created as usual. This action is suitable when certain values are expected to be consistently anomalous and they affect the model in a way that negatively impacts the rest of the results.
-
Values:
skip_resultskip_model_update -
conditionsobject[] -
An array of numeric conditions when the rule applies. A rule must either have a non-empty scope or at least one condition. Multiple conditions are combined together with a logical AND.
-
scopemap string to object -
A scope of series where the rule applies. A rule must either have a non-empty scope or at least one condition. By default, the scope includes all series. Scoping is allowed for any of the fields that are also specified in
by_field_name,over_field_name, orpartition_field_name. -
detector_indexnumber -
A unique identifier for the detector. This identifier is based on the order of the detectors in the
analysis_config, starting at zero. If you specify a value for this property, it is ignored. -
exclude_frequentenum -
If set, frequent entities are excluded from influencing the anomaly results. Entities can be considered frequent over time or frequent in a population. If you are working with both over and by fields, you can set
exclude_frequenttoallfor both fields, or tobyoroverfor those specific fields. -
Values:
allnonebyover -
field_namestring -
The field that the detector uses in the function. If you use an event rate function such as count or rare, do not specify this field. The
field_namecannot contain double quotes or backslashes. -
functionstring -
The analysis function that is used. For example,
count,rare,mean,min,max, orsum. -
over_field_namestring -
The field used to split the data. In particular, this property is used for analyzing the splits with respect to the history of all splits. It is used for finding unusual values in the population of all splits.
-
influencersstring[] -
A comma separated list of influencer field names. Typically these can be the by, over, or partition fields that are used in the detector configuration. You might also want to use a field name that is not specifically named in a detector, but is available as part of the input data. When you use multiple detectors, the use of influencers is recommended as it aggregates results for each influencer entity.
-
latencyunion oneOf · default: 0 -
The size of the window in which to expect data that is out of time order. If you specify a non-zero value, it must be greater than or equal to one second. NOTE: Latency is applicable only when you send data by using the post data API.
-
Values:
-10 -
model_prune_windowunion oneOf -
Advanced configuration option. Affects the pruning of models that have not been updated for the given time duration. The value must be set to a multiple of the
bucket_span. If set too low, important information may be removed from the model. For jobs created in 8.1 and later, the default value is the greater of30dor 20 timesbucket_span. -
Values:
-10 -
multivariate_by_fieldsboolean -
This functionality is reserved for internal use. It is not supported for use in customer environments and is not subject to the support SLA of official GA features. If set to
true, the analysis will automatically find correlations between metrics for a given by field value and report anomalies when those correlations cease to hold. For example, suppose CPU and memory usage on host A is usually highly correlated with the same metrics on host B. Perhaps this correlation occurs because they are running a load-balanced application. If you enable this property, anomalies will be reported when, for example, CPU usage on host A is high and the value of CPU usage on host B is low. That is to say, you’ll see an anomaly when the CPU of host A is unusual given the CPU of host B. To use themultivariate_by_fieldsproperty, you must also specifyby_field_namein your detector. -
per_partition_categorizationobject -
Settings related to how categorization interacts with partition fields.
-
enabledboolean -
To enable this setting, you must also set the
partition_field_nameproperty to the same value in every detector that uses the keywordmlcategory. Otherwise, job creation fails. -
stop_on_warnboolean -
This setting can be set to true only if per-partition categorization is enabled. If true, both categorization and subsequent anomaly detection stops for partitions where the categorization status changes to warn. This setting makes it viable to have a job where it is expected that categorization works well for some partitions but not others; you do not pay the cost of bad categorization forever in the partitions where it works badly.
-
summary_count_field_namestring -
If this property is specified, the data that is fed to the job is expected to be pre-summarized. This property value is the name of the field that contains the count of raw data points that have been summarized. The same
summary_count_field_nameapplies to all detectors in the job. NOTE: Thesummary_count_field_nameproperty cannot be used with themetricfunction. -
max_bucket_cardinalitymap string to number -
Estimates of the highest cardinality in a single bucket that is observed for influencer fields over the time period that the job analyzes data. To produce a good answer, values must be provided for all influencer fields. Providing values for fields that are not listed as
influencershas no effect on the estimation. -
overall_cardinalitymap string to number -
Estimates of the cardinality that is observed for fields over the whole time period that the job analyzes data. To produce a good answer, values must be provided for fields referenced in the
by_field_name,over_field_nameandpartition_field_nameof any detectors. Providing values for other fields has no effect on the estimation. It can be omitted from the request if no detectors have aby_field_name,over_field_nameorpartition_field_name.
type: mapping
type: pattern_replace
type: icu_normalizer
type: asciifolding
type: cjk_bigram
type: common_grams
type: condition
type: delimited_payload
type: edge_ngram
type: elision
type: fingerprint
type: hunspell
type: hyphenation_decompounder
type: keep_types
type: keep
type: keyword_marker
type: length
type: limit
type: lowercase
type: min_hash
type: multiplexer
type: ngram
type: nori_part_of_speech
type: pattern_capture
type: pattern_replace
type: predicate_token_filter
type: scandinavian_normalization
type: shingle
type: snowball
type: stemmer_override
type: stop
type: synonym_graph
type: synonym
type: truncate
type: unique
type: word_delimiter_graph
type: word_delimiter
type: ja_stop
type: kuromoji_stemmer
type: kuromoji_readingform
type: kuromoji_part_of_speech
type: icu_collation
type: icu_folding
type: icu_normalizer
type: icu_transform
type: phonetic
type: dictionary_decompounder
type: char_group
type: edge_ngram
type: ngram
type: path_hierarchy
type: pattern
type: simple_pattern_split
type: icu_tokenizer
type: kuromoji_tokenizer