func NewRequestTelemetry()

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