private static ITelemetryDocument ConvertRequestToTelemetryDocument(RequestTelemetry requestTelemetry)
        {
            ITelemetryDocument telemetryDocument = new RequestTelemetryDocument()
            {
                Id           = Guid.NewGuid(),
                Version      = TelemetryDocumentContractVersion,
                Timestamp    = requestTelemetry.Timestamp,
                OperationId  = TruncateValue(requestTelemetry.Context?.Operation?.Id),
                Name         = TruncateValue(requestTelemetry.Name),
                Success      = requestTelemetry.Success,
                Duration     = requestTelemetry.Duration,
                ResponseCode = requestTelemetry.ResponseCode,
                Url          = requestTelemetry.Url,
                Properties   = GetProperties(requestTelemetry)
            };

            SetCommonTelemetryDocumentData(telemetryDocument, requestTelemetry);

            return(telemetryDocument);
        }
示例#2
0
        private ITelemetryDocument ConvertRequestToTelemetryDocument(RequestTelemetry requestTelemetry)
        {
            var url = requestTelemetry.Url;

#if NET45
            if (this.EvaluateDisabledTrackingProperties && url == null)
            {
                try
                {
                    // some of the requestTelemetry properties might be deferred by using RequestTrackingTelemetryModule.DisableTrackingProperties.
                    // evaluate them now
                    // note: RequestTrackingUtilities.UpdateRequestTelemetryFromRequest is not used here, since not all fields need to be populated
                    var request = System.Web.HttpContext.Current?.Request;
                    url = request?.Unvalidated.Url;
                }
                catch (Exception e)
                {
                    QuickPulseEventSource.Log.UnknownErrorEvent(e.ToInvariantString());
                }
            }
#endif

            ITelemetryDocument telemetryDocument = new RequestTelemetryDocument()
            {
                Id           = Guid.NewGuid(),
                Version      = TelemetryDocumentContractVersion,
                Timestamp    = requestTelemetry.Timestamp,
                OperationId  = TruncateValue(requestTelemetry.Context?.Operation?.Id),
                Name         = TruncateValue(requestTelemetry.Name),
                Success      = requestTelemetry.Success,
                Duration     = requestTelemetry.Duration,
                ResponseCode = requestTelemetry.ResponseCode,
                Url          = url,
                Properties   = GetProperties(requestTelemetry),
            };

            SetCommonTelemetryDocumentData(telemetryDocument, requestTelemetry);

            return(telemetryDocument);
        }