ジョブAPIへのデータ投稿

7.11.0で非推奨

異常検知ジョブにデータを直接投稿することは非推奨です。将来のメジャーバージョンでは、datafeedが必要になります。

異常検知ジョブにデータを送信して分析します。

リクエスト

POST _ml/anomaly_detectors/<job_id>/_data

前提条件

  1. ## 説明
  2. ジョブはデータを受信して処理するために`````open`````の状態である必要があります。
  3. ジョブに送信するデータはJSON形式を使用する必要があります。複数のJSONドキュメントを送信できますが、それらの間に区切りがない隣接した形式または空白で区切られた形式で送信できます。改行区切りJSONNDJSON)は空白で区切られた形式の一つであり、この場合、`````Content-Type`````ヘッダーは`````application/x-ndjson`````に設定する必要があります。
  4. アップロードサイズはElasticsearch HTTP受信バッファサイズ(デフォルト100 Mb)に制限されています。データが大きい場合は、複数のチャンクに分割し、各チャンクを順次アップロードしてください。リアルタイムで実行する場合は、より大きなファイルをアップロードするためにデータをキューに入れるのではなく、多くの小さなアップロードを行うことを一般的に推奨します。
  5. データをアップロードする際は、進捗のためにジョブデータカウントを確認してください。次のドキュメントは処理されません:
  6. - 時系列順でなく、遅延ウィンドウの外にあるドキュメント
  7. - 無効なタイムスタンプを持つレコード
  8. 各ジョブについて、データは同時に1つの接続からのみ受け入れられます。ワイルドカードやカンマ区切りのリストを使用して複数のジョブにデータを投稿することは現在できません。
  9. ## パスパラメータ
  10. - `````<job_id>
  • (必須、文字列)異常検知ジョブの識別子。

クエリパラメータ

  • reset_start
  • (オプション、文字列)バケットリセット範囲の開始を指定します。
  • reset_end
  • (オプション、文字列)バケットリセット範囲の終了を指定します。

リクエストボディ

分析するデータを含む1つ以上のJSONドキュメントのシーケンス。ドキュメント間には空白文字のみが許可されます。

次の例では、it_ops_new_kpi.jsonファイルからit_ops_new_kpiジョブにデータを投稿します:

Js

  1. $ curl -s -H "Content-type: application/json"
  2. -X POST http:\/\/localhost:9200/_ml/anomaly_detectors/it_ops_new_kpi/_data
  3. --data-binary @it_ops_new_kpi.json

データが送信されると、ジョブの運用進捗に関する情報が受信されます。例えば:

Js

  1. {
  2. "job_id":"it_ops_new_kpi",
  3. "processed_record_count":21435,
  4. "processed_field_count":64305,
  5. "input_bytes":2589063,
  6. "input_field_count":85740,
  7. "invalid_date_count":0,
  8. "missing_field_count":0,
  9. "out_of_order_timestamp_count":0,
  10. "empty_bucket_count":16,
  11. "sparse_bucket_count":0,
  12. "bucket_count":2165,
  13. "earliest_record_timestamp":1454020569000,
  14. "latest_record_timestamp":1455318669000,
  15. "last_data_time":1491952300658,
  16. "latest_empty_bucket_timestamp":1454541600000,
  17. "input_record_count":21435
  18. }

これらのプロパティに関する詳細は、レスポンスボディを参照してください。