private void SetUpTelemetryCallbacks() { CorrelationTraceClient.SetUp( (TraceContextBase requestTraceContext) => { requestTraceContext.Stop(); var requestTelemetry = requestTraceContext.CreateRequestTelemetry(); this.telemetryClient.TrackRequest(requestTelemetry); }, (TraceContextBase dependencyTraceContext) => { dependencyTraceContext.Stop(); var dependencyTelemetry = dependencyTraceContext.CreateDependencyTelemetry(); this.telemetryClient.TrackDependency(dependencyTelemetry); }, (Exception e) => { this.telemetryClient.TrackException(e); }); }
private void SetUpTelemetryCallbacks() { var resolvedSiteName = this.nameResolver?.Resolve("WEBSITE_SITE_NAME")?.ToLower() ?? string.Empty; CorrelationTraceClient.SetUp( (TraceContextBase requestTraceContext) => { requestTraceContext.Stop(); var requestTelemetry = requestTraceContext.CreateRequestTelemetry(resolvedSiteName); this.telemetryClient.TrackRequest(requestTelemetry); }, (TraceContextBase dependencyTraceContext) => { dependencyTraceContext.Stop(); var dependencyTelemetry = dependencyTraceContext.CreateDependencyTelemetry(); this.telemetryClient.TrackDependency(dependencyTelemetry); }, (Exception e) => { this.telemetryClient.TrackException(e); }); }
async Task <MessageData> AddMessageAsync(TaskMessage taskMessage, OrchestrationInstance sourceInstance, SessionBase?session) { MessageData data; try { // We transfer to a new trace activity ID every time a new outbound queue message is created. Guid outboundTraceActivityId = Guid.NewGuid(); data = new MessageData( taskMessage, outboundTraceActivityId, this.storageQueue.Name, session?.GetCurrentEpisode(), sourceInstance); data.SequenceNumber = Interlocked.Increment(ref messageSequenceNumber); // Inject Correlation TraceContext on a queue. CorrelationTraceClient.Propagate( () => { data.SerializableTraceContext = GetSerializableTraceContext(taskMessage); }); string rawContent = await this.messageManager.SerializeMessageDataAsync(data); QueueMessage queueMessage = new QueueMessage(rawContent); this.settings.Logger.SendingMessage( outboundTraceActivityId, this.storageAccountName, this.settings.TaskHubName, taskMessage.Event.EventType.ToString(), Utils.GetTaskEventId(taskMessage.Event), sourceInstance.InstanceId, sourceInstance.ExecutionId, Encoding.UTF8.GetByteCount(rawContent), data.QueueName /* PartitionId */, taskMessage.OrchestrationInstance.InstanceId, taskMessage.OrchestrationInstance.ExecutionId, data.SequenceNumber, data.Episode.GetValueOrDefault(-1)); await this.storageQueue.AddMessageAsync( queueMessage, GetVisibilityDelay(taskMessage), session?.TraceActivityId); // Wake up the queue polling thread this.backoffHelper.Reset(); } catch (DurableTaskStorageException e) { this.settings.Logger.MessageFailure( this.storageAccountName, this.settings.TaskHubName, string.Empty /* MessageId */, sourceInstance.InstanceId, sourceInstance.ExecutionId, this.storageQueue.Name, taskMessage.Event.EventType.ToString(), Utils.GetTaskEventId(taskMessage.Event), e.ToString()); throw; } return(data); }