API для оценки использования памяти моделей задач обнаружения аномалий
Производит оценку использования памяти для модели задачи обнаружения аномалий. Она основана на деталях конфигурации анализа задачи и оценках кардинальности для полей, на которые она ссылается.
Запрос
POST _ml/anomaly_detectors/_estimate_model_memory
Предварительные условия
Требуется привилегия кластера manage_ml. Эта привилегия включена в встроенную роль machine_learning_admin.
Тело запроса
-
analysis_config - (Обязательно, объект) Список свойств, которые вы можете указать в компоненте
analysis_configтела этого API, см.analysis_config. -
max_bucket_cardinality - (Обязательно*, объект) Оценки максимальной кардинальности в отдельном ведре, наблюдаемой для влияющих полей в течение периода времени, когда задача анализирует данные. Для получения правильного ответа необходимо указать значения для всех влияющих полей. Предоставление значений для полей, которые не указаны как
influencers, не влияет на оценку.
*Можно опустить из запроса, если нетinfluencers. -
overall_cardinality - (Обязательно*, объект) Оценки кардинальности, наблюдаемой для полей в течение всего периода времени, когда задача анализирует данные. Для получения правильного ответа необходимо указать значения для полей, на которые ссылаются
by_field_name,over_field_nameиpartition_field_nameлюбого детектора. Предоставление значений для других полей не влияет на оценку.
*Можно опустить из запроса, если ни один детектор не имеетby_field_name,over_field_nameилиpartition_field_name.
Примеры
resp = client.ml.estimate_model_memory(
analysis_config={
"bucket_span": "5m",
"detectors": [
{
"function": "sum",
"field_name": "bytes",
"by_field_name": "status",
"partition_field_name": "app"
}
],
"influencers": [
"source_ip",
"dest_ip"
]
},
overall_cardinality={
"status": 10,
"app": 50
},
max_bucket_cardinality={
"source_ip": 300,
"dest_ip": 30
},
)
print(resp) response = client.ml.estimate_model_memory(
body: {
analysis_config: {
bucket_span: '5m',
detectors: [
{
function: 'sum',
field_name: 'bytes',
by_field_name: 'status',
partition_field_name: 'app'
}
],
influencers: [
'source_ip',
'dest_ip'
]
},
overall_cardinality: {
status: 10,
app: 50
},
max_bucket_cardinality: {
source_ip: 300,
dest_ip: 30
}
}
)
puts response const response = await client.ml.estimateModelMemory({
analysis_config: {
bucket_span: "5m",
detectors: [
{
function: "sum",
field_name: "bytes",
by_field_name: "status",
partition_field_name: "app",
},
],
influencers: ["source_ip", "dest_ip"],
},
overall_cardinality: {
status: 10,
app: 50,
},
max_bucket_cardinality: {
source_ip: 300,
dest_ip: 30,
},
});
console.log(response); POST _ml/anomaly_detectors/_estimate_model_memory
{
"analysis_config": {
"bucket_span": "5m",
"detectors": [
{
"function": "sum",
"field_name": "bytes",
"by_field_name": "status",
"partition_field_name": "app"
}
],
"influencers": [ "source_ip", "dest_ip" ]
},
"overall_cardinality": {
"status": 10,
"app": 50
},
"max_bucket_cardinality": {
"source_ip": 300,
"dest_ip": 30
}
} Оценочный ответ содержит следующее:
{
"model_memory_estimate": "21mb"
}
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/ml-estimate-model-memory.html