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

Method AIChartOverview

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

Source from the content-addressed store, hash-verified

75}
76
77func (i *imlMonitorStatisticModule) AIChartOverview(ctx context.Context, serviceId string, start int64, end int64) (*monitor_dto.ChartAIOverview, error) {
78 wheres, err := i.genOverviewWhere(ctx, serviceId, []string{"ai"})
79 if err != nil {
80 return nil, err
81 }
82 executor, err := i.getExecutor(ctx, cluster.DefaultClusterID)
83 if err != nil {
84 return nil, err
85 }
86
87 _, consumerMap, err := executor.ConsumerOverview(ctx, formatTimeByMinute(start), formatTimeByMinute(end), wheres)
88 if err != nil {
89 return nil, err
90 }
91 var wg sync.WaitGroup
92 wg.Add(3)
93 errChan := make(chan error, 3)
94 result := new(monitor_dto.ChartAIOverview)
95 go func() {
96 defer wg.Done()
97 date, summary, items, err := executor.RequestOverview(ctx, formatTimeByMinute(start), formatTimeByMinute(end), wheres)
98 if err != nil {
99 errChan <- err
100 return
101 }
102 result.Date = utils.SliceToSlice(date, func(t time.Time) string {
103 return t.Format("2006/01/02 15:04")
104 })
105 result.AvgRequestPerSubscriberOverview = make([]float64, 0, len(items))
106 result.RequestOverview = make([]*monitor_dto.StatusCodeOverview, 0, len(items))
107 for index, item := range items {
108 consumerNum := consumerMap[date[index]]
109 avgRequestPerSubscriber := 0.0
110 if consumerNum != 0 {
111 avgRequestPerSubscriber = float64(item.StatusTotal) / float64(consumerNum)
112 if avgRequestPerSubscriber > result.MaxRequestPerSubscriber {
113 result.MaxRequestPerSubscriber = avgRequestPerSubscriber
114 }
115 if result.MinRequestPerSubscriber == 0 || result.MinRequestPerSubscriber > avgRequestPerSubscriber {
116 result.MinRequestPerSubscriber = avgRequestPerSubscriber
117 }
118 }
119
120 result.AvgRequestPerSubscriberOverview = append(result.AvgRequestPerSubscriberOverview, avgRequestPerSubscriber)
121 result.RequestOverview = append(result.RequestOverview, &monitor_dto.StatusCodeOverview{
122 Status2xx: item.Status2xx,
123 Status4xx: item.Status4xx,
124 Status5xx: item.Status5xx,
125 })
126 }
127
128 result.RequestTotal = summary.StatusTotal
129 result.Request2xxTotal = summary.Status2xx
130 result.Request4xxTotal = summary.Status4xx
131 result.Request5xxTotal = summary.Status5xx
132 }()
133 sumResponseTimes := make([]int64, 0)
134 go func() {

Callers

nothing calls this directly

Calls 7

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

Tested by

no test coverage detected