func NewHttpStartStop(req *http.Request, statusCode int, contentLength int64, peerType events.PeerType, requestId *uuid.UUID) *events.HttpStartStop { now := proto.Int64(time.Now().UnixNano()) httpStartStop := &events.HttpStartStop{ StartTimestamp: now, StopTimestamp: now, RequestId: NewUUID(requestId), PeerType: &peerType, Method: events.Method(events.Method_value[req.Method]).Enum(), Uri: proto.String(fmt.Sprintf("%s://%s%s", scheme(req), req.Host, req.URL.Path)), RemoteAddress: proto.String(req.RemoteAddr), UserAgent: proto.String(req.UserAgent()), StatusCode: proto.Int(statusCode), ContentLength: proto.Int64(contentLength), } if applicationId, err := uuid.ParseHex(req.Header.Get("X-CF-ApplicationID")); err == nil { httpStartStop.ApplicationId = NewUUID(applicationId) } if instanceIndex, err := strconv.Atoi(req.Header.Get("X-CF-InstanceIndex")); err == nil { httpStartStop.InstanceIndex = proto.Int(instanceIndex) } if instanceId := req.Header.Get("X-CF-InstanceID"); instanceId != "" { httpStartStop.InstanceId = proto.String(instanceId) } allForwards := req.Header[http.CanonicalHeaderKey("X-Forwarded-For")] for _, forwarded := range allForwards { httpStartStop.Forwarded = append(httpStartStop.Forwarded, parseXForwarded(forwarded)...) } return httpStartStop }
func NewHttpStart(req *http.Request, peerType events.PeerType, requestId *uuid.UUID) *events.HttpStart { httpStart := &events.HttpStart{ Timestamp: proto.Int64(time.Now().UnixNano()), RequestId: NewUUID(requestId), PeerType: &peerType, Method: events.Method(events.Method_value[req.Method]).Enum(), Uri: proto.String(fmt.Sprintf("%s%s", req.Host, req.URL.Path)), RemoteAddress: proto.String(req.RemoteAddr), UserAgent: proto.String(req.UserAgent()), } if applicationId, err := uuid.ParseHex(req.Header.Get("X-CF-ApplicationID")); err == nil { httpStart.ApplicationId = NewUUID(applicationId) } if instanceIndex, err := strconv.Atoi(req.Header.Get("X-CF-InstanceIndex")); err == nil { httpStart.InstanceIndex = proto.Int(instanceIndex) } if instanceId := req.Header.Get("X-CF-InstanceID"); instanceId != "" { httpStart.InstanceId = &instanceId } return httpStart }
func NewHttpStartStop(req *http.Request, statusCode int, contentLength int64, peerType events.PeerType, requestId *uuid.UUID) *events.HttpStartStop { httpStartStop := &events.HttpStartStop{ StartTimestamp: proto.Int64(time.Now().UnixNano()), StopTimestamp: proto.Int64(time.Now().UnixNano()), RequestId: NewUUID(requestId), PeerType: &peerType, Method: events.Method(events.Method_value[req.Method]).Enum(), Uri: proto.String(fmt.Sprintf("%s%s", req.Host, req.URL.Path)), RemoteAddress: proto.String(req.RemoteAddr), UserAgent: proto.String(req.UserAgent()), StatusCode: proto.Int(statusCode), ContentLength: proto.Int64(contentLength), } return httpStartStop }
func NewHttpStop(req *http.Request, statusCode int, contentLength int64, peerType events.PeerType, requestId *uuid.UUID) *events.HttpStop { httpStop := &events.HttpStop{ Timestamp: proto.Int64(time.Now().UnixNano()), Uri: proto.String(fmt.Sprintf("%s%s", req.Host, req.URL.Path)), RequestId: NewUUID(requestId), PeerType: &peerType, StatusCode: proto.Int(statusCode), ContentLength: proto.Int64(contentLength), } if applicationId, err := uuid.ParseHex(req.Header.Get("X-CF-ApplicationID")); err == nil { httpStop.ApplicationId = NewUUID(applicationId) } return httpStop }