バケット取得API

1つ以上のバケットの異常検出ジョブの結果を取得します。

リクエスト

GET _ml/anomaly_detectors/<job_id>/results/buckets

GET _ml/anomaly_detectors/<job_id>/results/buckets/<timestamp>

前提条件

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

説明

バケット取得APIは、バケットごとにグループ化されたレコードの時系列ビューを提供します。

パスパラメータ

  • <job_id>
  • (必須、文字列) 異常検出ジョブの識別子。
  • <timestamp>
  • (オプション、文字列) 単一のバケット結果のタイムスタンプ。このパラメータを指定しない場合、APIはすべてのバケットに関する情報を返します。

クエリパラメータ

  • anomaly_score
  • (オプション、倍精度浮動小数点数) この値以上の異常スコアを持つバケットを返します。デフォルトは 0.0 です。
  • desc
  • (オプション、ブール値) trueの場合、バケットは降順にソートされます。デフォルトは false です。
  • end
  • (オプション、文字列) この時間よりも早いタイムスタンプを持つバケットを返します。デフォルトは -1 で、これは未設定であり、結果は特定のタイムスタンプに制限されません。
  • exclude_interim
  • (オプション、ブール値) true の場合、出力は中間結果を除外します。デフォルトは false で、これは中間結果が含まれることを意味します。
  • expand
  • (オプション、ブール値) trueの場合、出力には異常レコードが含まれます。デフォルトは false です。
  • from
  • (オプション、整数) 指定された数のバケットをスキップします。デフォルトは 0 です。
  • size
  • (オプション、整数) 取得するバケットの最大数を指定します。デフォルトは 100 です。
  • sort
  • (オプション、文字列) リクエストされたバケットのソートフィールドを指定します。デフォルトでは、バケットは timestamp フィールドでソートされます。
  • start
  • (オプション、文字列) この時間以降のタイムスタンプを持つバケットを返します。デフォルトは -1 で、これは未設定であり、結果は特定のタイムスタンプに制限されません。

リクエストボディ

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

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

レスポンスボディ

APIは、次のプロパティを持つバケットオブジェクトの配列を返します:

  • anomaly_score
  • (数値) バケットインフルエンサーの最大異常スコア、0-100の範囲。このスコアは、ジョブの全体的な、レート制限されたスコアです。バケット内のすべての異常レコードがこのスコアに寄与します。この値は、新しいデータが分析されると更新される可能性があります。
  • bucket_influencers
  • (配列) バケットインフルエンサーオブジェクトの配列。
    bucket_influencers のプロパティ
    • anomaly_score
    • (数値) 各バケットインフルエンサーに対して計算された0-100の範囲の正規化スコア。このスコアは、新しいデータが分析されると更新される可能性があります。
    • bucket_span
    • (数値) バケットの長さ(秒単位)。この値は、ジョブで指定された bucket_span に一致します。
    • influencer_field_name
    • (文字列) インフルエンサーのフィールド名。
    • initial_anomaly_score
    • (数値) 各バケットインフルエンサーの0-100の範囲のスコア。このスコアは、バケットが処理された時点で計算された初期値です。
    • is_interim
    • (ブール値) true の場合、これは中間結果です。言い換えれば、結果は部分的な入力データに基づいて計算されます。
    • job_id
    • (文字列) 異常検出ジョブの識別子。
    • probability
    • (数値) この動作を持つバケットの確率、0から1の範囲。この値は300以上の小数点以下の精度を持つことができるため、anomaly_score は人間が読みやすく、親しみやすい解釈として提供されます。
    • raw_anomaly_score
    • (数値) 内部。
    • result_type
    • (文字列) 内部。この値は常に bucket_influencer に設定されます。
    • timestamp
    • (日付) これらの結果が計算されたバケットの開始時間。
  • bucket_span
  • (数値) バケットの長さ(秒単位)。この値は、ジョブで指定された bucket_span に一致します。
  • event_count
  • (数値) このバケットで処理された入力データレコードの数。
  • initial_anomaly_score
  • (数値) バケットインフルエンサーの最大 anomaly_score 。この値は、バケットが処理された時点で計算された初期値です。
  • is_interim
  • (ブール値) true の場合、これは中間結果です。言い換えれば、結果は部分的な入力データに基づいて計算されます。
  • job_id
  • (文字列) 異常検出ジョブの識別子。
  • processing_time_ms
  • (数値) バケットの内容を分析し、結果を計算するのにかかった時間(ミリ秒単位)。
  • result_type
  • (文字列) 内部。この値は常に bucket に設定されます。
  • timestamp
  • (日付) バケットの開始時間。このタイムスタンプはバケットを一意に識別します。バケットのタイムスタンプで正確に発生するイベントは、バケットの結果に含まれます。

Python

  1. resp = client.ml.get_buckets(
  2. job_id="low_request_rate",
  3. anomaly_score=80,
  4. start="1454530200001",
  5. )
  6. print(resp)

Ruby

  1. response = client.ml.get_buckets(
  2. job_id: 'low_request_rate',
  3. body: {
  4. anomaly_score: 80,
  5. start: '1454530200001'
  6. }
  7. )
  8. puts response

Js

  1. const response = await client.ml.getBuckets({
  2. job_id: "low_request_rate",
  3. anomaly_score: 80,
  4. start: 1454530200001,
  5. });
  6. console.log(response);

コンソール

  1. GET _ml/anomaly_detectors/low_request_rate/results/buckets
  2. {
  3. "anomaly_score": 80,
  4. "start": "1454530200001"
  5. }

この例では、APIは指定されたスコアと時間制約に一致する単一の結果を返します:

Js

  1. {
  2. "count" : 1,
  3. "buckets" : [
  4. {
  5. "job_id" : "low_request_rate",
  6. "timestamp" : 1578398400000,
  7. "anomaly_score" : 91.58505459594764,
  8. "bucket_span" : 3600,
  9. "initial_anomaly_score" : 91.58505459594764,
  10. "event_count" : 0,
  11. "is_interim" : false,
  12. "bucket_influencers" : [
  13. {
  14. "job_id" : "low_request_rate",
  15. "result_type" : "bucket_influencer",
  16. "influencer_field_name" : "bucket_time",
  17. "initial_anomaly_score" : 91.58505459594764,
  18. "anomaly_score" : 91.58505459594764,
  19. "raw_anomaly_score" : 0.5758246639716365,
  20. "probability" : 1.7340849573442696E-4,
  21. "timestamp" : 1578398400000,
  22. "bucket_span" : 3600,
  23. "is_interim" : false
  24. }
  25. ],
  26. "processing_time_ms" : 0,
  27. "result_type" : "bucket"
  28. }
  29. ]
  30. }