From 2a3d62ac845689f1cd949cd50b99f43ed090f442 Mon Sep 17 00:00:00 2001 From: Ganesh Vernekar <15064823+codesome@users.noreply.github.com> Date: Thu, 25 Nov 2021 17:07:55 +0530 Subject: [PATCH] Revert "promql: Remove unused Point.MarshalJSON method (#9860)" (#9864) This reverts commit 427425cc9f477db22a8b3b1e832c965033322a44. Signed-off-by: Ganesh Vernekar --- promql/value.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/promql/value.go b/promql/value.go index 176b85696..81af1ad9d 100644 --- a/promql/value.go +++ b/promql/value.go @@ -77,9 +77,6 @@ func (s Series) String() string { } // Point represents a single data point for a given timestamp. -// -// Note that Point's JSON marshaling is done in an optimized fashion in -// web/api/v1/api.go. Therefore, no MarshalJSON method is provided here. type Point struct { T int64 V float64 @@ -90,6 +87,12 @@ func (p Point) String() string { return fmt.Sprintf("%v @[%v]", v, p.T) } +// MarshalJSON implements json.Marshaler. +func (p Point) MarshalJSON() ([]byte, error) { + v := strconv.FormatFloat(p.V, 'f', -1, 64) + return json.Marshal([...]interface{}{float64(p.T) / 1000, v}) +} + // Sample is a single sample belonging to a metric. type Sample struct { Point