in appinsights/telemetry.go [382:423]
func NewRequestTelemetry(method, uri string, duration time.Duration, responseCode string) *RequestTelemetry {
success := true
code, err := strconv.Atoi(responseCode)
if err == nil {
success = code < 400 || code == 401
}
nameUri := uri
// Sanitize URL for the request name
if parsedUrl, err := url.Parse(uri); err == nil {
// Remove the query
parsedUrl.RawQuery = ""
parsedUrl.ForceQuery = false
// Remove the fragment
parsedUrl.Fragment = ""
// Remove the user info, if any.
parsedUrl.User = nil
// Write back to name
nameUri = parsedUrl.String()
}
return &RequestTelemetry{
Name: fmt.Sprintf("%s %s", method, nameUri),
Url: uri,
Id: newUUID().String(),
Duration: duration,
ResponseCode: responseCode,
Success: success,
BaseTelemetry: BaseTelemetry{
Timestamp: currentClock.Now().Add(-duration),
Tags: make(contracts.ContextTags),
Properties: make(map[string]string),
},
BaseTelemetryMeasurements: BaseTelemetryMeasurements{
Measurements: make(map[string]float64),
},
}
}