in spanner_prober/prober/interceptors.go [53:75]
func parseT4T7Latency(headers, trailers metadata.MD) (time.Duration, error) {
var serverTiming []string
if len(headers[serverTimingKey]) > 0 {
serverTiming = headers[serverTimingKey]
} else if len(trailers[serverTimingKey]) > 0 {
serverTiming = trailers[serverTimingKey]
} else {
return 0, fmt.Errorf("server-timing headers not found")
}
for _, entry := range serverTiming {
if !strings.HasPrefix(entry, gfeT4T7prefix) {
continue
}
durationText := strings.TrimPrefix(entry, gfeT4T7prefix)
durationMillis, err := strconv.ParseInt(durationText, 10, 64)
if err != nil {
return 0, fmt.Errorf("failed to parse gfe latency: %v", err)
}
return time.Duration(durationMillis) * time.Millisecond, nil
}
return 0, fmt.Errorf("no gfe latency response available")
}