MCPcopy
hub / github.com/ccfos/nightingale / falconPush

Method falconPush

pushgw/router/router_openfalcon.go:142–234  ·  view source on GitHub ↗
(c *gin.Context)

Source from the content-addressed store, hash-verified

140}
141
142func (rt *Router) falconPush(c *gin.Context) {
143 var bs []byte
144 var err error
145 var r *gzip.Reader
146
147 if c.GetHeader("Content-Encoding") == "gzip" {
148 r, err = gzip.NewReader(c.Request.Body)
149 if err != nil {
150 c.String(400, err.Error())
151 return
152 }
153 defer r.Close()
154 bs, err = ioutil.ReadAll(r)
155 } else {
156 defer c.Request.Body.Close()
157 bs, err = ioutil.ReadAll(c.Request.Body)
158 }
159
160 if err != nil {
161 c.String(400, err.Error())
162 return
163 }
164
165 var arr FalconMetricArr
166
167 if bs[0] == '[' {
168 err = easyjson.Unmarshal(bs, &arr)
169 } else {
170 var one FalconMetric
171 err = easyjson.Unmarshal(bs, &one)
172 arr = []FalconMetric{one}
173 }
174
175 if err != nil {
176 c.String(400, err.Error())
177 return
178 }
179
180 queueid := fmt.Sprint(atomic.AddUint64(&globalCounter, 1) % uint64(rt.Pushgw.WriterOpt.QueueNumber))
181
182 var (
183 succ int
184 fail int
185 msg = "received"
186 ts = time.Now().Unix()
187 ids = make(map[string]struct{})
188 )
189
190 for i := 0; i < len(arr); i++ {
191 if err := arr[i].Clean(ts); err != nil {
192 fail++
193 continue
194 }
195
196 pt, ident, err := arr[i].ToProm()
197 if err != nil {
198 fail++
199 continue

Callers

nothing calls this directly

Calls 11

AppendLabelsMethod · 0.95
ForwardToQueueMethod · 0.95
ErrorMethod · 0.80
SprintMethod · 0.80
CloseMethod · 0.65
StringMethod · 0.45
CleanMethod · 0.45
ToPromMethod · 0.45
GetMethod · 0.45
AddMethod · 0.45
MSetMethod · 0.45

Tested by

no test coverage detected