データフィード統計API

データフィードの使用情報を取得します。

リクエスト

GET _ml/datafeeds/<feed_id>/_stats

GET _ml/datafeeds/<feed_id>,<feed_id>/_stats

GET _ml/datafeeds/_stats

GET _ml/datafeeds/_all/_stats

前提条件

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

説明

データフィードが停止している場合、受け取る情報は datafeed_idstate のみです。

このAPIは最大10,000のデータフィードを返します。

パスパラメータ

  • <feed_id>
  • (オプション、文字列)データフィードの識別子。データフィード識別子またはワイルドカード式であることができます。
    カンマ区切りのデータフィードリストまたはワイルドカード式を使用することで、単一のAPIリクエストで複数のデータフィードの統計を取得できます。 _all を使用することで、すべてのデータフィードの統計を取得できます。データフィード識別子として * を指定するか、識別子を省略することもできます。

クエリパラメータ

  • allow_no_match
  • (オプション、ブール値)リクエスト時の動作を指定します:
    • ワイルドカード式を含み、一致するデータフィードがない場合。
    • _all 文字列を含むか、識別子がない場合、一致がない場合。
    • ワイルドカード式を含み、部分一致のみがある場合。
      デフォルト値は true で、一致がない場合は空の datafeeds 配列を返し、部分一致がある場合は結果のサブセットを返します。このパラメータが false の場合、一致がないか部分一致のみの場合、リクエストは 404 ステータスコードを返します。

レスポンスボディ

APIはデータフィードカウントオブジェクトの配列を返します。これらのプロパティはすべて情報提供用であり、その値を更新することはできません。

  • assignment_explanation
  • (文字列)開始されたデータフィードのみ、ノードの選択に関するメッセージを含みます。
  • datafeed_id
  • (文字列)データフィードを一意に識別する数値文字列。この識別子は小文字の英数字(a-zおよび0-9)、ハイフン、アンダースコアを含むことができます。英数字で始まり、英数字で終わる必要があります。
  • node
  • (オブジェクト)開始されたデータフィードのみ、この情報はデータフィードが開始されたノードに関するものです。
    詳細
    • attributes
    • (オブジェクト)ml.machine_memory または ml.max_open_jobs 設定などのノード属性をリストします。
    • ephemeral_id
    • (文字列)ノードのエフェメラルID。
    • id
    • (文字列)ノードの一意の識別子。
    • name
    • (文字列)ノード名。例えば、0-o0tOo
    • transport_address
    • (文字列)トランスポートHTTP接続が受け入れられるホストとポート。
  • running_state
  • (オブジェクト)このデータフィードの実行状態を含むオブジェクト。データフィードが開始されている場合のみ提供されます。
    詳細
    • real_time_configured
    • (ブール値)データフィードが「リアルタイム」であるかどうかを示します。つまり、データフィードには設定された end 時間がありません。
    • real_time_running
    • (ブール値)データフィードが利用可能な過去のデータでの実行を終了したかどうかを示します。設定された end 時間がないデータフィードの場合、これはデータフィードが「リアルタイム」データで実行されていることを意味します。
    • search_interval
    • (オプション、オブジェクト)データフィードが検索した最新の時間間隔を提供します。
      詳細
      • start_ms
      • エポックの開始時間(ミリ秒)。
      • end_ms
      • エポックの終了時間(ミリ秒)。
  • state
  • (文字列)データフィードのステータスで、次の値のいずれかになります:
    • starting: データフィードの開始が要求されましたが、まだ開始されていません。
    • started: データフィードはデータを受信しています。
    • stopping: データフィードは優雅に停止するように要求されており、最終アクションを完了しています。
    • stopped: データフィードは停止しており、再起動されるまでデータを受信しません。
  • timing_stats
  • (オブジェクト)このデータフィードのタイミングに関する統計情報を提供するオブジェクト。
    詳細
    • average_search_time_per_bucket_ms
    • (ダブル)バケットごとの平均検索時間(ミリ秒)。
    • bucket_count
    • (ロング)処理されたバケットの数。
    • exponential_average_search_time_per_hour_ms
    • (ダブル)時間あたりの指数平均検索時間(ミリ秒)。
    • job_id
    • 異常検出ジョブの識別子。
    • search_count
    • データフィードによって実行された検索の数。
    • total_search_time_ms
    • データフィードが検索に費やした合計時間(ミリ秒)。

レスポンスコード

  • 404 (リソースが見つかりません)
  • allow_no_matchfalse の場合、このコードはリクエストに一致するリソースがないか、リクエストに対して部分一致のみがあることを示します。

Python

  1. resp = client.ml.get_datafeed_stats(
  2. datafeed_id="datafeed-high_sum_total_sales",
  3. )
  4. print(resp)

Ruby

  1. response = client.ml.get_datafeed_stats(
  2. datafeed_id: 'datafeed-high_sum_total_sales'
  3. )
  4. puts response

Js

  1. const response = await client.ml.getDatafeedStats({
  2. datafeed_id: "datafeed-high_sum_total_sales",
  3. });
  4. console.log(response);

コンソール

  1. GET _ml/datafeeds/datafeed-high_sum_total_sales/_stats

APIは次の結果を返します:

コンソール-結果

  1. {
  2. "count" : 1,
  3. "datafeeds" : [
  4. {
  5. "datafeed_id" : "datafeed-high_sum_total_sales",
  6. "state" : "started",
  7. "node" : {
  8. "id" : "7bmMXyWCRs-TuPfGJJ_yMw",
  9. "name" : "node-0",
  10. "ephemeral_id" : "hoXMLZB0RWKfR9UPPUCxXX",
  11. "transport_address" : "127.0.0.1:9300",
  12. "attributes" : {
  13. "ml.machine_memory" : "17179869184",
  14. "ml.max_open_jobs" : "512"
  15. }
  16. },
  17. "assignment_explanation" : "",
  18. "timing_stats" : {
  19. "job_id" : "high_sum_total_sales",
  20. "search_count" : 7,
  21. "bucket_count" : 743,
  22. "total_search_time_ms" : 134.0,
  23. "average_search_time_per_bucket_ms" : 0.180349932705249,
  24. "exponential_average_search_time_per_hour_ms" : 11.514712961628677
  25. }
  26. }
  27. ]
  28. }