ダウンサンプルインデックスAPI

時間系列(TSDS)インデックスを集約し、構成された時間間隔でグループ化された各メトリックフィールドの事前計算された統計要約(minmaxsumvalue_countavg)を保存します。たとえば、10秒ごとにサンプリングされたメトリックを含むTSDSインデックスは、時間単位のインデックスにダウンサンプルできます。1時間の間隔内のすべてのドキュメントは要約され、ダウンサンプルインデックス内の単一のドキュメントとして保存されます。

Python

  1. resp = client.indices.downsample(
  2. index="my-time-series-index",
  3. target_index="my-downsampled-time-series-index",
  4. config={
  5. "fixed_interval": "1d"
  6. },
  7. )
  8. print(resp)

Ruby

  1. response = client.indices.downsample(
  2. index: 'my-time-series-index',
  3. target_index: 'my-downsampled-time-series-index',
  4. body: {
  5. fixed_interval: '1d'
  6. }
  7. )
  8. puts response

Js

  1. const response = await client.indices.downsample({
  2. index: "my-time-series-index",
  3. target_index: "my-downsampled-time-series-index",
  4. config: {
  5. fixed_interval: "1d",
  6. },
  7. });
  8. console.log(response);

コンソール

  1. POST /my-time-series-index/_downsample/my-downsampled-time-series-index
  2. {
  3. "fixed_interval": "1d"
  4. }

リクエスト

POST /<source-index>/_downsample/<output-downsampled-index>

前提条件

パスパラメータ

  • <source-index>
  • (オプション、文字列)ダウンサンプルするタイムシリーズインデックスの名前。
  • <output-downsampled_index>
  • (必須、文字列)作成するインデックスの名前。
    インデックス名は次の基準を満たす必要があります:
    • 小文字のみ
    • \/*?"<>| (スペース文字)、,#を含むことはできません
    • 7.0以前のインデックスにはコロン(:)を含めることができましたが、これは非推奨となり、7.0以降はサポートされません
    • -_+で始めることはできません
    • .または..であることはできません
    • 255バイトを超えることはできません(バイト数であるため、マルチバイト文字は255の制限に早くカウントされます)
    • .で始まる名前は非推奨ですが、隠しインデックスおよびプラグインによって管理される内部インデックスを除きます

クエリパラメータ

  • fixed_interval
  • (必須、時間単位)元のタイムシリーズインデックスを集約する間隔。たとえば、60mは60分(時間単位)ごとにドキュメントを生成します。これは、Elasticsearchの他の場所で使用される標準的な時間フォーマット構文に従います。
    より小さく、より詳細な間隔は、比例的により多くのスペースを占有します。

ダウンサンプリングプロセス

ダウンサンプリング操作は、ソースTSDSインデックスを横断し、次の手順を実行します:

  • 1. _tsidフィールドの各値と各@timestamp値に対して新しいドキュメントを作成し、ダウンサンプル構成で定義されたfixed_intervalに丸めます。
  • 2. 各新しいドキュメントについて、ソースインデックスからターゲットインデックスにすべてのタイムシリーズ次元をコピーします。TSDSの次元は一定であるため、これはバケットごとに1回だけ行われます。
  • 3.タイムシリーズメトリックフィールドについて、バケット内のすべてのドキュメントの集約を計算します。各メトリックフィールドのメトリックタイプに応じて、異なるセットの事前集約結果が保存されます:
    • gaugeminmaxsumvalue_countが保存され、value_countaggregate_metric_double型として保存されます。
    • counterlast_valueが保存されます。
  • 4. その他のすべてのフィールドについて、最も最近の値がターゲットインデックスにコピーされます。

ソースおよびターゲットインデックスフィールドマッピング

ターゲットのダウンサンプルインデックスのフィールドは、元のソースインデックスのフィールドに基づいて作成されます。次のように:

  • 1. time-series-dimensionパラメータでマッピングされたすべてのフィールドは、ソースインデックスと同じマッピングでターゲットダウンサンプルインデックスに作成されます。
  • 2. time_series_metricパラメータでマッピングされたすべてのフィールドは、ソースインデックスと同じマッピングでターゲットダウンサンプルインデックスに作成されます。例外として、time_series_metric: gaugeとしてマッピングされたフィールドのフィールドタイプはaggregate_metric_doubleに変更されます。
  • 3. 次元でもメトリックでもないすべての他のフィールド(つまり、ラベルフィールド)は、ソースインデックスで持っていたのと同じマッピングでターゲットダウンサンプルインデックスに作成されます。

ダウンサンプリングを手動で実行する方法やILMポリシーの一部として実行する方法の概要と例については、ダウンサンプリングのドキュメントを確認してください。