MCPcopy Index your code
hub / github.com/APIParkLab/APIPark / RestChartOverview

Method RestChartOverview

module/monitor/iml.go:238–370  ·  view source on GitHub ↗
(ctx context.Context, serviceId string, start int64, end int64)

Source from the content-addressed store, hash-verified

236}
237
238func (i *imlMonitorStatisticModule) RestChartOverview(ctx context.Context, serviceId string, start int64, end int64) (*monitor_dto.ChartRestOverview, error) {
239 wheres, err := i.genOverviewWhere(ctx, serviceId, []string{"rest"})
240 if err != nil {
241 return nil, err
242 }
243 executor, err := i.getExecutor(ctx, cluster.DefaultClusterID)
244 if err != nil {
245 return nil, err
246 }
247
248 _, consumerMap, err := executor.ConsumerOverview(ctx, formatTimeByMinute(start), formatTimeByMinute(end), wheres)
249 if err != nil {
250 return nil, err
251 }
252
253 var wg sync.WaitGroup
254 wg.Add(3)
255 errChan := make(chan error, 2)
256 result := new(monitor_dto.ChartRestOverview)
257 go func() {
258 defer wg.Done()
259 date, summary, items, err := executor.RequestOverview(ctx, formatTimeByMinute(start), formatTimeByMinute(end), wheres)
260 if err != nil {
261 errChan <- err
262 return
263 }
264 result.Date = utils.SliceToSlice(date, func(t time.Time) string {
265 return t.Format("2006/01/02 15:04")
266 })
267 result.AvgRequestPerSubscriberOverview = make([]float64, 0, len(items))
268 result.RequestOverview = make([]*monitor_dto.StatusCodeOverview, 0, len(items))
269 for index, item := range items {
270 consumerNum := consumerMap[date[index]]
271 avgRequestPerSubscriber := 0.0
272 if consumerNum != 0 {
273 avgRequestPerSubscriber = float64(item.StatusTotal) / float64(consumerNum)
274 if avgRequestPerSubscriber > result.MaxRequestPerSubscriber {
275 result.MaxRequestPerSubscriber = avgRequestPerSubscriber
276 }
277 if result.MinRequestPerSubscriber == 0 || avgRequestPerSubscriber < result.MinRequestPerSubscriber {
278 result.MinRequestPerSubscriber = avgRequestPerSubscriber
279 }
280 }
281
282 result.AvgRequestPerSubscriberOverview = append(result.AvgRequestPerSubscriberOverview, avgRequestPerSubscriber)
283 result.RequestOverview = append(result.RequestOverview, &monitor_dto.StatusCodeOverview{
284 Status2xx: item.Status2xx,
285 Status4xx: item.Status4xx,
286 Status5xx: item.Status5xx,
287 })
288 }
289
290 result.RequestTotal = summary.StatusTotal
291 result.Request2xxTotal = summary.Status2xx
292 result.Request4xxTotal = summary.Status4xx
293 result.Request5xxTotal = summary.Status5xx
294 }()
295

Callers

nothing calls this directly

Calls 7

genOverviewWhereMethod · 0.95
getExecutorMethod · 0.95
formatTimeByMinuteFunction · 0.70
ConsumerOverviewMethod · 0.65
RequestOverviewMethod · 0.65

Tested by

no test coverage detected