in pkg/source/gcp/log/log_extractor.go [93:141]
func (GCPCommonFieldExtractor) MainMessage(log *log.LogEntity) (string, error) {
textPayload, err := log.GetString("textPayload")
if err == nil {
return textPayload, nil
}
for _, fieldName := range jsonPayloadMessageFieldNames {
jsonPayloadMessage, err := log.GetString(fmt.Sprintf("jsonPayload.%s", fieldName))
if err == nil {
return jsonPayloadMessage, nil
}
}
requestReader, err := log.Fields.ReaderSingle("httpRequest")
if err == nil {
statusInt, err1 := requestReader.ReadInt("status")
requestUrl, err2 := requestReader.ReadString("requestUrl")
requestMethod, err3 := requestReader.ReadString("requestMethod")
protocol, _ := requestReader.ReadString("protocol")
if err1 == nil && err2 == nil && err3 == nil {
if protocol == "grpc" {
return fmt.Sprintf("【%d】GRPC %s", statusInt, requestUrl), nil
} else {
return fmt.Sprintf("【%d】%s %s", statusInt, requestMethod, requestUrl), nil
}
}
}
fallbackAsJson, err := log.Fields.ReaderSingle("jsonPayload")
if err == nil {
jsonMessage, err := fallbackAsJson.ToJson("")
if err == nil {
return jsonMessage, nil
} else {
return "", err
}
}
fallbackAsLabels, err := log.Fields.ReaderSingle("labels")
if err == nil {
jsonMessage, err := fallbackAsLabels.ToJson("")
if err == nil {
return jsonMessage, nil
} else {
return "", err
}
}
return "", fmt.Errorf("failed to extract main message from given log")
}