protected override async Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken) { if (!request.Headers.Contains(ServiceFabricDiagnostics.CorrelationHeaderName)) { SetCorrelationHeader(request, ServiceFabricDiagnostics.GetRequestCorrelationId()); } if (!request.Headers.Contains(ServiceFabricDiagnostics.RequestOriginHeaderName) && this.context != null) { SetRequestOriginHeader(request, this.context.ServiceName.ToString()); } Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); string origin = GetHeaderValue(request, ServiceFabricDiagnostics.RequestOriginHeaderName); string correlationId = GetHeaderValue(request, ServiceFabricDiagnostics.CorrelationHeaderName); HttpClientEventSource.Current.HttpRequestStart(request, origin, correlationId); try { return(await base.SendAsync(request, cancellationToken)); } catch (Exception ex) { HttpClientEventSource.Current.HttpRequestFailed(request, origin, correlationId, ex); throw; } finally { stopwatch.Stop(); HttpClientEventSource.Current.HttpRequestStop(request, origin, correlationId, stopwatch.Elapsed.TotalMilliseconds); } }
public void ServiceMessage(ServiceContext serviceContext, string message, params object[] args) { if (this.IsEnabled()) { string finalMessage = string.Format(message, args); ServiceMessage( serviceContext.ServiceName.ToString(), serviceContext.ServiceTypeName, GetReplicaOrInstanceId(serviceContext), serviceContext.PartitionId, serviceContext.CodePackageActivationContext.ApplicationName, serviceContext.CodePackageActivationContext.ApplicationTypeName, serviceContext.NodeContext.NodeName, ServiceFabricDiagnostics.GetRequestCorrelationId() ?? string.Empty, finalMessage); } }
public void ServiceRequestFailed(ServiceContext serviceContext, string method, string requestTypeName, string exception, string correlationId = null, string fromService = null) { string serviceName = serviceContext != null?serviceContext.ServiceName.ToString() : null; string serviceTypeName = serviceContext != null ? serviceContext.ServiceTypeName : null; long replicaOrInstanceId = serviceContext != null?GetReplicaOrInstanceId(serviceContext) : 0; Guid partitionId = serviceContext != null ? serviceContext.PartitionId : Guid.Empty; string applicationName = serviceContext != null ? serviceContext.CodePackageActivationContext.ApplicationName : null; string applicationTypeName = serviceContext != null ? serviceContext.CodePackageActivationContext.ApplicationTypeName : null; if (correlationId == null) { correlationId = ServiceFabricDiagnostics.GetRequestCorrelationId() ?? string.Empty; } if (fromService == null) { fromService = ServiceFabricDiagnostics.GetRequestOrigin() ?? string.Empty; } ServiceRequestFailed(requestTypeName, method, exception, serviceName, serviceTypeName, replicaOrInstanceId, partitionId, applicationName, applicationTypeName, correlationId, fromService); }