コード例 #1
0
        private ApplicationInsightsActivitySender FindApplicationInsightsSender()
        {
            ApplicationInsightsActivitySender activitySender = _pipeline.Senders.FindByName <ApplicationInsightsActivitySender>(
                ActivityPipelineDefaults.SenderNames.DefaultApplicationInsightsSender);

            if (activitySender == null)
            {
                var pipeline = _pipeline as ActivityPipeline;
                if (pipeline != null)
                {
                    try
                    {
                        throw new ActivityInsightsException(
                                  $"Cannot find an {nameof(ApplicationInsightsActivitySender)} with the name"
                                  + $" '{ActivityPipelineDefaults.SenderNames.DefaultApplicationInsightsSender}' in the"
                                  + $" activity pipeline. Application Insights specific functionality is not available."
                                  + $" This may be an expected result on using a custom pipeline.",
                                  detailLabels: null,
                                  detailMeasures: null);
                    }
                    catch (ActivityInsightsException ex)
                    {
                        pipeline.LogInternalError(ex);
                    }
                }
            }

            return(activitySender);
        }
コード例 #2
0
        public Activity StartNewActivityWithOperation <TOperation>(
            string name,
            ActivityLogLevel logLevel,
            string operationId       = null,
            string parentOperationId = null,
            string globalOperationId = null)
            where TOperation : OperationTelemetry, new()
        {
            name = ValidateActivityName(name);

            ApplicationInsightsActivitySender appInsightsSender = FindApplicationInsightsSender();
            IDisposable operation = appInsightsSender?.StartActivityOperation <TOperation>(name, operationId, parentOperationId, globalOperationId);

            Activity activity = StartNewActivity(name, logLevel);

            activity.AssociatedOperation = operation;

            return(activity);
        }