in pkg/sls-plugin.go [824:855]
func (ds *SlsDatasource) BuildPieGraph(logs []map[string]string, ycols []string, frames *data.Frames) {
if len(ycols) < 2 {
return
}
frame := data.NewFrame("response")
fieldMap := make(map[string][]float64)
var labelArr []string
for _, alog := range logs {
labelArr = append(labelArr, alog[ycols[0]])
}
for _, label := range labelArr {
exist := false
for _, alog := range logs {
if alog[ycols[0]] == label {
floatV, err := strconv.ParseFloat(alog[ycols[1]], 64)
if err != nil {
log.DefaultLogger.Debug("BuildPieGraph", "ParseFloat", err, "value", alog[ycols[1]])
}
fieldMap[label] = append(fieldMap[label], floatV)
exist = true
}
}
if !exist {
fieldMap[label] = append(fieldMap[label], 0)
}
}
for _, v := range labelArr {
frame.Fields = append(frame.Fields, data.NewField(v, nil, fieldMap[v]))
}
*frames = append(*frames, frame)
}