2017-07-21 11 views
0

このシナリオでは、以下に示すように達成しようとしているものの値を含むインデックスがあります。時間の経過とともにElasticでユニークな値を数えるにはどうすればよいですか?

{"organisation":"TestOrg","deployment_name":"testDeployment","timestamp":1 499724427000,"running_instances":2} 

どのようにそれらが弾性に格納されます。デプロイメント名は何でもかまいません。何をしようとしているのかは、デプロイメントの実行インスタンスを計算することです。

これはこれまでに試したことです。

私の考えは、以下のように、私が希望していた値と基数を使って日付ヒストグラムを作成することでした。

{ 
"aggs" : { 
    "vms_over_time" : { 
     "date_histogram" : { 
      "field" : "timestamp", 
      "interval" : "2h" 
     }, 
    "aggs": { 
     "termsagg" : { 
      "termf":{ "field" : "deployment_name"} 
     }, 
     "cardcheck":{ 
      "cardinality" : { 
       "cardf" : { "field":"running_instances"} 
      } 
      } 
     } 

     } 
    } 

} 

答えて

0

あなたの要件が正しいかどうかわかりません。カーディナリティアグでは、別々の要素の数をrunning_instancesに数えています。したがって、1,2,3,4,1,2,3,4の場合、応答は4になります。

sumアグリゲーションを使用して、実行中のインスタンスの数をカウントするだけでよいですか?これは現在のデータモデルでは機能しませんが。おそらく、最小/最大値と平均値が役立つでしょうか?

+0

私はドキュメントのインスタンスをチェックして一緒に追加する方法を試しています。異なる展開のタイムスタンプ。例えば。 dep1には2つのインスタンスがあり、dep4には5つのインスタンスが3つあります。総額は5です。これは可能ですか、それとも間違っていると解釈していますか? –

0

私は基本的に私が必要としたフィールドを数えて私のようにダムだった場合、私は必要と合計量を解決します。私は、Running_instancesに合計のサブ集計を持っていたTermのサブ集計を持つDate Histogramを使用する必要がありました。

私が遭遇した問題は、私が使用したかったフィールドがテキストなので、キーワードを作ったということでした。

関連する問題