バケット相関集約
設定された兄弟マルチバケット集約に対して相関関数を実行する兄弟パイプライン集約です。
パラメータ
buckets_path
- (必須、文字列) 相関させる値のセットを含むバケットへのパス。構文については、
buckets_path
構文を参照してください。 function
- (必須、オブジェクト) 実行する相関関数。
function
のプロパティcount_correlation
- (必須*、オブジェクト) カウント相関を計算するための設定。この関数は、用語の値と特定のメトリックの相関を決定するために設計されています。したがって、次の要件を満たす必要があります。
buckets_path
は_count
メトリックを指す必要があります。- すべての
bucket_path
カウント値の合計はindicator.doc_count
以下でなければなりません。 - この関数を利用する際には、必要な
indicator
値を収集するための初期計算が必要です。count_correlation
のプロパティ indicator
- (必須、オブジェクト) 設定された
bucket_path
値と相関させる指標。indicator
のプロパティ doc_count
- (必須、整数) 最初に
expectations
を作成したドキュメントの総数。これは、用語の値が相関するデータの元のスーパーセットであるbuckets_path
のすべての値の合計以上である必要があります。 expectations
- (必須、配列) 設定された
bucket_path
値と相関させるための数値の配列。この値の長さは、常にbucket_path
によって返されるバケットの数と等しくなければなりません。 fractions
- (オプション、配列) 平均化および分散計算に使用する分数の配列。これは、事前計算されたデータと
buckets_path
に既知のギャップがある場合に使用するべきです。提供された場合、fractions
の長さはexpectations
と等しくなければなりません。
構文
単独での bucket_correlation
集約は次のようになります:
Js
{
"bucket_correlation": {
"buckets_path": "range_values>_count",
"function": {
"count_correlation": {
"indicator": {
"expectations": [...],
"doc_count": 10000
}
}
}
}
}
相関させる値を含むバケット。 | |
相関関数の定義。 |
例
次のスニペットは、フィールド version
の個々の用語を latency
メトリックと相関させます。事前計算された latency
指標値は、パーセンタイル集約を利用して行われたため、表示されていません。
この例では、10s パーセンタイルのみを使用しています。
Python
resp = client.search(
index="correlate_latency",
size="0",
filter_path="aggregations",
aggs={
"buckets": {
"terms": {
"field": "version",
"size": 2
},
"aggs": {
"latency_ranges": {
"range": {
"field": "latency",
"ranges": [
{
"to": 0
},
{
"from": 0,
"to": 105
},
{
"from": 105,
"to": 225
},
{
"from": 225,
"to": 445
},
{
"from": 445,
"to": 665
},
{
"from": 665,
"to": 885
},
{
"from": 885,
"to": 1115
},
{
"from": 1115,
"to": 1335
},
{
"from": 1335,
"to": 1555
},
{
"from": 1555,
"to": 1775
},
{
"from": 1775
}
]
}
},
"bucket_correlation": {
"bucket_correlation": {
"buckets_path": "latency_ranges>_count",
"function": {
"count_correlation": {
"indicator": {
"expectations": [
0,
52.5,
165,
335,
555,
775,
1000,
1225,
1445,
1665,
1775
],
"doc_count": 200
}
}
}
}
}
}
}
},
)
print(resp)
Js
const response = await client.search({
index: "correlate_latency",
size: 0,
filter_path: "aggregations",
aggs: {
buckets: {
terms: {
field: "version",
size: 2,
},
aggs: {
latency_ranges: {
range: {
field: "latency",
ranges: [
{
to: 0,
},
{
from: 0,
to: 105,
},
{
from: 105,
to: 225,
},
{
from: 225,
to: 445,
},
{
from: 445,
to: 665,
},
{
from: 665,
to: 885,
},
{
from: 885,
to: 1115,
},
{
from: 1115,
to: 1335,
},
{
from: 1335,
to: 1555,
},
{
from: 1555,
to: 1775,
},
{
from: 1775,
},
],
},
},
bucket_correlation: {
bucket_correlation: {
buckets_path: "latency_ranges>_count",
function: {
count_correlation: {
indicator: {
expectations: [
0, 52.5, 165, 335, 555, 775, 1000, 1225, 1445, 1665, 1775,
],
doc_count: 200,
},
},
},
},
},
},
},
},
});
console.log(response);
コンソール
POST correlate_latency/_search?size=0&filter_path=aggregations
{
"aggs": {
"buckets": {
"terms": {
"field": "version",
"size": 2
},
"aggs": {
"latency_ranges": {
"range": {
"field": "latency",
"ranges": [
{ "to": 0.0 },
{ "from": 0, "to": 105 },
{ "from": 105, "to": 225 },
{ "from": 225, "to": 445 },
{ "from": 445, "to": 665 },
{ "from": 665, "to": 885 },
{ "from": 885, "to": 1115 },
{ "from": 1115, "to": 1335 },
{ "from": 1335, "to": 1555 },
{ "from": 1555, "to": 1775 },
{ "from": 1775 }
]
}
},
"bucket_correlation": {
"bucket_correlation": {
"buckets_path": "latency_ranges>_count",
"function": {
"count_correlation": {
"indicator": {
"expectations": [0, 52.5, 165, 335, 555, 775, 1000, 1225, 1445, 1665, 1775],
"doc_count": 200
}
}
}
}
}
}
}
}
}
範囲集約とバケット相関集約を含む用語バケット。両方とも、用語の値とレイテンシの相関を計算するために使用されます。 | |
レイテンシフィールドの範囲集約。範囲はレイテンシフィールドのパーセンタイルを参照して作成されました。 | |
各範囲内の用語値の数と、以前に計算された指標値との相関を計算するバケット相関集約。 |
コンソール-結果
{
"aggregations" : {
"buckets" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 0,
"buckets" : [
{
"key" : "1.0",
"doc_count" : 100,
"latency_ranges" : {
"buckets" : [
{
"key" : "*-0.0",
"to" : 0.0,
"doc_count" : 0
},
{
"key" : "0.0-105.0",
"from" : 0.0,
"to" : 105.0,
"doc_count" : 1
},
{
"key" : "105.0-225.0",
"from" : 105.0,
"to" : 225.0,
"doc_count" : 9
},
{
"key" : "225.0-445.0",
"from" : 225.0,
"to" : 445.0,
"doc_count" : 0
},
{
"key" : "445.0-665.0",
"from" : 445.0,
"to" : 665.0,
"doc_count" : 0
},
{
"key" : "665.0-885.0",
"from" : 665.0,
"to" : 885.0,
"doc_count" : 0
},
{
"key" : "885.0-1115.0",
"from" : 885.0,
"to" : 1115.0,
"doc_count" : 10
},
{
"key" : "1115.0-1335.0",
"from" : 1115.0,
"to" : 1335.0,
"doc_count" : 20
},
{
"key" : "1335.0-1555.0",
"from" : 1335.0,
"to" : 1555.0,
"doc_count" : 20
},
{
"key" : "1555.0-1775.0",
"from" : 1555.0,
"to" : 1775.0,
"doc_count" : 20
},
{
"key" : "1775.0-*",
"from" : 1775.0,
"doc_count" : 20
}
]
},
"bucket_correlation" : {
"value" : 0.8402398981360937
}
},
{
"key" : "2.0",
"doc_count" : 100,
"latency_ranges" : {
"buckets" : [
{
"key" : "*-0.0",
"to" : 0.0,
"doc_count" : 0
},
{
"key" : "0.0-105.0",
"from" : 0.0,
"to" : 105.0,
"doc_count" : 19
},
{
"key" : "105.0-225.0",
"from" : 105.0,
"to" : 225.0,
"doc_count" : 11
},
{
"key" : "225.0-445.0",
"from" : 225.0,
"to" : 445.0,
"doc_count" : 20
},
{
"key" : "445.0-665.0",
"from" : 445.0,
"to" : 665.0,
"doc_count" : 20
},
{
"key" : "665.0-885.0",
"from" : 665.0,
"to" : 885.0,
"doc_count" : 20
},
{
"key" : "885.0-1115.0",
"from" : 885.0,
"to" : 1115.0,
"doc_count" : 10
},
{
"key" : "1115.0-1335.0",
"from" : 1115.0,
"to" : 1335.0,
"doc_count" : 0
},
{
"key" : "1335.0-1555.0",
"from" : 1335.0,
"to" : 1555.0,
"doc_count" : 0
},
{
"key" : "1555.0-1775.0",
"from" : 1555.0,
"to" : 1775.0,
"doc_count" : 0
},
{
"key" : "1775.0-*",
"from" : 1775.0,
"doc_count" : 0
}
]
},
"bucket_correlation" : {
"value" : -0.5759855613334943
}
}
]
}
}
}