モデルスナップショットAPI

モデルスナップショットに関する情報を取得します。

リクエスト

GET _ml/anomaly_detectors/<job_id>/model_snapshots

GET _ml/anomaly_detectors/<job_id>/model_snapshots/<snapshot_id>

前提条件

monitor_ml クラスター権限が必要です。この権限は machine_learning_user ビルトインロールに含まれています。

パスパラメータ

  • <job_id>
  • (必須、文字列) 異常検出ジョブの識別子。
  • <snapshot_id>
  • (オプション、文字列) モデルスナップショットの識別子。
    カンマ区切りのリストまたはワイルドカード式を使用して、複数のスナップショットの情報を取得できます。 _all を使用してすべてのスナップショットを取得するか、スナップショットIDとして * を指定するか、スナップショットIDを省略することで取得できます。

クエリパラメータ

  • desc
  • (オプション、Boolean) true の場合、結果は降順にソートされます。デフォルトは false です。
  • end
  • (オプション、日付) この時刻よりも早いタイムスタンプのスナップショットを返します。デフォルトは未設定で、特定のタイムスタンプに結果は制限されません。
  • from
  • (オプション、整数) 指定された数のスナップショットをスキップします。デフォルトは 0 です。
  • size
  • (オプション、整数) 取得するスナップショットの最大数を指定します。デフォルトは 100 です。
  • sort
  • (オプション、文字列) リクエストされたスナップショットのソートフィールドを指定します。デフォルトでは、スナップショットはそのタイムスタンプでソートされます。
  • start
  • (オプション、文字列) この時刻以降のタイムスタンプを持つスナップショットを返します。デフォルトは未設定で、特定のタイムスタンプに結果は制限されません。

リクエストボディ

リクエストボディ内でクエリパラメータを指定することもできます。例外は fromsize で、代わりに page を使用します:

  • page
  • page のプロパティ
    • from
    • (オプション、整数) 指定された数のスナップショットをスキップします。デフォルトは 0 です。
    • size
    • (オプション、整数) 取得するスナップショットの最大数を指定します。デフォルトは 100 です。

レスポンスボディ

APIは、次のプロパティを持つモデルスナップショットオブジェクトの配列を返します:

  • description
  • (文字列) ジョブのオプションの説明。
  • job_id
  • (文字列) スナップショットが作成されたジョブを一意に識別する数値文字列。
  • latest_record_time_stamp
  • (日付) 最新の処理済みレコードのタイムスタンプ。
  • latest_result_time_stamp
  • (日付) 最新のバケット結果のタイムスタンプ。
  • min_version
  • (文字列) モデルスナップショットを復元するために必要な最小の機械学習構成バージョン番号。

Elasticsearch 8.10.0 以降、機械学習プラグインの構成と状態の変更を追跡するために新しいバージョン番号が使用されます。この新しいバージョン番号は製品バージョンから切り離されており、独立して増加します。 min_version の値は新しいバージョン番号を表します。

  • model_size_stats
  • (オブジェクト) モデルを説明する要約情報。
    model_size_stats のプロパティ
    • assignment_memory_basis
    • (文字列) ジョブが実行される場所を決定するために使用されるメモリ要件を見つける場所を示します。可能な値は:
      • model_memory_limit: ジョブのメモリ要件は、そのモデルメモリが model_memory_limit に指定された値に成長することを前提に計算されます。
      • current_model_bytes: ジョブのメモリ要件は、その現在のモデルメモリサイズが将来の良い反映であると仮定して計算されます。
      • peak_model_bytes: ジョブのメモリ要件は、そのピークモデルメモリサイズが将来のモデルサイズの良い反映であると仮定して計算されます。
    • bucket_allocation_failures_count
    • (長整数) メモリ制限の制約により処理されなかったエンティティのバケット数。
    • categorized_doc_count
    • (長整数) フィールドが分類されたドキュメントの数。
    • categorization_status
    • (文字列) このジョブの分類のステータス。次のいずれかの値を含みます。
      • ok: 分類は受け入れられるレベルで実行されています(または全く使用されていません)。
      • warn: 分類は、入力データが分類に不適切であることを示唆するカテゴリの分布を検出しています。問題は、カテゴリが1つしかない、90%以上のカテゴリが希少である、カテゴリの数が分類されたドキュメントの数の50%以上である、頻繁に一致するカテゴリがない、または50%以上のカテゴリが死んでいることです。
    • dead_category_count
    • (長整数) 他のカテゴリの定義が死んだカテゴリのスーパーセットを作るため、再度割り当てられることがない分類によって作成されたカテゴリの数。 (死んだカテゴリは、分類が事前にトレーニングされていないことの副作用です。)
    • failed_category_count
    • (長整数) 分類が新しいカテゴリを作成したいと考えた回数ですが、ジョブが model_memory_limit に達したためにできなかった回数。このカウントは、どの特定のカテゴリが作成できなかったかを追跡しません。したがって、この値を使用して見逃されたユニークなカテゴリの数を特定することはできません。
    • frequent_category_count
    • (長整数) 分類されたドキュメントの1%以上に一致するカテゴリの数。
    • job_id
    • (文字列) 異常検出ジョブの識別子。
    • log_time
    • (日付) model_size_stats が記録されたタイムスタンプ、サーバー時間に従います。
    • memory_status
    • (文字列) model_memory_limit に関連するメモリのステータス。次のいずれかの値を含みます。
      • hard_limit: 内部モデルは設定されたメモリ制限よりも多くのスペースを必要とします。一部の受信データは処理できませんでした。
      • ok: 内部モデルは設定された値を下回りました。
      • soft_limit: 内部モデルは設定されたメモリ制限の60%以上を必要とし、スペースを回収するためにより積極的なプルーニングが行われます。
    • model_bytes
    • (長整数) この分析に必要なメモリリソースの近似値。
    • model_bytes_exceeded
    • (長整数) 最後の割り当て失敗時のメモリ使用量の高い制限を超えたバイト数。
    • model_bytes_memory_limit
    • (長整数) メモリ使用量の上限、増加する値でチェックされます。
    • peak_model_bytes
    • (長整数) モデルメモリ使用量の最高記録値。
    • rare_category_count
    • (長整数) ちょうど1つの分類されたドキュメントに一致するカテゴリの数。
    • result_type
    • (文字列) 内部。 この値は常に model_size_stats です。
    • timestamp
    • (日付) model_size_stats が記録されたタイムスタンプ、データのバケットタイムスタンプに従います。
    • total_by_field_count
    • (長整数) 分析されたフィールド値の数。これらは各検出器とパーティションごとに別々にカウントされることに注意してください。
    • total_category_count
    • (長整数) 分類によって作成されたカテゴリの数。
    • total_over_field_count
    • (長整数) 分析されたフィールド値の数。これらは各検出器とパーティションごとに別々にカウントされることに注意してください。
    • total_partition_field_count
    • (長整数) 分析されたパーティションフィールド値の数。
  • retain
  • (Boolean) true の場合、このスナップショットは model_snapshot_retention_days より古いスナップショットの自動クリーンアップ中に削除されません。ただし、このスナップショットはジョブが削除されると削除されます。デフォルト値は false です。
  • snapshot_id
  • (文字列) モデルスナップショットを一意に識別する数値文字列。例えば: \

Python

  1. resp = client.ml.get_model_snapshots(
  2. job_id="high_sum_total_sales",
  3. start="1575402236000",
  4. )
  5. print(resp)

Ruby

  1. response = client.ml.get_model_snapshots(
  2. job_id: 'high_sum_total_sales',
  3. body: {
  4. start: '1575402236000'
  5. }
  6. )
  7. puts response

Js

  1. const response = await client.ml.getModelSnapshots({
  2. job_id: "high_sum_total_sales",
  3. start: 1575402236000,
  4. });
  5. console.log(response);

コンソール

  1. GET _ml/anomaly_detectors/high_sum_total_sales/model_snapshots
  2. {
  3. "start": "1575402236000"
  4. }

この例では、APIは単一の結果を提供します:

Js

  1. {
  2. "count" : 1,
  3. "model_snapshots" : [
  4. {
  5. "job_id" : "high_sum_total_sales",
  6. "min_version" : "6.4.0",
  7. "timestamp" : 1575402237000,
  8. "description" : "State persisted due to job close at 2019-12-03T19:43:57+0000",
  9. "snapshot_id" : "1575402237",
  10. "snapshot_doc_count" : 1,
  11. "model_size_stats" : {
  12. "job_id" : "high_sum_total_sales",
  13. "result_type" : "model_size_stats",
  14. "model_bytes" : 1638816,
  15. "model_bytes_exceeded" : 0,
  16. "model_bytes_memory_limit" : 10485760,
  17. "total_by_field_count" : 3,
  18. "total_over_field_count" : 3320,
  19. "total_partition_field_count" : 2,
  20. "bucket_allocation_failures_count" : 0,
  21. "memory_status" : "ok",
  22. "categorized_doc_count" : 0,
  23. "total_category_count" : 0,
  24. "frequent_category_count" : 0,
  25. "rare_category_count" : 0,
  26. "dead_category_count" : 0,
  27. "categorization_status" : "ok",
  28. "log_time" : 1575402237000,
  29. "timestamp" : 1576965600000
  30. },
  31. "latest_record_time_stamp" : 1576971072000,
  32. "latest_result_time_stamp" : 1576965600000,
  33. "retain" : false
  34. }
  35. ]
  36. }