|
|
@@ -0,0 +1,163 @@
|
|
|
+basic:
|
|
|
+ - do:
|
|
|
+ bulk:
|
|
|
+ index: test
|
|
|
+ refresh: true
|
|
|
+ body:
|
|
|
+ - { "index": { } }
|
|
|
+ - { "@timestamp": "2022-01-01T00:00:00", "v": 1 }
|
|
|
+ - { "index": { } }
|
|
|
+ - { "@timestamp": "2022-01-01T01:00:00", "v": 2 }
|
|
|
+ - { "index": { } }
|
|
|
+ - { "@timestamp": "2022-01-01T02:00:00", "v": 1 }
|
|
|
+
|
|
|
+ - do:
|
|
|
+ search:
|
|
|
+ body:
|
|
|
+ size: 0
|
|
|
+ aggs:
|
|
|
+ "@timestamp":
|
|
|
+ date_histogram:
|
|
|
+ field: "@timestamp"
|
|
|
+ fixed_interval: 1h
|
|
|
+ aggs:
|
|
|
+ v: {avg: {field: v}}
|
|
|
+ d: {serial_diff: {buckets_path: v}}
|
|
|
+ - match: { hits.total.value: 3 }
|
|
|
+ - length: { aggregations.@timestamp.buckets: 3 }
|
|
|
+ - match: { aggregations.@timestamp.buckets.0.key_as_string: 2022-01-01T00:00:00.000Z }
|
|
|
+ - match: { aggregations.@timestamp.buckets.1.key_as_string: 2022-01-01T01:00:00.000Z }
|
|
|
+ - match: { aggregations.@timestamp.buckets.2.key_as_string: 2022-01-01T02:00:00.000Z }
|
|
|
+ - match: { aggregations.@timestamp.buckets.0.v.value: 1 }
|
|
|
+ - match: { aggregations.@timestamp.buckets.1.v.value: 2 }
|
|
|
+ - match: { aggregations.@timestamp.buckets.2.v.value: 1 }
|
|
|
+ - is_false: aggregations.@timestamp.buckets.0.d
|
|
|
+ - match: { aggregations.@timestamp.buckets.1.d.value: 1 }
|
|
|
+ - match: { aggregations.@timestamp.buckets.2.d.value: -1 }
|
|
|
+
|
|
|
+---
|
|
|
+lag:
|
|
|
+ - do:
|
|
|
+ bulk:
|
|
|
+ index: test
|
|
|
+ refresh: true
|
|
|
+ body:
|
|
|
+ - { "index": { } }
|
|
|
+ - { "@timestamp": "2022-01-01T00:00:00", "v": 1 }
|
|
|
+ - { "index": { } }
|
|
|
+ - { "@timestamp": "2022-01-01T01:00:00", "v": 2 }
|
|
|
+ - { "index": { } }
|
|
|
+ - { "@timestamp": "2022-01-01T02:00:00", "v": 3 }
|
|
|
+ - { "index": { } }
|
|
|
+ - { "@timestamp": "2022-01-01T03:00:00", "v": 1 }
|
|
|
+
|
|
|
+ - do:
|
|
|
+ search:
|
|
|
+ body:
|
|
|
+ size: 0
|
|
|
+ aggs:
|
|
|
+ "@timestamp":
|
|
|
+ date_histogram:
|
|
|
+ field: "@timestamp"
|
|
|
+ fixed_interval: 1h
|
|
|
+ aggs:
|
|
|
+ v: { avg: { field: v } }
|
|
|
+ d: { serial_diff: { buckets_path: v, lag: 2 } }
|
|
|
+ - match: { hits.total.value: 4 }
|
|
|
+ - length: { aggregations.@timestamp.buckets: 4 }
|
|
|
+ - match: { aggregations.@timestamp.buckets.0.key_as_string: 2022-01-01T00:00:00.000Z }
|
|
|
+ - match: { aggregations.@timestamp.buckets.1.key_as_string: 2022-01-01T01:00:00.000Z }
|
|
|
+ - match: { aggregations.@timestamp.buckets.2.key_as_string: 2022-01-01T02:00:00.000Z }
|
|
|
+ - match: { aggregations.@timestamp.buckets.3.key_as_string: 2022-01-01T03:00:00.000Z }
|
|
|
+ - match: { aggregations.@timestamp.buckets.0.v.value: 1 }
|
|
|
+ - match: { aggregations.@timestamp.buckets.1.v.value: 2 }
|
|
|
+ - match: { aggregations.@timestamp.buckets.2.v.value: 3 }
|
|
|
+ - match: { aggregations.@timestamp.buckets.3.v.value: 1 }
|
|
|
+ - is_false: aggregations.@timestamp.buckets.0.d
|
|
|
+ - is_false: aggregations.@timestamp.buckets.1.d
|
|
|
+ - match: { aggregations.@timestamp.buckets.2.d.value: 2 }
|
|
|
+ - match: { aggregations.@timestamp.buckets.3.d.value: -1 }
|
|
|
+
|
|
|
+---
|
|
|
+parent has gap:
|
|
|
+ - do:
|
|
|
+ bulk:
|
|
|
+ index: test
|
|
|
+ refresh: true
|
|
|
+ body:
|
|
|
+ - { "index": { } }
|
|
|
+ - { "@timestamp": "2022-01-01T00:00:00", "v": 1 }
|
|
|
+ - { "index": { } }
|
|
|
+ - { "@timestamp": "2022-01-01T01:00:00", "v": 2 }
|
|
|
+ - { "index": { } }
|
|
|
+ - { "@timestamp": "2022-01-01T03:00:00", "v": 1 }
|
|
|
+
|
|
|
+ - do:
|
|
|
+ search:
|
|
|
+ body:
|
|
|
+ size: 0
|
|
|
+ aggs:
|
|
|
+ "@timestamp":
|
|
|
+ date_histogram:
|
|
|
+ field: "@timestamp"
|
|
|
+ fixed_interval: 1h
|
|
|
+ aggs:
|
|
|
+ v: {avg: {field: v}}
|
|
|
+ d: {serial_diff: {buckets_path: v}}
|
|
|
+ - match: { hits.total.value: 3 }
|
|
|
+ - length: { aggregations.@timestamp.buckets: 4 }
|
|
|
+ - match: { aggregations.@timestamp.buckets.0.key_as_string: 2022-01-01T00:00:00.000Z }
|
|
|
+ - match: { aggregations.@timestamp.buckets.1.key_as_string: 2022-01-01T01:00:00.000Z }
|
|
|
+ - match: { aggregations.@timestamp.buckets.2.key_as_string: 2022-01-01T02:00:00.000Z }
|
|
|
+ - match: { aggregations.@timestamp.buckets.3.key_as_string: 2022-01-01T03:00:00.000Z }
|
|
|
+ - match: { aggregations.@timestamp.buckets.0.v.value: 1 }
|
|
|
+ - match: { aggregations.@timestamp.buckets.1.v.value: 2 }
|
|
|
+ - is_false: aggregations.@timestamp.buckets.2.v.value
|
|
|
+ - match: { aggregations.@timestamp.buckets.3.v.value: 1 }
|
|
|
+ - is_false: aggregations.@timestamp.buckets.0.d
|
|
|
+ - match: { aggregations.@timestamp.buckets.1.d.value: 1 }
|
|
|
+ - is_false: aggregations.@timestamp.buckets.2.d
|
|
|
+ - is_false: aggregations.@timestamp.buckets.3.d
|
|
|
+
|
|
|
+---
|
|
|
+parent has min_doc_count:
|
|
|
+ - skip:
|
|
|
+ version: " - 8.2.99"
|
|
|
+ reason: allowed in 8.3.0
|
|
|
+
|
|
|
+ - do:
|
|
|
+ bulk:
|
|
|
+ index: test
|
|
|
+ refresh: true
|
|
|
+ body:
|
|
|
+ - { "index": { } }
|
|
|
+ - { "@timestamp": "2022-01-01T00:00:00", "v": 1 }
|
|
|
+ - { "index": { } }
|
|
|
+ - { "@timestamp": "2022-01-01T01:00:00", "v": 2 }
|
|
|
+ - { "index": { } }
|
|
|
+ - { "@timestamp": "2022-01-01T03:00:00", "v": 1 }
|
|
|
+
|
|
|
+ - do:
|
|
|
+ search:
|
|
|
+ body:
|
|
|
+ size: 0
|
|
|
+ aggs:
|
|
|
+ "@timestamp":
|
|
|
+ date_histogram:
|
|
|
+ field: "@timestamp"
|
|
|
+ fixed_interval: 1h
|
|
|
+ min_doc_count: 1
|
|
|
+ aggs:
|
|
|
+ v: {avg: {field: v}}
|
|
|
+ d: {serial_diff: {buckets_path: v}}
|
|
|
+ - match: { hits.total.value: 3 }
|
|
|
+ - length: { aggregations.@timestamp.buckets: 3 }
|
|
|
+ - match: { aggregations.@timestamp.buckets.0.key_as_string: 2022-01-01T00:00:00.000Z }
|
|
|
+ - match: { aggregations.@timestamp.buckets.1.key_as_string: 2022-01-01T01:00:00.000Z }
|
|
|
+ - match: { aggregations.@timestamp.buckets.2.key_as_string: 2022-01-01T03:00:00.000Z }
|
|
|
+ - match: { aggregations.@timestamp.buckets.0.v.value: 1 }
|
|
|
+ - match: { aggregations.@timestamp.buckets.1.v.value: 2 }
|
|
|
+ - match: { aggregations.@timestamp.buckets.2.v.value: 1 }
|
|
|
+ - is_false: aggregations.@timestamp.buckets.0.d
|
|
|
+ - match: { aggregations.@timestamp.buckets.1.d.value: 1 }
|
|
|
+ - match: { aggregations.@timestamp.buckets.2.d.value: -1 }
|