From e81031dfd0d8f89c15de9d88214e3562314c3f76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Krzysztof=20D=C4=85browski?= Date: Wed, 1 Jul 2020 21:40:08 +0200 Subject: [PATCH] Accept decimal point when parsing kibana uptime (#7768) --- plugins/inputs/kibana/kibana.go | 12 ++++++------ plugins/inputs/kibana/testdata_test6_5.go | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/plugins/inputs/kibana/kibana.go b/plugins/inputs/kibana/kibana.go index 76ee04429..7a2f7ae3d 100644 --- a/plugins/inputs/kibana/kibana.go +++ b/plugins/inputs/kibana/kibana.go @@ -43,7 +43,7 @@ type overallStatus struct { } type metrics struct { - UptimeInMillis int64 `json:"uptime_in_millis"` + UptimeInMillis float64 `json:"uptime_in_millis"` ConcurrentConnections int64 `json:"concurrent_connections"` CollectionIntervalInMilles int64 `json:"collection_interval_in_millis"` ResponseTimes responseTimes `json:"response_times"` @@ -57,9 +57,9 @@ type responseTimes struct { } type process struct { - Mem mem `json:"mem"` - Memory memory `json:"memory"` - UptimeInMillis int64 `json:"uptime_in_millis"` + Mem mem `json:"mem"` + Memory memory `json:"memory"` + UptimeInMillis float64 `json:"uptime_in_millis"` } type requests struct { @@ -220,12 +220,12 @@ func (k *Kibana) gatherKibanaStatus(baseUrl string, acc telegraf.Accumulator) er // Same value will be assigned to both the metrics [heap_max_bytes and heap_total_bytes ] // Which keeps the code backward compatible if versionNumber >= 6.4 { - fields["uptime_ms"] = kibanaStatus.Metrics.Process.UptimeInMillis + fields["uptime_ms"] = int64(kibanaStatus.Metrics.Process.UptimeInMillis) fields["heap_max_bytes"] = kibanaStatus.Metrics.Process.Memory.Heap.TotalInBytes fields["heap_total_bytes"] = kibanaStatus.Metrics.Process.Memory.Heap.TotalInBytes fields["heap_used_bytes"] = kibanaStatus.Metrics.Process.Memory.Heap.UsedInBytes } else { - fields["uptime_ms"] = kibanaStatus.Metrics.UptimeInMillis + fields["uptime_ms"] = int64(kibanaStatus.Metrics.UptimeInMillis) fields["heap_max_bytes"] = kibanaStatus.Metrics.Process.Mem.HeapMaxInBytes fields["heap_total_bytes"] = kibanaStatus.Metrics.Process.Mem.HeapMaxInBytes fields["heap_used_bytes"] = kibanaStatus.Metrics.Process.Mem.HeapUsedInBytes diff --git a/plugins/inputs/kibana/testdata_test6_5.go b/plugins/inputs/kibana/testdata_test6_5.go index f47878b11..a000229c1 100644 --- a/plugins/inputs/kibana/testdata_test6_5.go +++ b/plugins/inputs/kibana/testdata_test6_5.go @@ -166,7 +166,7 @@ const kibanaStatusResponse6_5 = ` }, "event_loop_delay": 0.5314235687255859, "pid": 6, - "uptime_in_millis": 2173595336 + "uptime_in_millis": 2173595336.9999999998 }, "os": { "load": { @@ -219,7 +219,7 @@ var kibanaStatusExpected6_5 = map[string]interface{}{ "heap_total_bytes": int64(149954560), "heap_max_bytes": int64(149954560), "heap_used_bytes": int64(126274392), - "uptime_ms": int64(2173595336), + "uptime_ms": int64(2173595337), "response_time_avg_ms": float64(12.5), "response_time_max_ms": int64(123), "concurrent_connections": int64(10),