From c90006a54e84ea98de0f434065b4d92de6387bf6 Mon Sep 17 00:00:00 2001 From: Tetiana Kravchenko Date: Thu, 21 Sep 2023 19:03:56 +0200 Subject: [PATCH] Align on the algorithm used to transform Prometheus histograms into Elasticsearch histograms: Use the preceding bucket's value for +Inf 'le', for the first bucket only: if it has a negative 'le', use the value as-is; add test for the negative buckets; extend explanation on the counts calculation Signed-off-by: Tetiana Kravchenko --- CHANGELOG.next.asciidoc | 1 + .../prometheus/collector/_meta/data.json | 2 +- .../_meta/testdata/docs.plain-expected.json | 44 +-- .../metrics-with-naninf.plain-expected.json | 86 ++-- ...ometheus-2.6.0-partial.plain-expected.json | 374 +++++++++--------- .../module/prometheus/collector/histogram.go | 30 +- .../prometheus/collector/histogram_test.go | 58 +++ .../enterprisesearch-xpack.yml.disabled | 11 - 8 files changed, 333 insertions(+), 273 deletions(-) delete mode 100644 x-pack/metricbeat/modules.d/enterprisesearch-xpack.yml.disabled diff --git a/CHANGELOG.next.asciidoc b/CHANGELOG.next.asciidoc index c7124830c0df..ccc781531650 100644 --- a/CHANGELOG.next.asciidoc +++ b/CHANGELOG.next.asciidoc @@ -233,6 +233,7 @@ https://github.com/elastic/beats/compare/v8.8.1\...main[Check the HEAD diff] - Add GCP CloudSQL metadata {pull}33066[33066] - Add GCP Carbon Footprint metricbeat data {pull}34820[34820] - Add event loop utilization metric to Kibana module {pull}35020[35020] +- Align on the algorithm used to transform Prometheus histograms into Elasticsearch histograms *Osquerybeat* diff --git a/x-pack/metricbeat/module/prometheus/collector/_meta/data.json b/x-pack/metricbeat/module/prometheus/collector/_meta/data.json index f6c2e256b753..a9f1a53d10c2 100644 --- a/x-pack/metricbeat/module/prometheus/collector/_meta/data.json +++ b/x-pack/metricbeat/module/prometheus/collector/_meta/data.json @@ -11,7 +11,7 @@ }, "prometheus": { "labels": { - "device": "br-210476dc4ef8", + "device": "br-4e623477470e", "job": "prometheus" }, "node_network_carrier": { diff --git a/x-pack/metricbeat/module/prometheus/collector/_meta/testdata/docs.plain-expected.json b/x-pack/metricbeat/module/prometheus/collector/_meta/testdata/docs.plain-expected.json index 6810afce3f63..2b1a2f55d70b 100644 --- a/x-pack/metricbeat/module/prometheus/collector/_meta/testdata/docs.plain-expected.json +++ b/x-pack/metricbeat/module/prometheus/collector/_meta/testdata/docs.plain-expected.json @@ -11,8 +11,8 @@ }, "prometheus": { "labels": { - "device": "br-210476dc4ef8", - "instance": "127.0.0.1:41313", + "device": "br-4e623477470e", + "instance": "127.0.0.1:64033", "job": "prometheus" }, "node_network_carrier": { @@ -36,8 +36,8 @@ }, "prometheus": { "labels": { - "device": "br-0cb306323b90", - "instance": "127.0.0.1:41313", + "device": "br-210476dc4ef8", + "instance": "127.0.0.1:64033", "job": "prometheus" }, "node_network_carrier": { @@ -61,12 +61,11 @@ }, "prometheus": { "labels": { - "device": "br-10229e3512d9", - "instance": "127.0.0.1:41313", + "instance": "127.0.0.1:64033", "job": "prometheus" }, - "node_network_carrier": { - "value": 0 + "up": { + "value": 1 } }, "service": { @@ -87,7 +86,7 @@ "prometheus": { "labels": { "device": "br-33d819d5f834", - "instance": "127.0.0.1:41313", + "instance": "127.0.0.1:64033", "job": "prometheus" }, "node_network_carrier": { @@ -111,11 +110,12 @@ }, "prometheus": { "labels": { - "instance": "127.0.0.1:41313", + "device": "br-10229e3512d9", + "instance": "127.0.0.1:64033", "job": "prometheus" }, - "up": { - "value": 1 + "node_network_carrier": { + "value": 0 } }, "service": { @@ -135,8 +135,8 @@ }, "prometheus": { "labels": { - "device": "br-38425a39f36b", - "instance": "127.0.0.1:41313", + "device": "br-38feb0aad6ab", + "instance": "127.0.0.1:64033", "job": "prometheus" }, "node_network_carrier": { @@ -160,8 +160,8 @@ }, "prometheus": { "labels": { - "device": "br-3a285aa5e58c", - "instance": "127.0.0.1:41313", + "device": "br-0cb306323b90", + "instance": "127.0.0.1:64033", "job": "prometheus" }, "node_network_carrier": { @@ -185,8 +185,8 @@ }, "prometheus": { "labels": { - "device": "br-38feb0aad6ab", - "instance": "127.0.0.1:41313", + "device": "br-3a285aa5e58c", + "instance": "127.0.0.1:64033", "job": "prometheus" }, "node_network_carrier": { @@ -210,8 +210,8 @@ }, "prometheus": { "labels": { - "device": "br-4e623477470e", - "instance": "127.0.0.1:41313", + "device": "br-425cb4c454a6", + "instance": "127.0.0.1:64033", "job": "prometheus" }, "node_network_carrier": { @@ -235,8 +235,8 @@ }, "prometheus": { "labels": { - "device": "br-425cb4c454a6", - "instance": "127.0.0.1:41313", + "device": "br-38425a39f36b", + "instance": "127.0.0.1:64033", "job": "prometheus" }, "node_network_carrier": { diff --git a/x-pack/metricbeat/module/prometheus/collector/_meta/testdata/metrics-with-naninf.plain-expected.json b/x-pack/metricbeat/module/prometheus/collector/_meta/testdata/metrics-with-naninf.plain-expected.json index d781fda7bc8d..b2c36b40bfc3 100644 --- a/x-pack/metricbeat/module/prometheus/collector/_meta/testdata/metrics-with-naninf.plain-expected.json +++ b/x-pack/metricbeat/module/prometheus/collector/_meta/testdata/metrics-with-naninf.plain-expected.json @@ -10,13 +10,38 @@ "period": 10000 }, "prometheus": { - "go_gc_duration_seconds": { - "value": 0.000098154 + "go_gc_duration_seconds_count": { + "counter": 13118, + "rate": 0 + }, + "go_gc_duration_seconds_sum": { + "counter": 3.451780079, + "rate": 0 + }, + "http_request_duration_seconds": { + "histogram": { + "counts": [ + 0, + 0, + 0, + 0, + 0 + ], + "values": [ + 0.5, + 1.5, + 2.5, + 4, + 5 + ] + } }, "labels": { - "instance": "127.0.0.1:42061", - "job": "prometheus", - "quantile": "0.75" + "instance": "127.0.0.1:64035", + "job": "prometheus" + }, + "up": { + "value": 1 } }, "service": { @@ -39,7 +64,7 @@ "value": 0.011689149 }, "labels": { - "instance": "127.0.0.1:42061", + "instance": "127.0.0.1:64035", "job": "prometheus", "quantile": "1" } @@ -60,37 +85,12 @@ "period": 10000 }, "prometheus": { - "go_gc_duration_seconds_count": { - "counter": 13118, - "rate": 0 - }, - "go_gc_duration_seconds_sum": { - "counter": 3.451780079, - "rate": 0 - }, - "http_request_duration_seconds": { - "histogram": { - "counts": [ - 0, - 0, - 0, - 0, - 0 - ], - "values": [ - 0.5, - 1.5, - 2.5, - 4, - 7 - ] - } - }, - "up": { - "value": 1 + "kafka_consumer_records_lag_records": { + "value": 5 }, "labels": { - "instance": "127.0.0.1:42061", + "client_id": "consumer4", + "instance": "127.0.0.1:64035", "job": "prometheus" } }, @@ -110,13 +110,13 @@ "period": 10000 }, "prometheus": { - "kafka_consumer_records_lag_records": { - "value": 5 + "go_gc_duration_seconds": { + "value": 0.000098154 }, "labels": { - "client_id": "consumer4", - "instance": "127.0.0.1:42061", - "job": "prometheus" + "instance": "127.0.0.1:64035", + "job": "prometheus", + "quantile": "0.75" } }, "service": { @@ -140,7 +140,7 @@ "rate": 0 }, "labels": { - "instance": "127.0.0.1:42061", + "instance": "127.0.0.1:64035", "job": "prometheus", "method": "GET" } @@ -162,7 +162,7 @@ }, "prometheus": { "labels": { - "instance": "127.0.0.1:42061", + "instance": "127.0.0.1:64035", "job": "prometheus", "listener_name": "http" }, @@ -175,4 +175,4 @@ "type": "prometheus" } } -] +] \ No newline at end of file diff --git a/x-pack/metricbeat/module/prometheus/collector/_meta/testdata/prometheus-2.6.0-partial.plain-expected.json b/x-pack/metricbeat/module/prometheus/collector/_meta/testdata/prometheus-2.6.0-partial.plain-expected.json index a1e48feb18d2..c6c4f34bba50 100644 --- a/x-pack/metricbeat/module/prometheus/collector/_meta/testdata/prometheus-2.6.0-partial.plain-expected.json +++ b/x-pack/metricbeat/module/prometheus/collector/_meta/testdata/prometheus-2.6.0-partial.plain-expected.json @@ -11,12 +11,12 @@ }, "prometheus": { "labels": { - "dialer_name": "prometheus", - "instance": "127.0.0.1:34181", + "dialer_name": "alertmanager", + "instance": "127.0.0.1:64037", "job": "prometheus" }, "net_conntrack_dialer_conn_attempted_total": { - "counter": 1, + "counter": 0, "rate": 0 }, "net_conntrack_dialer_conn_closed_total": { @@ -24,36 +24,6 @@ "rate": 0 }, "net_conntrack_dialer_conn_established_total": { - "counter": 1, - "rate": 0 - } - }, - "service": { - "address": "127.0.0.1:55555", - "type": "prometheus" - } - }, - { - "event": { - "dataset": "prometheus.collector", - "duration": 115000, - "module": "prometheus" - }, - "metricset": { - "name": "collector", - "period": 10000 - }, - "prometheus": { - "labels": { - "instance": "127.0.0.1:34181", - "job": "prometheus", - "listener_name": "http" - }, - "net_conntrack_listener_conn_accepted_total": { - "counter": 3, - "rate": 0 - }, - "net_conntrack_listener_conn_closed_total": { "counter": 0, "rate": 0 } @@ -74,127 +44,13 @@ "period": 10000 }, "prometheus": { - "go_gc_duration_seconds_count": { - "counter": 4, - "rate": 0 - }, - "go_gc_duration_seconds_sum": { - "counter": 0.004534198, - "rate": 0 - }, - "go_goroutines": { - "value": 35 - }, - "go_memstats_alloc_bytes": { - "value": 10558112 - }, - "go_memstats_alloc_bytes_total": { - "counter": 14087760, - "rate": 0 - }, - "go_memstats_buck_hash_sys_bytes": { - "value": 1447018 - }, - "go_memstats_frees_total": { - "counter": 15673, - "rate": 0 - }, - "go_memstats_gc_cpu_fraction": { - "value": 0.0008429952574435172 - }, - "go_memstats_gc_sys_bytes": { - "value": 2379776 - }, - "go_memstats_heap_alloc_bytes": { - "value": 10558112 - }, - "go_memstats_heap_idle_bytes": { - "value": 54042624 - }, - "go_memstats_heap_inuse_bytes": { - "value": 12214272 - }, - "go_memstats_heap_objects": { - "value": 61771 - }, - "go_memstats_heap_released_bytes": { - "value": 0 - }, - "go_memstats_heap_sys_bytes": { - "value": 66256896 - }, - "go_memstats_last_gc_time_seconds": { - "value": 1553430316.1488917 - }, - "go_memstats_lookups_total": { - "counter": 0, - "rate": 0 - }, - "go_memstats_mallocs_total": { - "counter": 77444, - "rate": 0 - }, - "go_memstats_mcache_inuse_bytes": { - "value": 6912 - }, - "go_memstats_mcache_sys_bytes": { - "value": 16384 - }, - "go_memstats_mspan_inuse_bytes": { - "value": 127984 - }, - "go_memstats_mspan_sys_bytes": { - "value": 131072 - }, - "go_memstats_next_gc_bytes": { - "value": 18390112 - }, - "go_memstats_other_sys_bytes": { - "value": 1201294 - }, - "go_memstats_stack_inuse_bytes": { - "value": 851968 - }, - "go_memstats_stack_sys_bytes": { - "value": 851968 - }, - "go_memstats_sys_bytes": { - "value": 72284408 - }, - "go_threads": { - "value": 14 + "go_gc_duration_seconds": { + "value": 0.000042803 }, "labels": { - "instance": "127.0.0.1:34181", - "job": "prometheus" - }, - "process_cpu_seconds_total": { - "counter": 0.14, - "rate": 0 - }, - "process_max_fds": { - "value": 1048576 - }, - "process_open_fds": { - "value": 13 - }, - "process_resident_memory_bytes": { - "value": 35934208 - }, - "process_start_time_seconds": { - "value": 1553430305.4 - }, - "process_virtual_memory_bytes": { - "value": 150646784 - }, - "process_virtual_memory_max_bytes": { - "value": -1 - }, - "prometheus_api_remote_read_queries": { - "value": 0 - }, - "up": { - "value": 1 + "instance": "127.0.0.1:64037", + "job": "prometheus", + "quantile": "0.25" } }, "service": { @@ -214,19 +70,15 @@ }, "prometheus": { "labels": { - "dialer_name": "default", - "instance": "127.0.0.1:34181", - "job": "prometheus" - }, - "net_conntrack_dialer_conn_attempted_total": { - "counter": 0, - "rate": 0 + "instance": "127.0.0.1:64037", + "job": "prometheus", + "listener_name": "http" }, - "net_conntrack_dialer_conn_closed_total": { - "counter": 0, + "net_conntrack_listener_conn_accepted_total": { + "counter": 3, "rate": 0 }, - "net_conntrack_dialer_conn_established_total": { + "net_conntrack_listener_conn_closed_total": { "counter": 0, "rate": 0 } @@ -247,13 +99,13 @@ "period": 10000 }, "prometheus": { - "go_info": { - "value": 1 + "go_gc_duration_seconds": { + "value": 0.004392391 }, "labels": { - "instance": "127.0.0.1:34181", + "instance": "127.0.0.1:64037", "job": "prometheus", - "version": "go1.11.3" + "quantile": "0.75" } }, "service": { @@ -273,12 +125,12 @@ }, "prometheus": { "labels": { - "dialer_name": "alertmanager", - "instance": "127.0.0.1:34181", + "dialer_name": "prometheus", + "instance": "127.0.0.1:64037", "job": "prometheus" }, "net_conntrack_dialer_conn_attempted_total": { - "counter": 0, + "counter": 1, "rate": 0 }, "net_conntrack_dialer_conn_closed_total": { @@ -286,7 +138,7 @@ "rate": 0 }, "net_conntrack_dialer_conn_established_total": { - "counter": 0, + "counter": 1, "rate": 0 } }, @@ -307,12 +159,12 @@ }, "prometheus": { "go_gc_duration_seconds": { - "value": 0.004392391 + "value": 0.000060618 }, "labels": { - "instance": "127.0.0.1:34181", + "instance": "127.0.0.1:64037", "job": "prometheus", - "quantile": "1" + "quantile": "0.5" } }, "service": { @@ -335,7 +187,7 @@ "value": 0.000038386 }, "labels": { - "instance": "127.0.0.1:34181", + "instance": "127.0.0.1:64037", "job": "prometheus", "quantile": "0" } @@ -357,12 +209,12 @@ }, "prometheus": { "go_gc_duration_seconds": { - "value": 0.000060618 + "value": 0.004392391 }, "labels": { - "instance": "127.0.0.1:34181", + "instance": "127.0.0.1:64037", "job": "prometheus", - "quantile": "0.5" + "quantile": "1" } }, "service": { @@ -381,13 +233,161 @@ "period": 10000 }, "prometheus": { - "go_gc_duration_seconds": { - "value": 0.000042803 + "labels": { + "dialer_name": "default", + "instance": "127.0.0.1:64037", + "job": "prometheus" + }, + "net_conntrack_dialer_conn_attempted_total": { + "counter": 0, + "rate": 0 + }, + "net_conntrack_dialer_conn_closed_total": { + "counter": 0, + "rate": 0 + }, + "net_conntrack_dialer_conn_established_total": { + "counter": 0, + "rate": 0 + } + }, + "service": { + "address": "127.0.0.1:55555", + "type": "prometheus" + } + }, + { + "event": { + "dataset": "prometheus.collector", + "duration": 115000, + "module": "prometheus" + }, + "metricset": { + "name": "collector", + "period": 10000 + }, + "prometheus": { + "go_gc_duration_seconds_count": { + "counter": 4, + "rate": 0 + }, + "go_gc_duration_seconds_sum": { + "counter": 0.004534198, + "rate": 0 + }, + "go_goroutines": { + "value": 35 + }, + "go_memstats_alloc_bytes": { + "value": 10558112 + }, + "go_memstats_alloc_bytes_total": { + "counter": 14087760, + "rate": 0 + }, + "go_memstats_buck_hash_sys_bytes": { + "value": 1447018 + }, + "go_memstats_frees_total": { + "counter": 15673, + "rate": 0 + }, + "go_memstats_gc_cpu_fraction": { + "value": 0.0008429952574435172 + }, + "go_memstats_gc_sys_bytes": { + "value": 2379776 + }, + "go_memstats_heap_alloc_bytes": { + "value": 10558112 + }, + "go_memstats_heap_idle_bytes": { + "value": 54042624 + }, + "go_memstats_heap_inuse_bytes": { + "value": 12214272 + }, + "go_memstats_heap_objects": { + "value": 61771 + }, + "go_memstats_heap_released_bytes": { + "value": 0 + }, + "go_memstats_heap_sys_bytes": { + "value": 66256896 + }, + "go_memstats_last_gc_time_seconds": { + "value": 1553430316.1488917 + }, + "go_memstats_lookups_total": { + "counter": 0, + "rate": 0 + }, + "go_memstats_mallocs_total": { + "counter": 77444, + "rate": 0 + }, + "go_memstats_mcache_inuse_bytes": { + "value": 6912 + }, + "go_memstats_mcache_sys_bytes": { + "value": 16384 + }, + "go_memstats_mspan_inuse_bytes": { + "value": 127984 + }, + "go_memstats_mspan_sys_bytes": { + "value": 131072 + }, + "go_memstats_next_gc_bytes": { + "value": 18390112 + }, + "go_memstats_other_sys_bytes": { + "value": 1201294 + }, + "go_memstats_stack_inuse_bytes": { + "value": 851968 + }, + "go_memstats_stack_sys_bytes": { + "value": 851968 + }, + "go_memstats_sys_bytes": { + "value": 72284408 + }, + "go_threads": { + "value": 14 }, "labels": { - "instance": "127.0.0.1:34181", - "job": "prometheus", - "quantile": "0.25" + "instance": "127.0.0.1:64037", + "job": "prometheus" + }, + "process_cpu_seconds_total": { + "counter": 0.14, + "rate": 0 + }, + "process_max_fds": { + "value": 1048576 + }, + "process_open_fds": { + "value": 13 + }, + "process_resident_memory_bytes": { + "value": 35934208 + }, + "process_start_time_seconds": { + "value": 1553430305.4 + }, + "process_virtual_memory_bytes": { + "value": 150646784 + }, + "process_virtual_memory_max_bytes": { + "value": -1 + }, + "prometheus_api_remote_read_queries": { + "value": 0 + }, + "up": { + "value": 1 } }, "service": { @@ -406,13 +406,13 @@ "period": 10000 }, "prometheus": { - "go_gc_duration_seconds": { - "value": 0.004392391 + "go_info": { + "value": 1 }, "labels": { - "instance": "127.0.0.1:34181", + "instance": "127.0.0.1:64037", "job": "prometheus", - "quantile": "0.75" + "version": "go1.11.3" } }, "service": { @@ -420,4 +420,4 @@ "type": "prometheus" } } -] +] \ No newline at end of file diff --git a/x-pack/metricbeat/module/prometheus/collector/histogram.go b/x-pack/metricbeat/module/prometheus/collector/histogram.go index 375e62def93b..edfedf2423d9 100644 --- a/x-pack/metricbeat/module/prometheus/collector/histogram.go +++ b/x-pack/metricbeat/module/prometheus/collector/histogram.go @@ -23,16 +23,23 @@ import ( // } // // This code takes a Prometheus histogram and tries to accommodate it into an ES histogram by: +// // - calculating centroids for each bucket (values) +// - for +Inf "le" bucket, use the preceding bucket's value +// - for the first bucket only: if it has a negative "le", use the value as-is; otherwise use half its value +// - for all other buckets, use the midpoint from that bucket's value to the preceding bucket's // - undoing counters accumulation for each bucket (counts) +// - `counts` is respresenting an array of rates, where rate of the first bucket is always 0, meaning that it +// was not increased as it is the first // // https://www.elastic.co/guide/en/elasticsearch/reference/master/histogram.html + func PromHistogramToES(cc CounterCache, name string, labels mapstr.M, histogram *p.Histogram) mapstr.M { var values []float64 var counts []uint64 // calculate centroids and rated counts - var lastUpper, prevUpper float64 + var lastUpper float64 var sumCount, prevCount uint64 for _, bucket := range histogram.GetBucket() { // Ignore non-numbers @@ -40,18 +47,23 @@ func PromHistogramToES(cc CounterCache, name string, labels mapstr.M, histogram continue } - if bucket.GetUpperBound() == math.Inf(0) { - // Report +Inf bucket as a point, interpolating its value - values = append(values, lastUpper+(lastUpper-prevUpper)) + bucketUpperBound := bucket.GetUpperBound() + if bucketUpperBound == math.Inf(0) { + // Report +Inf bucket as a point, use the preceding bucket's value + values = append(values, lastUpper) } else { - // calculate bucket centroid - values = append(values, lastUpper+(bucket.GetUpperBound()-lastUpper)/2.0) - prevUpper = lastUpper - lastUpper = bucket.GetUpperBound() + // for the first bucket only: if it has a negative "le", use the value as-is + if bucketUpperBound < 0 && len(values) == 0 { + values = append(values, bucketUpperBound) + } else { + // calculate bucket centroid + values = append(values, lastUpper+(bucketUpperBound-lastUpper)/2.0) + } + lastUpper = bucketUpperBound } // Take count for this period (rate) - countRate, found := cc.RateUint64(name+labels.String()+fmt.Sprintf("%f", bucket.GetUpperBound()), bucket.GetCumulativeCount()) + countRate, found := cc.RateUint64(name+labels.String()+fmt.Sprintf("%f", bucketUpperBound), bucket.GetCumulativeCount()) switch { case !found: diff --git a/x-pack/metricbeat/module/prometheus/collector/histogram_test.go b/x-pack/metricbeat/module/prometheus/collector/histogram_test.go index 5bfd9413230b..0aaf57a4a0c0 100644 --- a/x-pack/metricbeat/module/prometheus/collector/histogram_test.go +++ b/x-pack/metricbeat/module/prometheus/collector/histogram_test.go @@ -389,6 +389,64 @@ func TestPromHistogramToES(t *testing.T) { }, }, }, + "histogram with negative buckets": { + samples: []sample{ + { + histogram: p.Histogram{ + SampleCount: proto.Uint64(30), + SampleSum: proto.Float64(5), + Bucket: []*p.Bucket{ + { + UpperBound: proto.Float64(-100), + CumulativeCount: proto.Uint64(2), + }, + { + UpperBound: proto.Float64(-99), + CumulativeCount: proto.Uint64(10), + }, + { + UpperBound: proto.Float64(0), + CumulativeCount: proto.Uint64(30), + }, + }, + }, + expected: mapstr.M{ + // rate of the first bucket is always 0, meaning that it was not increased as it is the first + // count rate: [0, 8, 20] + "counts": []uint64{0, 0, 0}, + "values": []float64{-100, -99.5, -49.5}, + }, + }, + { + histogram: p.Histogram{ + SampleCount: proto.Uint64(100), + SampleSum: proto.Float64(20), + Bucket: []*p.Bucket{ + { + UpperBound: proto.Float64(-100), + CumulativeCount: proto.Uint64(5), + }, + { + UpperBound: proto.Float64(-99), + CumulativeCount: proto.Uint64(16), + }, + { + UpperBound: proto.Float64(0), + CumulativeCount: proto.Uint64(100), + }, + }, + }, + expected: mapstr.M{ + // counts calculation: + // UpperBound -100: 5-2 + // UpperBound -99: 16 - 5 (undo accumulation) - 8 (calculate rate) + // UpperBound 0: 100 - 16 (undo accumulation) - 20 (calculate rate) + "counts": []uint64{3, 3, 64}, + "values": []float64{-100, -99.5, -49.5}, + }, + }, + }, + }, } metricName := "somemetric" diff --git a/x-pack/metricbeat/modules.d/enterprisesearch-xpack.yml.disabled b/x-pack/metricbeat/modules.d/enterprisesearch-xpack.yml.disabled deleted file mode 100644 index 0af7916573a0..000000000000 --- a/x-pack/metricbeat/modules.d/enterprisesearch-xpack.yml.disabled +++ /dev/null @@ -1,11 +0,0 @@ -# Module: enterprisesearch -# Docs: https://www.elastic.co/guide/en/beats/metricbeat/main/metricbeat-module-enterprisesearch.html - -- module: enterprisesearch - xpack.enabled: true - metricsets: ["health", "stats"] - enabled: true - period: 10s - hosts: ["http://localhost:3002"] - #username: "user" - #password: "secret"