func()

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")
}