異常検出ジョブモデルのメモリ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_name
、over_field_name
、およびpartition_field_name
で参照されるフィールドに対して値を提供する必要があります。他のフィールドに対して値を提供しても、推定には影響しません。by_field_name
、over_field_name
、またはpartition_field_name
を持つ検出器がない場合は、リクエストから省略できます。
例
Python
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)
Ruby
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
Js
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"
}