|  | @@ -0,0 +1,152 @@
 | 
	
		
			
				|  |  | +setup:
 | 
	
		
			
				|  |  | +  - skip:
 | 
	
		
			
				|  |  | +      version: " - 8.4.99"
 | 
	
		
			
				|  |  | +      reason: "rollup renamed to downsample in 8.5.0"
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - do:
 | 
	
		
			
				|  |  | +      indices.create:
 | 
	
		
			
				|  |  | +        index: test
 | 
	
		
			
				|  |  | +        body:
 | 
	
		
			
				|  |  | +          settings:
 | 
	
		
			
				|  |  | +            number_of_shards: 1
 | 
	
		
			
				|  |  | +            index:
 | 
	
		
			
				|  |  | +              mode: time_series
 | 
	
		
			
				|  |  | +              routing_path: [metricset, k8s.pod.uid]
 | 
	
		
			
				|  |  | +              time_series:
 | 
	
		
			
				|  |  | +                start_time: 2021-04-28T00:00:00Z
 | 
	
		
			
				|  |  | +                end_time: 2021-04-29T00:00:00Z
 | 
	
		
			
				|  |  | +          mappings:
 | 
	
		
			
				|  |  | +            properties:
 | 
	
		
			
				|  |  | +              "@timestamp":
 | 
	
		
			
				|  |  | +                type: date
 | 
	
		
			
				|  |  | +              metricset:
 | 
	
		
			
				|  |  | +                type: keyword
 | 
	
		
			
				|  |  | +                time_series_dimension: true
 | 
	
		
			
				|  |  | +              k8s:
 | 
	
		
			
				|  |  | +                properties:
 | 
	
		
			
				|  |  | +                  pod:
 | 
	
		
			
				|  |  | +                    properties:
 | 
	
		
			
				|  |  | +                      uid:
 | 
	
		
			
				|  |  | +                        type: keyword
 | 
	
		
			
				|  |  | +                        time_series_dimension: true
 | 
	
		
			
				|  |  | +                      name:
 | 
	
		
			
				|  |  | +                        type: keyword
 | 
	
		
			
				|  |  | +                      created_at:
 | 
	
		
			
				|  |  | +                        type: date_nanos
 | 
	
		
			
				|  |  | +                      running:
 | 
	
		
			
				|  |  | +                        type: boolean
 | 
	
		
			
				|  |  | +                      number_of_containers:
 | 
	
		
			
				|  |  | +                        type: integer
 | 
	
		
			
				|  |  | +                      ip:
 | 
	
		
			
				|  |  | +                        type: ip
 | 
	
		
			
				|  |  | +                      tags:
 | 
	
		
			
				|  |  | +                        type: keyword
 | 
	
		
			
				|  |  | +                      values:
 | 
	
		
			
				|  |  | +                        type: integer
 | 
	
		
			
				|  |  | +                      multi-counter:
 | 
	
		
			
				|  |  | +                        type: long
 | 
	
		
			
				|  |  | +                        time_series_metric: counter
 | 
	
		
			
				|  |  | +                      scaled-counter:
 | 
	
		
			
				|  |  | +                        type: scaled_float
 | 
	
		
			
				|  |  | +                        scaling_factor: 100
 | 
	
		
			
				|  |  | +                        time_series_metric: counter
 | 
	
		
			
				|  |  | +                      multi-gauge:
 | 
	
		
			
				|  |  | +                        type: integer
 | 
	
		
			
				|  |  | +                        time_series_metric: gauge
 | 
	
		
			
				|  |  | +                      scaled-gauge:
 | 
	
		
			
				|  |  | +                        type: scaled_float
 | 
	
		
			
				|  |  | +                        scaling_factor: 100
 | 
	
		
			
				|  |  | +                        time_series_metric: gauge
 | 
	
		
			
				|  |  | +                      network:
 | 
	
		
			
				|  |  | +                        properties:
 | 
	
		
			
				|  |  | +                          tx:
 | 
	
		
			
				|  |  | +                            type: long
 | 
	
		
			
				|  |  | +                            time_series_metric: gauge
 | 
	
		
			
				|  |  | +                          rx:
 | 
	
		
			
				|  |  | +                            type: long
 | 
	
		
			
				|  |  | +                            time_series_metric: gauge
 | 
	
		
			
				|  |  | +  - do:
 | 
	
		
			
				|  |  | +      bulk:
 | 
	
		
			
				|  |  | +        refresh: true
 | 
	
		
			
				|  |  | +        index: test
 | 
	
		
			
				|  |  | +        body:
 | 
	
		
			
				|  |  | +          - '{"index": {}}'
 | 
	
		
			
				|  |  | +          - '{"@timestamp": "2021-04-28T18:50:04.467Z", "metricset": "pod", "k8s": {"pod": {"name": "cat", "uid":"947e4ced-1786-4e53-9e0c-5c447e959507", "ip": "10.10.55.1", "multi-counter" : [10, 11, 12], "scaled-counter": 10.0, "multi-gauge": [100, 200, 150], "scaled-gauge": 100.0,  "network": {"tx": 2001818691, "rx": 802133794}, "created_at": "2021-04-28T19:34:00.000Z", "running": false, "number_of_containers": 2, "tags": ["backend", "prod"], "values": [2, 3, 6]}}}'
 | 
	
		
			
				|  |  | +          - '{"index": {}}'
 | 
	
		
			
				|  |  | +          - '{"@timestamp": "2021-04-28T18:50:24.467Z", "metricset": "pod", "k8s": {"pod": {"name": "cat", "uid":"947e4ced-1786-4e53-9e0c-5c447e959507", "ip": "10.10.55.26", "multi-counter" : [21, 22, 23], "scaled-counter": 20.0, "multi-gauge": [90, 91, 95], "scaled-gauge": 90.0, "network": {"tx": 2005177954, "rx": 801479970}, "created_at": "2021-04-28T19:35:00.000Z", "running": true, "number_of_containers": 2, "tags": ["backend", "prod", "us-west1"], "values": [1, 1, 3]}}}'
 | 
	
		
			
				|  |  | +          - '{"index": {}}'
 | 
	
		
			
				|  |  | +          - '{"@timestamp": "2021-04-28T20:50:44.467Z", "metricset": "pod", "k8s": {"pod": {"name": "cat", "uid":"947e4ced-1786-4e53-9e0c-5c447e959507", "ip": "10.10.55.41", "multi-counter" : [1, 5, 10], "scaled-counter": 1.0, "multi-gauge": [103, 110, 109], "scaled-gauge": 104.0, "network": {"tx": 2006223737, "rx": 802337279}, "created_at": "2021-04-28T19:36:00.000Z", "running": true, "number_of_containers": 2, "tags": ["backend", "prod", "us-west2"], "values": [4, 1, 2]}}}'
 | 
	
		
			
				|  |  | +          - '{"index": {}}'
 | 
	
		
			
				|  |  | +          - '{"@timestamp": "2021-04-28T20:51:04.467Z", "metricset": "pod", "k8s": {"pod": {"name": "cat", "uid":"947e4ced-1786-4e53-9e0c-5c447e959507", "ip": "10.10.55.22", "multi-counter" : [101, 102, 105], "scaled-counter": 100.0, "multi-gauge": [100, 100, 100], "scaled-gauge": 102.0, "network": {"tx": 2012916202, "rx": 803685721}, "created_at": "2021-04-28T19:37:00.000Z", "running": true, "number_of_containers": 2, "tags": ["backend", "prod"], "values": [2, 3, 1]}}}'
 | 
	
		
			
				|  |  | +          - '{"index": {}}'
 | 
	
		
			
				|  |  | +          - '{"@timestamp": "2021-04-28T18:50:03.142Z", "metricset": "pod", "k8s": {"pod": {"name": "dog", "uid":"df3145b3-0563-4d3b-a0f7-897eb2876ea9", "ip": "10.10.55.33", "multi-counter" : [7, 11, 44], "scaled-counter": 7.0, "multi-gauge": [100, 100, 102], "scaled-gauge": 100.0, "network": {"tx": 1434521831, "rx": 530575198}, "created_at": "2021-04-28T19:42:00.000Z", "running": false, "number_of_containers": 1, "tags": ["backend", "test"], "values": [2, 3, 4]}}}'
 | 
	
		
			
				|  |  | +          - '{"index": {}}'
 | 
	
		
			
				|  |  | +          - '{"@timestamp": "2021-04-28T18:50:23.142Z", "metricset": "pod", "k8s": {"pod": {"name": "dog", "uid":"df3145b3-0563-4d3b-a0f7-897eb2876ea9", "ip": "10.10.55.56", "multi-counter" : [0, 0, 1], "scaled-counter": 0.0, "multi-gauge": [101, 102, 102], "scaled-gauge": 101.0, "network": {"tx": 1434577921, "rx": 530600088}, "created_at": "2021-04-28T19:43:00.000Z", "running": false, "number_of_containers": 1, "tags": ["backend", "test", "us-west2"], "values": [2, 1, 1]}}}'
 | 
	
		
			
				|  |  | +          - '{"index": {}}'
 | 
	
		
			
				|  |  | +          - '{"@timestamp": "2021-04-28T19:50:53.142Z", "metricset": "pod", "k8s": {"pod": {"name": "dog", "uid":"df3145b3-0563-4d3b-a0f7-897eb2876ea9", "ip": "10.10.55.37", "multi-counter" : [1000, 1001, 1002], "scaled-counter": 1000.0, "multi-gauge": [99, 100, 110], "scaled-gauge": 99.0, "network": {"tx": 1434587694, "rx": 530604797}, "created_at": "2021-04-28T19:44:00.000Z", "running": true, "number_of_containers": 1, "tags": ["backend", "test", "us-west1"], "values": [4, 5, 2]}}}'
 | 
	
		
			
				|  |  | +          - '{"index": {}}'
 | 
	
		
			
				|  |  | +          - '{"@timestamp": "2021-04-28T19:51:03.142Z", "metricset": "pod", "k8s": {"pod": {"name": "dog", "uid":"df3145b3-0563-4d3b-a0f7-897eb2876ea9", "ip": "10.10.55.120", "multi-counter" : [76, 77, 78], "scaled-counter": 70.0, "multi-gauge": [95, 98, 100], "scaled-gauge": 95.0, "network": {"tx": 1434595272, "rx": 530605511}, "created_at": "2021-04-28T19:45:00.000Z", "running": true, "number_of_containers": 1, "tags": ["backend", "test", "us-west1"], "values": [3, 2, 1]}}}'
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - do:
 | 
	
		
			
				|  |  | +      indices.put_settings:
 | 
	
		
			
				|  |  | +        index: test
 | 
	
		
			
				|  |  | +        body:
 | 
	
		
			
				|  |  | +          index.blocks.write: true
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +---
 | 
	
		
			
				|  |  | +"Downsample index":
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - do:
 | 
	
		
			
				|  |  | +      indices.downsample:
 | 
	
		
			
				|  |  | +        index: test
 | 
	
		
			
				|  |  | +        target_index: test-downsample
 | 
	
		
			
				|  |  | +        body:  >
 | 
	
		
			
				|  |  | +          {
 | 
	
		
			
				|  |  | +            "fixed_interval": "1h"
 | 
	
		
			
				|  |  | +          }
 | 
	
		
			
				|  |  | +  - is_true: acknowledged
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - do:
 | 
	
		
			
				|  |  | +      search:
 | 
	
		
			
				|  |  | +        index: test-downsample
 | 
	
		
			
				|  |  | +        body:
 | 
	
		
			
				|  |  | +          sort: [ "@timestamp" ]
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - length: { hits.hits: 4 }
 | 
	
		
			
				|  |  | +  - match:  { hits.hits.0._source._doc_count: 2 }
 | 
	
		
			
				|  |  | +  - match:  { hits.hits.0._source.metricset: pod }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  # Assert rollup index settings
 | 
	
		
			
				|  |  | +  - do:
 | 
	
		
			
				|  |  | +      indices.get_settings:
 | 
	
		
			
				|  |  | +        index: test-downsample
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - match: { test-downsample.settings.index.mode: time_series }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.settings.index.time_series.end_time:   2021-04-29T00:00:00Z }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.settings.index.time_series.start_time: 2021-04-28T00:00:00Z }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.settings.index.routing_path: [ "metricset", "k8s.pod.uid"] }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.settings.index.downsample.source.name: test }
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  # Assert rollup index mapping
 | 
	
		
			
				|  |  | +  - do:
 | 
	
		
			
				|  |  | +      indices.get_mapping:
 | 
	
		
			
				|  |  | +        index: test-downsample
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +  - match: { test-downsample.mappings.properties.@timestamp.type: date }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.mappings.properties.@timestamp.meta.fixed_interval: 1h }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.mappings.properties.@timestamp.meta.time_zone: UTC }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.mappings.properties.k8s.properties.pod.properties.multi-gauge.type: aggregate_metric_double }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.mappings.properties.k8s.properties.pod.properties.multi-gauge.metrics: [ "min", "max", "sum", "value_count" ] }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.mappings.properties.k8s.properties.pod.properties.multi-gauge.default_metric: max }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.mappings.properties.k8s.properties.pod.properties.multi-gauge.time_series_metric: gauge }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.mappings.properties.k8s.properties.pod.properties.multi-counter.type: long }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.mappings.properties.k8s.properties.pod.properties.multi-counter.time_series_metric: counter }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.mappings.properties.k8s.properties.pod.properties.scaled-counter.type: scaled_float }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.mappings.properties.k8s.properties.pod.properties.scaled-counter.scaling_factor: 100 }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.mappings.properties.k8s.properties.pod.properties.scaled-counter.time_series_metric: counter }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.mappings.properties.k8s.properties.pod.properties.scaled-gauge.type: aggregate_metric_double }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.mappings.properties.k8s.properties.pod.properties.scaled-gauge.metrics: [ "min", "max", "sum", "value_count" ] }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.mappings.properties.k8s.properties.pod.properties.scaled-gauge.default_metric: max }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.mappings.properties.k8s.properties.pod.properties.scaled-gauge.time_series_metric: gauge }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.mappings.properties.k8s.properties.pod.properties.uid.type: keyword }
 | 
	
		
			
				|  |  | +  - match: { test-downsample.mappings.properties.k8s.properties.pod.properties.uid.time_series_dimension: true }
 |