in spectator/protocol_parser.go [10:33]
func ParseProtocolLine(line string) (string, *meter.Id, string, error) {
parts := strings.Split(line, ":")
if len(parts) != 3 {
return "", nil, "", fmt.Errorf("invalid line format")
}
meterSymbol := parts[0]
meterId := parts[1]
value := parts[2]
meterIdParts := strings.Split(meterId, ",")
name := meterIdParts[0]
tags := make(map[string]string)
for _, tag := range meterIdParts[1:] {
kv := strings.Split(tag, "=")
if len(kv) != 2 {
return "", nil, "", fmt.Errorf("invalid tag format")
}
tags[kv[0]] = kv[1]
}
return meterSymbol, meter.NewId(name, tags), value, nil
}