// Code generated by qtc from "render_response.qtpl". DO NOT EDIT. // See https://github.com/valyala/quicktemplate for details. //line app/vmselect/graphite/render_response.qtpl:3 package graphite //line app/vmselect/graphite/render_response.qtpl:3 import ( "math" "sort" ) // RenderJSONResponse generates response for /render?format=json .See https://graphite.readthedocs.io/en/stable/render_api.html#json //line app/vmselect/graphite/render_response.qtpl:10 import ( qtio422016 "io" qt422016 "github.com/valyala/quicktemplate" ) //line app/vmselect/graphite/render_response.qtpl:10 var ( _ = qtio422016.Copy _ = qt422016.AcquireByteBuffer ) //line app/vmselect/graphite/render_response.qtpl:10 func StreamRenderJSONResponse(qw422016 *qt422016.Writer, nextSeries nextSeriesFunc, jsonp string) { //line app/vmselect/graphite/render_response.qtpl:11 if jsonp != "" { //line app/vmselect/graphite/render_response.qtpl:11 qw422016.N().S(jsonp) //line app/vmselect/graphite/render_response.qtpl:11 qw422016.N().S(`(`) //line app/vmselect/graphite/render_response.qtpl:11 } //line app/vmselect/graphite/render_response.qtpl:12 ss, err := fetchAllSeries(nextSeries) //line app/vmselect/graphite/render_response.qtpl:13 if err != nil { //line app/vmselect/graphite/render_response.qtpl:13 qw422016.N().S(`{"error":`) //line app/vmselect/graphite/render_response.qtpl:15 qw422016.N().Q(err.Error()) //line app/vmselect/graphite/render_response.qtpl:15 qw422016.N().S(`}`) //line app/vmselect/graphite/render_response.qtpl:17 return //line app/vmselect/graphite/render_response.qtpl:18 } //line app/vmselect/graphite/render_response.qtpl:19 sort.Slice(ss, func(i, j int) bool { return ss[i].Name < ss[j].Name }) //line app/vmselect/graphite/render_response.qtpl:19 qw422016.N().S(`[`) //line app/vmselect/graphite/render_response.qtpl:21 for i, s := range ss { //line app/vmselect/graphite/render_response.qtpl:22 streamrenderSeriesJSON(qw422016, s) //line app/vmselect/graphite/render_response.qtpl:23 if i+1 < len(ss) { //line app/vmselect/graphite/render_response.qtpl:23 qw422016.N().S(`,`) //line app/vmselect/graphite/render_response.qtpl:23 } //line app/vmselect/graphite/render_response.qtpl:24 } //line app/vmselect/graphite/render_response.qtpl:24 qw422016.N().S(`]`) //line app/vmselect/graphite/render_response.qtpl:26 if jsonp != "" { //line app/vmselect/graphite/render_response.qtpl:26 qw422016.N().S(`)`) //line app/vmselect/graphite/render_response.qtpl:26 } //line app/vmselect/graphite/render_response.qtpl:27 } //line app/vmselect/graphite/render_response.qtpl:27 func WriteRenderJSONResponse(qq422016 qtio422016.Writer, nextSeries nextSeriesFunc, jsonp string) { //line app/vmselect/graphite/render_response.qtpl:27 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmselect/graphite/render_response.qtpl:27 StreamRenderJSONResponse(qw422016, nextSeries, jsonp) //line app/vmselect/graphite/render_response.qtpl:27 qt422016.ReleaseWriter(qw422016) //line app/vmselect/graphite/render_response.qtpl:27 } //line app/vmselect/graphite/render_response.qtpl:27 func RenderJSONResponse(nextSeries nextSeriesFunc, jsonp string) string { //line app/vmselect/graphite/render_response.qtpl:27 qb422016 := qt422016.AcquireByteBuffer() //line app/vmselect/graphite/render_response.qtpl:27 WriteRenderJSONResponse(qb422016, nextSeries, jsonp) //line app/vmselect/graphite/render_response.qtpl:27 qs422016 := string(qb422016.B) //line app/vmselect/graphite/render_response.qtpl:27 qt422016.ReleaseByteBuffer(qb422016) //line app/vmselect/graphite/render_response.qtpl:27 return qs422016 //line app/vmselect/graphite/render_response.qtpl:27 } //line app/vmselect/graphite/render_response.qtpl:29 func streamrenderSeriesJSON(qw422016 *qt422016.Writer, s *series) { //line app/vmselect/graphite/render_response.qtpl:29 qw422016.N().S(`{"target":`) //line app/vmselect/graphite/render_response.qtpl:31 qw422016.N().Q(s.Name) //line app/vmselect/graphite/render_response.qtpl:31 qw422016.N().S(`,"tags":{`) //line app/vmselect/graphite/render_response.qtpl:34 tagKeys := make([]string, 0, len(s.Tags)) for k := range s.Tags { tagKeys = append(tagKeys, k) } sort.Strings(tagKeys) //line app/vmselect/graphite/render_response.qtpl:40 for i, k := range tagKeys { //line app/vmselect/graphite/render_response.qtpl:41 v := s.Tags[k] //line app/vmselect/graphite/render_response.qtpl:42 qw422016.N().Q(k) //line app/vmselect/graphite/render_response.qtpl:42 qw422016.N().S(`:`) //line app/vmselect/graphite/render_response.qtpl:42 qw422016.N().Q(v) //line app/vmselect/graphite/render_response.qtpl:43 if i+1 < len(tagKeys) { //line app/vmselect/graphite/render_response.qtpl:43 qw422016.N().S(`,`) //line app/vmselect/graphite/render_response.qtpl:43 } //line app/vmselect/graphite/render_response.qtpl:44 } //line app/vmselect/graphite/render_response.qtpl:44 qw422016.N().S(`},"datapoints":[`) //line app/vmselect/graphite/render_response.qtpl:47 timestamps := s.Timestamps //line app/vmselect/graphite/render_response.qtpl:48 for i, v := range s.Values { //line app/vmselect/graphite/render_response.qtpl:48 qw422016.N().S(`[`) //line app/vmselect/graphite/render_response.qtpl:50 if math.IsNaN(v) { //line app/vmselect/graphite/render_response.qtpl:50 qw422016.N().S(`null`) //line app/vmselect/graphite/render_response.qtpl:50 } else { //line app/vmselect/graphite/render_response.qtpl:50 qw422016.N().F(v) //line app/vmselect/graphite/render_response.qtpl:50 } //line app/vmselect/graphite/render_response.qtpl:50 qw422016.N().S(`,`) //line app/vmselect/graphite/render_response.qtpl:51 qw422016.N().DL(timestamps[i] / 1e3) //line app/vmselect/graphite/render_response.qtpl:51 qw422016.N().S(`]`) //line app/vmselect/graphite/render_response.qtpl:53 if i+1 < len(timestamps) { //line app/vmselect/graphite/render_response.qtpl:53 qw422016.N().S(`,`) //line app/vmselect/graphite/render_response.qtpl:53 } //line app/vmselect/graphite/render_response.qtpl:54 } //line app/vmselect/graphite/render_response.qtpl:54 qw422016.N().S(`]}`) //line app/vmselect/graphite/render_response.qtpl:57 } //line app/vmselect/graphite/render_response.qtpl:57 func writerenderSeriesJSON(qq422016 qtio422016.Writer, s *series) { //line app/vmselect/graphite/render_response.qtpl:57 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmselect/graphite/render_response.qtpl:57 streamrenderSeriesJSON(qw422016, s) //line app/vmselect/graphite/render_response.qtpl:57 qt422016.ReleaseWriter(qw422016) //line app/vmselect/graphite/render_response.qtpl:57 } //line app/vmselect/graphite/render_response.qtpl:57 func renderSeriesJSON(s *series) string { //line app/vmselect/graphite/render_response.qtpl:57 qb422016 := qt422016.AcquireByteBuffer() //line app/vmselect/graphite/render_response.qtpl:57 writerenderSeriesJSON(qb422016, s) //line app/vmselect/graphite/render_response.qtpl:57 qs422016 := string(qb422016.B) //line app/vmselect/graphite/render_response.qtpl:57 qt422016.ReleaseByteBuffer(qb422016) //line app/vmselect/graphite/render_response.qtpl:57 return qs422016 //line app/vmselect/graphite/render_response.qtpl:57 }