Promql: Add clarifying note to Point.MarshalJSON
@@ -88,6 +88,14 @@ func (p Point) String() string {
}
// MarshalJSON implements json.Marshaler.
+//
+// JSON marshaling is only needed for the HTTP API. Since Point is such a
+// frequently marshaled type, it gets an optimized treatment directly in
+// web/api/v1/api.go. Therefore, this method is unused within Prometheus. It is
+// still provided here as convenience for debugging and for other users of this
+// code. Also note that the different marshaling implementations might lead to
+// slightly different results in terms of formatting and rounding of the
+// timestamp.
func (p Point) MarshalJSON() ([]byte, error) {
v := strconv.FormatFloat(p.V, 'f', -1, 64)
return json.Marshal([...]interface{}{float64(p.T) / 1000, v})
