Skip to content

Commit ef1c48e

Browse files
committed
Modify the monitoring table to return field types
1 parent 9572c41 commit ef1c48e

4 files changed

Lines changed: 75 additions & 130 deletions

File tree

common/format.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ func FormatCountInt64(count int64) string {
2323
func FormatCountFloat64(count float64) string {
2424
switch {
2525
case count < 1000:
26-
return strconv.FormatFloat(count, 'f', -1, 64)
26+
return fmt.Sprintf("%.1f", count)
2727
case count < 1000000:
2828
return fmt.Sprintf("%.1fK", count/1000)
2929
case count < 1000000000:

module/monitor/driver/influxdb-v2/flux/flux.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ func (f *fluxQuery) CommonTendencyTag(ctx context.Context, queryApi api.QueryAPI
184184
tagMap := make(map[string]struct{})
185185
defer result.Close()
186186
for result.Next() {
187-
date := result.Record().Values()["_time"].(time.Time).In(time.Local)
187+
date := result.Record().Values()["_stop"].(time.Time).In(time.Local)
188188
if _, ok := dateMap[date]; !ok {
189189
dateMap[date] = map[string]struct{}{}
190190
}

module/monitor/dto/output.go

Lines changed: 35 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -162,48 +162,53 @@ type TokenFloatOverview struct {
162162

163163
type ChartAIOverview struct {
164164
RequestOverview []*StatusCodeOverview `json:"request_overview"`
165-
AvgRequestPerSubscriber string `json:"avg_request_per_subscriber"` //请求概况
166165
AvgRequestPerSubscriberOverview []float64 `json:"avg_request_per_subscriber_overview"` //平均响应时间概况
167-
RequestTotal string `json:"request_total"`
168-
Request2xxTotal string `json:"request_2xx_total"`
169-
Request4xxTotal string `json:"request_4xx_total"`
170-
Request5xxTotal string `json:"request_5xx_total"`
171-
TokenTotal string `json:"token_total"` //总token流量
172-
InputTokenTotal string `json:"input_token_total"`
173-
OutputTokenTotal string `json:"output_token_total"` //最大token流量
174-
TokenOverview []*TokenOverview `json:"token_overview"` //token概况
175-
AvgTokenOverview []float64 `json:"avg_token_overview"`
176-
AvgTokenPerSubscriberOverview []*TokenFloatOverview `json:"avg_token_per_subscriber_overview"`
177-
AvgToken string `json:"avg_token"`
178-
MaxToken string `json:"max_token"`
179-
MinToken string `json:"min_token"`
180-
AvgTokenPerSubscriber string `json:"avg_token_per_subscriber"`
181-
Date []string `json:"date"`
166+
MaxRequestPerSubscriber float64 `json:"max_request_per_subscriber"`
167+
MinRequestPerSubscriber float64 `json:"min_request_per_subscriber"`
168+
169+
RequestTotal int64 `json:"request_total"`
170+
Request2xxTotal int64 `json:"request_2xx_total"`
171+
Request4xxTotal int64 `json:"request_4xx_total"`
172+
Request5xxTotal int64 `json:"request_5xx_total"`
173+
TokenTotal int64 `json:"token_total"` //总token流量
174+
InputTokenTotal int64 `json:"input_token_total"`
175+
OutputTokenTotal int64 `json:"output_token_total"` //最大token流量
176+
TokenOverview []*TokenOverview `json:"token_overview"` //token概况
177+
AvgTokenOverview []float64 `json:"avg_token_overview"`
178+
AvgTokenPerSubscriberOverview []*TokenFloatOverview `json:"avg_token_per_subscriber_overview"`
179+
AvgToken float64 `json:"avg_token"`
180+
MaxToken float64 `json:"max_token"`
181+
MinToken float64 `json:"min_token"`
182+
Date []string `json:"date"`
183+
MaxTokenPerSubscriber float64 `json:"max_token_per_subscriber"`
184+
MinTokenPerSubscriber float64 `json:"min_token_per_subscriber"`
182185
}
183186

184187
type ChartRestOverview struct {
185-
RequestOverview []*StatusCodeOverview `json:"request_overview"` //请求概况
186-
AvgRequestPerSubscriber string `json:"avg_request_per_subscriber"`
188+
RequestOverview []*StatusCodeOverview `json:"request_overview"` //请求概况
187189
AvgRequestPerSubscriberOverview []float64 `json:"avg_request_per_subscriber_overview"` //平均响应时间概况
190+
MaxRequestPerSubscriber float64 `json:"max_request_per_subscriber"`
191+
MinRequestPerSubscriber float64 `json:"min_request_per_subscriber"`
188192

189-
RequestTotal string `json:"request_total"`
190-
Request2xxTotal string `json:"request_2xx_total"`
191-
Request4xxTotal string `json:"request_4xx_total"`
192-
Request5xxTotal string `json:"request_5xx_total"`
193+
RequestTotal int64 `json:"request_total"`
194+
Request2xxTotal int64 `json:"request_2xx_total"`
195+
Request4xxTotal int64 `json:"request_4xx_total"`
196+
Request5xxTotal int64 `json:"request_5xx_total"`
193197

194198
TrafficOverview []*StatusCodeOverview `json:"traffic_overview"` //流量概况
195-
Traffic2xxTotal string `json:"traffic_2xx_total"`
196-
Traffic4xxTotal string `json:"traffic_4xx_total"` //流量概况
197-
Traffic5xxTotal string `json:"traffic_5xx_total"` //流量概况
199+
Traffic2xxTotal int64 `json:"traffic_2xx_total"`
200+
Traffic4xxTotal int64 `json:"traffic_4xx_total"` //流量概况
201+
Traffic5xxTotal int64 `json:"traffic_5xx_total"` //流量概况
198202

199203
AvgResponseTimeOverview []int64 `json:"avg_response_time_overview"` //平均响应时间概况
200204
AvgTrafficPerSubscriberOverview []float64 `json:"avg_traffic_per_subscriber_overview"`
201-
TrafficTotal string `json:"traffic_total"`
202-
AvgResponseTime string `json:"avg_response_time"` //平均响应时间
203-
MaxResponseTime string `json:"max_response_time"` //最大响应时间
204-
MinResponseTime string `json:"min_response_time"` //最小响应时间
205-
AvgTrafficPerSubscriber string `json:"avg_traffic_per_subscriber"`
205+
TrafficTotal int64 `json:"traffic_total"`
206+
AvgResponseTime int64 `json:"avg_response_time"` //平均响应时间
207+
MaxResponseTime int64 `json:"max_response_time"` //最大响应时间
208+
MinResponseTime int64 `json:"min_response_time"` //最小响应时间
206209
Date []string `json:"date"`
210+
MaxTrafficPerSubscriber float64 `json:"max_traffic_per_subscriber"`
211+
MinTrafficPerSubscriber float64 `json:"min_traffic_per_subscriber"`
207212
}
208213

209214
type ServiceChartRestOverview struct {

module/monitor/iml.go

Lines changed: 38 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -83,33 +83,7 @@ func (i *imlMonitorStatisticModule) AIChartOverview(ctx context.Context, service
8383
return nil, err
8484
}
8585

86-
//serviceIds := make([]string, 0)
87-
//// 从数据库中获取相关信息
88-
//if serviceId == "" {
89-
// // 获取全部服务
90-
// list, err := i.serviceService.ServiceListByKind(ctx, service.AIService)
91-
// if err != nil {
92-
//
93-
// return nil, err
94-
// }
95-
// serviceIds = utils.SliceToSlice(list, func(t *service.Service) string {
96-
// return t.Id
97-
// })
98-
//} else {
99-
// serviceIds = append(serviceIds, serviceId)
100-
//}
101-
//appMap := make(map[string]struct{})
102-
//for _, sId := range serviceIds {
103-
// items, err := i.subscribeService.ListBySubscribeStatus(ctx, sId, subscribe.ApplyStatusSubscribe)
104-
// if err != nil {
105-
// return nil, err
106-
// }
107-
// for _, item := range items {
108-
// appMap[item.Application] = struct{}{}
109-
// }
110-
//}
111-
//subscriberNum := int64(len(appMap))
112-
totalConsumerCount, consumerMap, err := executor.ConsumerOverview(ctx, formatTimeByMinute(start), formatTimeByMinute(end), wheres)
86+
_, consumerMap, err := executor.ConsumerOverview(ctx, formatTimeByMinute(start), formatTimeByMinute(end), wheres)
11387
if err != nil {
11488
return nil, err
11589
}
@@ -142,15 +116,11 @@ func (i *imlMonitorStatisticModule) AIChartOverview(ctx context.Context, service
142116
Status5xx: item.Status5xx,
143117
})
144118
}
145-
avgRequestPerSubscriber := 0.0
146-
if totalConsumerCount != 0 {
147-
avgRequestPerSubscriber = float64(summary.StatusTotal) / float64(totalConsumerCount)
148-
}
149-
result.AvgRequestPerSubscriber = common.FormatCountFloat64(avgRequestPerSubscriber)
150-
result.RequestTotal = common.FormatCountInt64(summary.StatusTotal)
151-
result.Request2xxTotal = common.FormatCountInt64(summary.Status2xx)
152-
result.Request4xxTotal = common.FormatCountInt64(summary.Status4xx)
153-
result.Request5xxTotal = common.FormatCountInt64(summary.Status5xx)
119+
120+
result.RequestTotal = summary.StatusTotal
121+
result.Request2xxTotal = summary.Status2xx
122+
result.Request4xxTotal = summary.Status4xx
123+
result.Request5xxTotal = summary.Status5xx
154124
}()
155125
sumResponseTimes := make([]int64, 0)
156126
go func() {
@@ -208,18 +178,16 @@ func (i *imlMonitorStatisticModule) AIChartOverview(ctx context.Context, service
208178
})
209179

210180
}
211-
avgTokenPerSubscriber := 0.0
212-
if totalConsumerCount != 0 {
213-
avgTokenPerSubscriber = float64(summary.TotalToken) / float64(totalConsumerCount)
214-
}
215-
result.AvgToken = common.FormatCountFloat64(avgTokenPerSubscriber)
216-
result.MaxToken = common.FormatCountInt64(maxToken)
217-
result.MinToken = common.FormatCountInt64(minToken)
218-
result.AvgTokenPerSubscriber = common.FormatCountFloat64(avgTokenPerSubscriber)
219-
result.AvgTokenPerSubscriber = common.FormatCountInt64(summary.TotalToken / totalConsumerCount)
220-
result.TokenTotal = common.FormatCountInt64(summary.TotalToken)
221-
result.InputTokenTotal = common.FormatCountInt64(summary.InputToken)
222-
result.OutputTokenTotal = common.FormatCountInt64(summary.OutputToken)
181+
//avgTokenPerSubscriber := 0.0
182+
//if totalConsumerCount != 0 {
183+
// avgTokenPerSubscriber = float64(summary.TotalToken) / float64(totalConsumerCount)
184+
//}
185+
//result.AvgToken = avgTokenPerSubscriber
186+
//result.MaxToken = maxToken
187+
//result.MinToken = minToken
188+
result.TokenTotal = summary.TotalToken
189+
result.InputTokenTotal = summary.InputToken
190+
result.OutputTokenTotal = summary.OutputToken
223191
}()
224192
go func() {
225193
wg.Wait()
@@ -251,10 +219,10 @@ func (i *imlMonitorStatisticModule) AIChartOverview(ctx context.Context, service
251219
avgTokenPerSecond += p
252220
}
253221
if len(sumResponseTimes) > 0 {
254-
result.AvgToken = fmt.Sprintf("%s Token/s", common.FormatCountFloat64(avgTokenPerSecond/float64(len(sumResponseTimes))))
222+
result.AvgToken = avgTokenPerSecond / float64(len(sumResponseTimes))
255223
}
256-
result.MaxToken = fmt.Sprintf("%s Token/s", common.FormatCountFloat64(maxTokenPerSecond))
257-
result.MinToken = fmt.Sprintf("%s Token/s", common.FormatCountFloat64(minTokenPerSecond))
224+
result.MaxToken = maxTokenPerSecond
225+
result.MinToken = minTokenPerSecond
258226
return result, nil
259227
}
260228

@@ -268,32 +236,7 @@ func (i *imlMonitorStatisticModule) RestChartOverview(ctx context.Context, servi
268236
return nil, err
269237
}
270238

271-
//serviceIds := make([]string, 0)
272-
//// 从数据库中获取相关信息
273-
//if serviceId == "" {
274-
// // 获取全部服务
275-
// list, err := i.serviceService.ServiceListByKind(ctx, service.RestService)
276-
// if err != nil {
277-
// return nil, err
278-
// }
279-
// serviceIds = utils.SliceToSlice(list, func(t *service.Service) string {
280-
// return t.Id
281-
// })
282-
//} else {
283-
// serviceIds = append(serviceIds, serviceId)
284-
//}
285-
//appMap := make(map[string]struct{})
286-
//for _, sId := range serviceIds {
287-
// items, err := i.subscribeService.ListBySubscribeStatus(ctx, sId, subscribe.ApplyStatusSubscribe)
288-
// if err != nil {
289-
// return nil, err
290-
// }
291-
// for _, item := range items {
292-
// appMap[item.Id] = struct{}{}
293-
// }
294-
//}
295-
//subscriberNum := int64(len(appMap))
296-
totalConsumerCount, consumerMap, err := executor.ConsumerOverview(ctx, formatTimeByMinute(start), formatTimeByMinute(end), wheres)
239+
_, consumerMap, err := executor.ConsumerOverview(ctx, formatTimeByMinute(start), formatTimeByMinute(end), wheres)
297240
if err != nil {
298241
return nil, err
299242
}
@@ -315,6 +258,8 @@ func (i *imlMonitorStatisticModule) RestChartOverview(ctx context.Context, servi
315258
result.AvgRequestPerSubscriberOverview = make([]float64, 0, len(items))
316259
result.RequestOverview = make([]*monitor_dto.StatusCodeOverview, 0, len(items))
317260
for index, item := range items {
261+
t := date[index]
262+
log.Infof("date: %v, item: %v", t, item)
318263
consumerNum := consumerMap[date[index]]
319264
avgRequestPerSubscriber := 0.0
320265
if consumerNum != 0 {
@@ -327,15 +272,14 @@ func (i *imlMonitorStatisticModule) RestChartOverview(ctx context.Context, servi
327272
Status5xx: item.Status5xx,
328273
})
329274
}
330-
avgRequestPerSubscriber := 0.0
331-
if totalConsumerCount != 0 {
332-
avgRequestPerSubscriber = float64(summary.StatusTotal) / float64(totalConsumerCount)
333-
}
334-
result.AvgRequestPerSubscriber = common.FormatCountFloat64(avgRequestPerSubscriber)
335-
result.RequestTotal = common.FormatCountInt64(summary.StatusTotal)
336-
result.Request2xxTotal = common.FormatCountInt64(summary.Status2xx)
337-
result.Request4xxTotal = common.FormatCountInt64(summary.Status4xx)
338-
result.Request5xxTotal = common.FormatCountInt64(summary.Status5xx)
275+
//avgRequestPerSubscriber := 0.0
276+
//if totalConsumerCount != 0 {
277+
// avgRequestPerSubscriber = float64(summary.StatusTotal) / float64(totalConsumerCount)
278+
//}
279+
result.RequestTotal = summary.StatusTotal
280+
result.Request2xxTotal = summary.Status2xx
281+
result.Request4xxTotal = summary.Status4xx
282+
result.Request5xxTotal = summary.Status5xx
339283
}()
340284

341285
go func() {
@@ -348,9 +292,9 @@ func (i *imlMonitorStatisticModule) RestChartOverview(ctx context.Context, servi
348292
return
349293
}
350294
result.AvgResponseTimeOverview = items
351-
result.AvgResponseTime = fmt.Sprintf("%d ms", summary.Avg)
352-
result.MaxResponseTime = fmt.Sprintf("%d ms", summary.Max)
353-
result.MinResponseTime = fmt.Sprintf("%d ms", summary.Min)
295+
result.AvgResponseTime = summary.Avg
296+
result.MaxResponseTime = summary.Max
297+
result.MinResponseTime = summary.Min
354298
}()
355299

356300
go func() {
@@ -377,15 +321,11 @@ func (i *imlMonitorStatisticModule) RestChartOverview(ctx context.Context, servi
377321
}
378322
result.AvgTrafficPerSubscriberOverview = append(result.AvgTrafficPerSubscriberOverview, avgTrafficPerSubscriber)
379323
}
380-
result.TrafficTotal = common.FormatByte(summary.StatusTotal)
381-
result.Traffic2xxTotal = common.FormatByte(summary.Status2xx)
382-
result.Traffic4xxTotal = common.FormatByte(summary.Status4xx)
383-
result.Traffic5xxTotal = common.FormatByte(summary.Status5xx)
384-
avgTrafficPerSubscriber := 0.0
385-
if totalConsumerCount != 0 {
386-
avgTrafficPerSubscriber = float64(summary.StatusTotal) / float64(totalConsumerCount)
387-
}
388-
result.AvgTrafficPerSubscriber = common.FormatCountFloat64(avgTrafficPerSubscriber)
324+
result.TrafficTotal = summary.StatusTotal
325+
result.Traffic2xxTotal = summary.Status2xx
326+
result.Traffic4xxTotal = summary.Status4xx
327+
result.Traffic5xxTotal = summary.Status5xx
328+
389329
}()
390330
go func() {
391331
wg.Wait()

0 commit comments

Comments
 (0)