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

Python

  1. resp = client.ml.estimate_model_memory(
  2. analysis_config={
  3. "bucket_span": "5m",
  4. "detectors": [
  5. {
  6. "function": "sum",
  7. "field_name": "bytes",
  8. "by_field_name": "status",
  9. "partition_field_name": "app"
  10. }
  11. ],
  12. "influencers": [
  13. "source_ip",
  14. "dest_ip"
  15. ]
  16. },
  17. overall_cardinality={
  18. "status": 10,
  19. "app": 50
  20. },
  21. max_bucket_cardinality={
  22. "source_ip": 300,
  23. "dest_ip": 30
  24. },
  25. )
  26. print(resp)

Ruby

  1. response = client.ml.estimate_model_memory(
  2. body: {
  3. analysis_config: {
  4. bucket_span: '5m',
  5. detectors: [
  6. {
  7. function: 'sum',
  8. field_name: 'bytes',
  9. by_field_name: 'status',
  10. partition_field_name: 'app'
  11. }
  12. ],
  13. influencers: [
  14. 'source_ip',
  15. 'dest_ip'
  16. ]
  17. },
  18. overall_cardinality: {
  19. status: 10,
  20. app: 50
  21. },
  22. max_bucket_cardinality: {
  23. source_ip: 300,
  24. dest_ip: 30
  25. }
  26. }
  27. )
  28. puts response

Js

  1. const response = await client.ml.estimateModelMemory({
  2. analysis_config: {
  3. bucket_span: "5m",
  4. detectors: [
  5. {
  6. function: "sum",
  7. field_name: "bytes",
  8. by_field_name: "status",
  9. partition_field_name: "app",
  10. },
  11. ],
  12. influencers: ["source_ip", "dest_ip"],
  13. },
  14. overall_cardinality: {
  15. status: 10,
  16. app: 50,
  17. },
  18. max_bucket_cardinality: {
  19. source_ip: 300,
  20. dest_ip: 30,
  21. },
  22. });
  23. console.log(response);

コンソール

  1. POST _ml/anomaly_detectors/_estimate_model_memory
  2. {
  3. "analysis_config": {
  4. "bucket_span": "5m",
  5. "detectors": [
  6. {
  7. "function": "sum",
  8. "field_name": "bytes",
  9. "by_field_name": "status",
  10. "partition_field_name": "app"
  11. }
  12. ],
  13. "influencers": [ "source_ip", "dest_ip" ]
  14. },
  15. "overall_cardinality": {
  16. "status": 10,
  17. "app": 50
  18. },
  19. "max_bucket_cardinality": {
  20. "source_ip": 300,
  21. "dest_ip": 30
  22. }
  23. }

推定は次の結果を返します:

コンソール-結果

  1. {
  2. "model_memory_estimate": "21mb"
  3. }