示例#1
0
        static ActivityInsights()
        {
            IActivityPipeline   defaultPipeline = ActivityPipelineDefaults.CreateForDevelopmentPhase();
            ActivityInsightsLog defaultLog      = new ActivityInsightsLog(defaultPipeline);

            s_log = defaultLog;
        }
示例#2
0
        public void ConfigurePipelineExample3()
        {
            IActivityPipeline pipeline = ActivityPipelineDefaults.CreateForMaturePhase();

            pipeline
            .Processors
            .FindByName <FilterToExcludeAllSelectedActivityProcessor>(ActivityPipelineDefaults.ProcessorNames.FilterToExcludeDevelopmentLogs)
            .ExceptActivitySelector = ActivityProcessor.UseSelectors.ByName.StartsWith("ComputePi");

            ActivityInsights.SetPipeline(pipeline);
        }
示例#3
0
        public void ConfigurePipelineExample1()
        {
            IActivityPipeline pipeline = ActivityInsights.Pipeline;

            TelemetryClient appInsightClient = pipeline.Senders.FindByName <ApplicationInsightsActivitySender>(ActivityPipelineDefaults.SenderNames.DefaultApplicationInsightsSender)?.ApplicationInsightsClient;

            appInsightClient = appInsightClient ?? new TelemetryClient();

            pipeline.Processors.Add(ActivityProcessor.CreateMetricExtractor(
                                        "Sample Extractor",
                                        ActivityProcessor.UseSelectors.ByName.StartsWith("Sale"),
                                        appInsightClient,
                                        "Price",
                                        ActivityProcessor.UseMeasurement.Custom("Cows Sold", null),
                                        ActivityProcessor.UseLabels.MapToDimensions(
                                            ActivityProcessor.UseLabels.MagicNames.ActivityName,
                                            ActivityProcessor.UseLabels.MagicNames.ActivityStatus,
                                            "Cow Gender",
                                            "Cow Breed",
                                            "Cow Color")));

            pipeline.Processors.Add(ActivityProcessor.CreateCustom("Sampling Processor", (Activity activity, out bool continueProcessing) =>
            {
                const double samplingRate = 0.2;     // 20%
                const int pivot           = (int)(Int32.MaxValue * samplingRate);

                int hash           = activity.RootActivity.ActivityId.GetHashCode();
                continueProcessing = (hash <= pivot);
            }));

            pipeline.Processors.Add(ActivityProcessor.CreateFilterToExcludeAllSelected(
                                        "Sample Filter",
                                        ActivityProcessor.UseSelectors.Combine.And(
                                            ActivityProcessor.UseSelectors.ByName.StartsWith("FooBar"),
                                            ActivityProcessor.UseSelectors.ByLogLevel.SmallerOrEqual(ActivityLogLevel.Debug),
                                            ActivityProcessor.UseSelectors.ByStatus.NotEqual(ActivityStatus.Faulted)
                                            )));
        }
 public ActivityInsightsLog(IActivityPipeline pipeline)
 {
     _pipeline            = Util.EnsureNotNull(pipeline, nameof(pipeline));
     this.DefaultLogLevel = ActivityLogLevel.Information;
 }
        public static IActivityPipeline SetPipeline(this ActivityInsightsLog activityInsightsLog, IActivityPipeline pipeline)
        {
            Util.EnsureNotNull(activityInsightsLog, nameof(activityInsightsLog));
            Util.EnsureNotNull(pipeline, nameof(pipeline));

            return(activityInsightsLog.Pipeline = pipeline);
        }
示例#6
0
        public void ConfigurePipelineExample2()
        {
            IActivityPipeline pipeline = ActivityPipelineDefaults.CreateForDevelopmentPhase();

            ActivityInsights.SetPipeline(pipeline);
        }
示例#7
0
 public static void SetPipeline(IActivityPipeline pipeline)
 {
     s_log.Pipeline = Util.EnsureNotNull(pipeline, nameof(pipeline));
 }