MCPcopy
hub / github.com/XiaoMi/naftis / ServeHTTP

Method ServeHTTP

src/api/service/promethues.go:211–249  ·  view source on GitHub ↗
(w http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

209}
210
211func (p *promHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
212 timeHorizon := r.URL.Query().Get("time_horizon")
213 if timeHorizon == "" {
214 timeHorizon = "5m"
215 }
216 filterEmpty := false
217 filterEmptyStr := r.URL.Query().Get("filter_empty")
218 if filterEmptyStr == "true" {
219 filterEmpty = true
220 }
221
222 dstNamespace := r.URL.Query().Get("destination_namespace")
223 dstWorkload := r.URL.Query().Get("destination_workload")
224 srcNamespace := r.URL.Query().Get("source_namespace")
225 srcWorkload := r.URL.Query().Get("source_workload")
226 // validate time_horizon
227 if _, err := model.ParseDuration(timeHorizon); err != nil {
228 writeError(w, fmt.Errorf("could not parse time_horizon: %v", err))
229 return
230 }
231 g, err := p.generate(genOpts{
232 timeHorizon,
233 filterEmpty,
234 dstNamespace,
235 dstWorkload,
236 srcNamespace,
237 srcWorkload,
238 })
239 g.Merge(p.static)
240 if err != nil {
241 writeError(w, err)
242 return
243 }
244 err = p.writer(w, g)
245 if err != nil {
246 writeError(w, err)
247 return
248 }
249}
250
251func writeError(w http.ResponseWriter, err error) {
252 w.WriteHeader(http.StatusInternalServerError)

Callers 1

D3GraphFunction · 0.80

Calls 5

generateMethod · 0.95
writeErrorFunction · 0.85
QueryMethod · 0.80
MergeMethod · 0.80
GetMethod · 0.45

Tested by

no test coverage detected