in components/google-built-opentelemetry-collector/exporter/googleservicecontrolexporter/logs.go [407:437]
func (l logMapper) parseHTTPRequest(httpRequestAttr pcommon.Value) (*scpb.HttpRequest, error) {
var parsedHTTPRequest httpRequestLog
err := unmarshalAttribute(httpRequestAttr, &parsedHTTPRequest)
if err != nil {
return nil, &attributeProcessingError{Key: HTTPRequestAttributeKey, Err: err}
}
pb := &scpb.HttpRequest{
RequestMethod: parsedHTTPRequest.RequestMethod,
RequestUrl: fixUTF8(parsedHTTPRequest.RequestURL),
RequestSize: parsedHTTPRequest.RequestSize,
Status: parsedHTTPRequest.Status,
ResponseSize: parsedHTTPRequest.ResponseSize,
UserAgent: parsedHTTPRequest.UserAgent,
ServerIp: parsedHTTPRequest.ServerIP,
RemoteIp: parsedHTTPRequest.RemoteIP,
Referer: parsedHTTPRequest.Referer,
CacheHit: parsedHTTPRequest.CacheHit,
CacheValidatedWithOriginServer: parsedHTTPRequest.CacheValidatedWithOriginServer,
Protocol: parsedHTTPRequest.Protocol,
CacheFillBytes: parsedHTTPRequest.CacheFillBytes,
CacheLookup: parsedHTTPRequest.CacheLookup,
}
if parsedHTTPRequest.Latency != "" {
latency, err := time.ParseDuration(parsedHTTPRequest.Latency)
if err == nil && latency != 0 {
pb.Latency = durationpb.New(latency)
}
}
return pb, nil
}