本文整理汇总了C#中Microsoft.ApplicationInsights.DataContracts.RequestTelemetry类的典型用法代码示例。如果您正苦于以下问题:C# RequestTelemetry类的具体用法?C# RequestTelemetry怎么用?C# RequestTelemetry使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
RequestTelemetry类属于Microsoft.ApplicationInsights.DataContracts命名空间,在下文中一共展示了RequestTelemetry类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: DispatchRequest
public static void DispatchRequest(RequestTelemetry request, TimeSpan duration, bool success)
{
request.Duration = duration;
request.Success = success;
request.ResponseCode = (success) ? SUCCESS_CODE : FAILURE_CODE;
AI_CLIENT.TrackRequest(request);
}
示例2: RichPayloadEventSourceRequestSentTest
public void RichPayloadEventSourceRequestSentTest()
{
var client = new TelemetryClient();
client.InstrumentationKey = Guid.NewGuid().ToString();
using (var listener = new Microsoft.ApplicationInsights.TestFramework.TestEventListener())
{
listener.EnableEvents(RichPayloadEventSource.Log.EventSourceInternal, EventLevel.Verbose, RichPayloadEventSource.Keywords.Requests);
var item = new RequestTelemetry("TestRequest", DateTimeOffset.Now, TimeSpan.FromMilliseconds(10), "200", true);
item.Context.Properties.Add("property1", "value1");
item.Context.User.Id = "testUserId";
item.Context.Operation.Id = Guid.NewGuid().ToString();
client.TrackRequest(item);
var actualEvent = listener.Messages.FirstOrDefault();
Assert.IsNotNull(actualEvent);
Assert.AreEqual(client.InstrumentationKey, actualEvent.Payload[0]);
object[] tags = actualEvent.Payload[1] as object[];
Assert.AreEqual("ai.user.id", ((Dictionary<string, object>)(tags[0]))["Key"]);
Assert.AreEqual("testUserId", ((Dictionary<string, object>)(tags[0]))["Value"]);
Assert.AreEqual("ai.operation.id", ((Dictionary<string, object>)(tags[1]))["Key"]);
Assert.AreEqual(item.Context.Operation.Id, ((Dictionary<string, object>)(tags[1]))["Value"]);
Assert.IsNotNull(actualEvent.Payload[2]);
}
}
示例3: StartNewRequest
public static RequestTelemetry StartNewRequest(string name, DateTimeOffset startTime)
{
var request = new RequestTelemetry();
request.Name = name;
request.Timestamp = startTime;
return request;
}
示例4: SendAsync
/// <summary>
/// Sends an HTTP request to the inner handler to send to the server as an asynchronous operation.
/// </summary>
/// <param name="request">The HTTP request message to send to the server.</param>
/// <param name="cancellationToken">A cancellation token to cancel operation.</param>
protected override async Task<HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
{
Guard.NotNull(request, nameof(request));
AppInsights.GenerateAsyncAwareOperationId();
var startTime = DateTimeOffset.UtcNow;
var watch = Stopwatch.StartNew();
bool success = true;
try
{
return await base.SendAsync(request, cancellationToken);
}
catch (Exception exception) when (exception is LogbookException == false)
{
success = false;
throw;
}
finally
{
watch.Stop();
var telemetry = new RequestTelemetry
{
HttpMethod = request.Method.Method,
Duration = watch.Elapsed,
Success = success,
StartTime = startTime,
Url = request.RequestUri
};
AppInsights.Client.TrackRequest(telemetry);
}
}
示例5: CreateHttpContextAccessor
public static HttpContextAccessor CreateHttpContextAccessor(RequestTelemetry requestTelemetry = null, ActionContext actionContext = null)
{
var services = new ServiceCollection();
var request = new DefaultHttpContext().Request;
request.Method = "GET";
request.Path = new PathString("/Test");
var contextAccessor = new HttpContextAccessor() { HttpContext = request.HttpContext };
services.AddInstance<IHttpContextAccessor>(contextAccessor);
if (actionContext != null)
{
var si = new ActionContextAccessor();
si.ActionContext = actionContext;
services.AddInstance<IActionContextAccessor>(si);
}
if (requestTelemetry != null)
{
services.AddInstance<RequestTelemetry>(requestTelemetry);
}
IServiceProvider serviceProvider = services.BuildServiceProvider();
contextAccessor.HttpContext.RequestServices = serviceProvider;
return contextAccessor;
}
示例6: Invoke
public async Task Invoke(HttpContext httpContext, RequestTelemetry telemetry)
{
telemetry.Timestamp = DateTimeOffset.UtcNow;
var sw = new Stopwatch();
sw.Start();
bool requestFailed = false;
try
{
await this.next.Invoke(httpContext);
}
catch (Exception)
{
requestFailed = true;
throw;
}
finally
{
sw.Stop();
telemetry.Duration = sw.Elapsed;
telemetry.ResponseCode = httpContext.Response.StatusCode.ToString();
telemetry.Success = (!requestFailed) && (httpContext.Response.StatusCode < 400);
telemetry.HttpMethod = httpContext.Request.Method;
telemetry.Url = httpContext.Request.GetUri();
telemetry.Context.GetInternalContext().SdkVersion = this.sdkVersion;
this.telemetryClient.TrackRequest(telemetry);
}
}
示例7: OnInitializeTelemetry
/// <summary>
/// Implements initialization logic.
/// </summary>
/// <param name="platformContext">Http context.</param>
/// <param name="requestTelemetry">Request telemetry object associated with the current request.</param>
/// <param name="telemetry">Telemetry item to initialize.</param>
protected override void OnInitializeTelemetry(HttpContext platformContext, RequestTelemetry requestTelemetry, ITelemetry telemetry)
{
if (string.IsNullOrEmpty(telemetry.Context.Operation.SyntheticSource))
{
if (platformContext != null)
{
var request = platformContext.GetRequest();
if (request != null && !string.IsNullOrEmpty(request.UserAgent))
{
// We expect customers to configure telemetry initializer before they add it to active configuration
// So we will not protect fiterPatterns array with locks (to improve perf)
foreach (string pattern in this.filterPatterns)
{
if (!string.IsNullOrWhiteSpace(pattern) &&
request.UserAgent.IndexOf(pattern, StringComparison.OrdinalIgnoreCase) != -1)
{
telemetry.Context.Operation.SyntheticSource = "Bot";
return;
}
}
}
}
}
}
开发者ID:Microsoft,项目名称:ApplicationInsights-dotnet-server,代码行数:31,代码来源:SyntheticUserAgentTelemetryInitializer.cs
示例8: OnInitializeTelemetry
protected override void OnInitializeTelemetry(HttpContext platformContext, RequestTelemetry requestTelemetry, ITelemetry telemetry)
{
if (string.IsNullOrEmpty(telemetry.Context.Operation.Id))
{
telemetry.Context.Operation.Id = requestTelemetry.Id;
}
}
示例9: InitializeAssignsVersionToTelemetry
public void InitializeAssignsVersionToTelemetry()
{
var initializer = new ComponentVersionTelemetryInitializer(this.BuildConfigurationWithVersion());
var telemetry = new RequestTelemetry();
initializer.Initialize(telemetry);
Assert.NotNull(telemetry.Context.Component.Version);
}
开发者ID:RehanSaeed,项目名称:ApplicationInsights-aspnetcore,代码行数:7,代码来源:ComponentVersionTelemetryInitializerTests.cs
示例10: GetAuthUserContextFromUserCookie
internal void GetAuthUserContextFromUserCookie(HttpCookie authUserCookie, RequestTelemetry requestTelemetry)
{
if (authUserCookie == null)
{
// Request does not have authenticated user
WebEventSource.Log.AuthIdTrackingCookieNotAvailable();
return;
}
if (string.IsNullOrEmpty(authUserCookie.Value))
{
// Request does not have authenticated user
WebEventSource.Log.AuthIdTrackingCookieIsEmpty();
return;
}
var authUserCookieString = HttpUtility.UrlDecode(authUserCookie.Value);
var cookieParts = authUserCookieString.Split('|');
if (cookieParts.Length > 0)
{
requestTelemetry.Context.User.AuthenticatedUserId = cookieParts[0];
}
}
开发者ID:gregjhogan,项目名称:ApplicationInsights-server-dotnet,代码行数:25,代码来源:AuthenticatedUserIdTelemetryInitializer.cs
示例11: OnInitializeTelemetry
/// <summary>
/// Implements initialization logic.
/// </summary>
/// <param name="platformContext">Http context.</param>
/// <param name="requestTelemetry">Request telemetry object associated with the current request.</param>
/// <param name="telemetry">Telemetry item to initialize.</param>
protected override void OnInitializeTelemetry(HttpContext platformContext, RequestTelemetry requestTelemetry, ITelemetry telemetry)
{
if (platformContext != null)
{
var request = platformContext.GetRequest();
if (request != null)
{
foreach (var pattern in this.filterPatterns)
{
if (pattern.RegularExpression != null && request.UserAgent != null)
{
var match = pattern.RegularExpression.Match(request.UserAgent);
if (match.Success)
{
if (string.IsNullOrEmpty(telemetry.Context.Operation.SyntheticSource))
{
telemetry.Context.Operation.SyntheticSource = !string.IsNullOrWhiteSpace(pattern.SourceName) ? pattern.SourceName : match.Value;
return;
}
}
}
}
}
}
}
开发者ID:jawn,项目名称:ApplicationInsights-server-dotnet,代码行数:32,代码来源:SyntheticUserAgentTelemetryInitializer.cs
示例12: ParameterlessConstructorInitializesRequiredFields
public void ParameterlessConstructorInitializesRequiredFields()
{
var request = new RequestTelemetry();
Assert.False(string.IsNullOrEmpty(request.Id));
Assert.Equal("200", request.ResponseCode);
Assert.Equal(true, request.Success);
}
示例13: InitializeSetsSdkVersionPropertyOfGivenTelemetry
public void InitializeSetsSdkVersionPropertyOfGivenTelemetry()
{
var initializer = new SdkVersionPropertyTelemetryInitializer();
var item = new RequestTelemetry();
initializer.Initialize(item);
Assert.NotNull(item.Context.Internal.SdkVersion);
}
开发者ID:iusafaro,项目名称:ApplicationInsights-dotnet,代码行数:8,代码来源:SdkVersionPropertyTelemetryInitializerTest.cs
示例14: OnInitializeTelemetry
protected override void OnInitializeTelemetry(HttpContext platformContext, RequestTelemetry requestTelemetry, ITelemetry telemetry)
{
if (string.IsNullOrEmpty(telemetry.Context.Cloud.RoleInstance))
{
var name = LazyInitializer.EnsureInitialized(ref this.roleInstanceName, this.GetMachineName);
telemetry.Context.Cloud.RoleInstance = name;
}
}
开发者ID:fjsnogueira,项目名称:ApplicationInsights-aspnetcore,代码行数:8,代码来源:DomainNameRoleInstanceTelemetryInitializer.cs
示例15: InitializeDoesNotThrowIfVersionDoesNotExist
public void InitializeDoesNotThrowIfVersionDoesNotExist()
{
var config = new ConfigurationBuilder()
.Build();
var initializer = new ComponentVersionTelemetryInitializer(config);
var telemetry = new RequestTelemetry();
initializer.Initialize(telemetry);
}
开发者ID:RehanSaeed,项目名称:ApplicationInsights-aspnetcore,代码行数:8,代码来源:ComponentVersionTelemetryInitializerTests.cs