MCPcopy Create free account
hub / github.com/APIParkLab/APIPark / RequestOverview

Method RequestOverview

module/monitor/driver/influxdb-v2/executor.go:570–611  ·  view source on GitHub ↗
(ctx context.Context, start time.Time, end time.Time, wheres []monitor.MonWhereItem)

Source from the content-addressed store, hash-verified

568}
569
570func (e *executor) RequestOverview(ctx context.Context, start time.Time, end time.Time, wheres []monitor.MonWhereItem) ([]time.Time, *monitor.StatusCodeOverview, []*monitor.StatusCodeOverview, error) {
571 newStartTime, every, windowOffset, bucket := getTimeIntervalAndBucket(start, end)
572 filters := formatFilter(wheres)
573
574 requestConditions := []string{"total", "s2xx", "s4xx", "s5xx"}
575
576 dates, requestValues, err := e.fluxQuery.CommonTendency(ctx, e.openApi, newStartTime, end, bucket, "request", filters, requestConditions, every, windowOffset, flux.SumFn)
577 if err != nil {
578 return nil, nil, nil, err
579 }
580 total := requestValues["total"]
581 totalLen := len(total)
582 s2xx := requestValues["s2xx"]
583 s2xxLen := len(s2xx)
584 s4xx := requestValues["s4xx"]
585 s4xxLen := len(s4xx)
586 s5xx := requestValues["s5xx"]
587 s5xxLen := len(s5xx)
588 totalOverview := new(monitor.StatusCodeOverview)
589 result := make([]*monitor.StatusCodeOverview, 0, len(dates))
590 for i := range dates {
591 r := new(monitor.StatusCodeOverview)
592 if totalLen > i {
593 r.StatusTotal = total[i]
594 totalOverview.StatusTotal += r.StatusTotal
595 }
596 if s2xxLen > i {
597 r.Status2xx = s2xx[i]
598 totalOverview.Status2xx += r.Status2xx
599 }
600 if s4xxLen > i {
601 r.Status4xx = s4xx[i]
602 totalOverview.Status4xx += r.Status4xx
603 }
604 if s5xxLen > i {
605 r.Status5xx = s5xx[i]
606 totalOverview.Status5xx += r.Status5xx
607 }
608 result = append(result, r)
609 }
610 return dates, totalOverview, result, nil
611}
612
613func (e *executor) TopN(ctx context.Context, start time.Time, end time.Time, limit int, groupBy string, wheres []monitor.MonWhereItem) ([]*monitor.TopN, error) {
614 filters := formatFilter(wheres)

Callers

nothing calls this directly

Calls 3

getTimeIntervalAndBucketFunction · 0.85
formatFilterFunction · 0.85
CommonTendencyMethod · 0.65

Tested by

no test coverage detected