估算异常检测作业模型内存 API

编辑

对异常检测作业模型的内存使用情况进行估算。它基于作业的分析配置详细信息以及它引用的字段的基数估算。

请求

编辑

POST _ml/anomaly_detectors/_estimate_model_memory

先决条件

编辑

需要 manage_ml 集群权限。此权限包含在 machine_learning_admin 内置角色中。

请求正文

编辑
analysis_config
(必需,对象)有关可以在此 API 的正文的 analysis_config 组件中指定的属性列表,请参阅 analysis_config
max_bucket_cardinality
(必需*,对象)在作业分析数据的时间段内,对于影响因子字段观察到的单个存储桶中的最高基数的估算值。为了产生好的结果,必须为所有影响因子字段提供值。为未列为 influencers 的字段提供值对估算没有影响。
*如果没有任何 influencers,则可以从请求中省略。
overall_cardinality
(必需*,对象)在作业分析数据的整个时间段内,对于字段观察到的基数的估算值。为了产生好的结果,必须为任何检测器的 by_field_nameover_field_namepartition_field_name 中引用的字段提供值。为其他字段提供值对估算没有影响。
*如果没有任何检测器具有 by_field_nameover_field_namepartition_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"
}