Example #1
0
        public void TestActivityWithListenerNoActivityCreate()
        {
            RemoteExecutor.Invoke(() => {
                using (ActivitySource aSource = new ActivitySource("SourceActivityListener"))
                {
                    Assert.False(aSource.HasListeners());

                    using (ActivityListener listener = new ActivityListener
                    {
                        ActivityStarted = activity => Assert.NotNull(activity),
                        ActivityStopped = activity => Assert.NotNull(activity),
                        ShouldListenTo = (activitySource) => object.ReferenceEquals(aSource, activitySource),
                        GetRequestedDataUsingParentId = (ref ActivityCreationOptions <string> activityOptions) => ActivityDataRequest.None,
                        GetRequestedDataUsingContext = (ref ActivityCreationOptions <ActivityContext> activityOptions) => ActivityDataRequest.None
                    }
                           )
                    {
                        ActivitySource.AddActivityListener(listener);
                        Assert.True(aSource.HasListeners());

                        // The listener is not allowing to create a new Activity.
                        Assert.Null(aSource.StartActivity("nullActivity"));
                    }
                }
            }).Dispose();
        }
        public async Task Should_start_and_log_activity()
        {
            var startCalled = false;

            using var listener = new ActivityListener
                  {
                      ShouldListenTo  = source => source.Name == "NServiceBus.Extensions.Diagnostics",
                      Sample          = (ref ActivityCreationOptions <ActivityContext> _) => ActivitySamplingResult.AllDataAndRecorded,
                      ActivityStarted = activity =>
                      {
                          startCalled = true;
                          activity.ShouldNotBeNull();
                          activity.OperationName.ShouldBe(ActivityNames.OutgoingPhysicalMessage);
                      },
                  };
            ActivitySource.AddActivityListener(listener);

            var context = new TestableOutgoingPhysicalMessageContext();

            var behavior = new OutgoingPhysicalMessageDiagnostics(new FakeActivityEnricher());

            await behavior.Invoke(context, () => Task.CompletedTask);

            startCalled.ShouldBeTrue();
        }
        /// <summary> <see cref="IPipe{T}"/> implementation </summary>
        public async Task Execute(IContext ctx, string[] value)
        {
            using var listener = new ActivityListener()
                  {
                      Sample = (ref ActivityCreationOptions <ActivityContext> options) => ActivitySamplingResult.AllDataAndRecorded,
                      SampleUsingParentId = (ref ActivityCreationOptions <string> options) => ActivitySamplingResult.AllDataAndRecorded,
                      ShouldListenTo      = x => true,
                      ActivityStarted     = ActivityStarted,
                      ActivityStopped     = ActivityStopped,
                  };

            ActivitySource.AddActivityListener(listener);

            var rpc = await Pipe.Builder <string[]>()
                      .UseDiagnosticsActivity("rpc.request", ActivityKind.Client, getTags: (_, args) => args.Select((a, index) => new KeyValuePair <string, object?>($"arg{index}", a)))
                      .WithRpcProvider(this, new RpcOptions {
                Timeout = TimeSpan.FromSeconds(5)
            })
                      .OnRpcResponse <string>(pipe => pipe
                                              .UseDiagnosticsActivity("rpc.response")
                                              .Use((_, rsp) => Console.WriteLine("Response received: {0}", string.Join(",", rsp))))
                      .OnRpcError <Exception>(pipe => pipe
                                              .UseDiagnosticsActivity("rpc.error", getTags: GetExceptionTags)
                                              .Use((_, ex) => Console.WriteLine("Handled exception: {0}", ex.Message)))
                      .Build();

            try
            {
                await rpc.Execute(ctx, value);
            }
            catch
            {
                // ignore, tracing will show the exception
            }
        }
Example #4
0
        public void ActivityListenersAreCalled()
        {
            var hostingApplication = CreateApplication(out var features);

            using var listener = new ActivityListener
                  {
                      ShouldListenTo  = activitySource => true,
                      Sample          = (ref ActivityCreationOptions <ActivityContext> _) => ActivitySamplingResult.AllData,
                      ActivityStarted = activity =>
                      {
                          Assert.Equal("0123456789abcdef", Activity.Current.ParentSpanId.ToHexString());
                      }
                  };

            ActivitySource.AddActivityListener(listener);

            features.Set <IHttpRequestFeature>(new HttpRequestFeature()
            {
                Headers = new HeaderDictionary()
                {
                    { "traceparent", "00-0123456789abcdef0123456789abcdef-0123456789abcdef-01" },
                    { "tracestate", "TraceState1" },
                    { "baggage", "Key1=value1, Key2=value2" }
                }
            });
            hostingApplication.CreateContext(features);
        }
Example #5
0
    public EventuousMetrics()
    {
        _meter = EventuousDiagnostics.GetMeter(MeterName);

        var eventStoreMetric = _meter.CreateHistogram <double>(
            Constants.Components.EventStore,
            "ms",
            "Event store operation duration, milliseconds"
            );

        var appServiceMetric = _meter.CreateHistogram <double>(
            Constants.Components.AppService,
            "ms",
            "Application service operation duration, milliseconds"
            );

        _listener = new ActivityListener {
            ShouldListenTo  = x => x.Name == EventuousDiagnostics.InstrumentationName,
            Sample          = (ref ActivityCreationOptions <ActivityContext> _) => ActivitySamplingResult.AllData,
            ActivityStopped = Record
        };

        ActivitySource.AddActivityListener(_listener);

        void Record(Activity activity)
        {
            var dot = activity.OperationName.IndexOf('.');

            if (dot == -1)
            {
                return;
            }

            var prefix = activity.OperationName[..dot];
Example #6
0
        public async Task CanConvertValueAndContextInPipe()
        {
            ActivitySource.AddActivityListener(new ActivityListener()
            {
                Sample          = (ref ActivityCreationOptions <ActivityContext> options) => ActivitySamplingResult.AllDataAndRecorded,
                ShouldListenTo  = x => true,
                ActivityStarted = activity => Console.WriteLine($"{activity.DisplayName} {activity.Id} started at {activity.StartTimeUtc}"),
                ActivityStopped = obj => Console.WriteLine($"{obj.DisplayName} {obj.Id} took {obj.Duration:g}"),
            });
            var id      = Guid.NewGuid();
            var builder = Pipe.Builder <int>()
                          .UseDiagnosticsActivity("TestActivity")
                          .UseTransform().Value(data => data.ToString());

            var output = new Output();
            var pipe   = await builder.Build(output);

            int count = 0;

            while (count++ < 20)
            {
                await pipe.Execute(Context.Background, 1);
            }

            Assert.AreEqual("1", output.Value);
        }
        public void Should_fire_activity_start_stop_when_sampling()
        {
            var stopFired  = false;
            var startFired = false;

            using var listener = new ActivityListener
                  {
                      ShouldListenTo  = source => source.Name == "MongoDB.Driver.Core.Extensions.DiagnosticSources",
                      Sample          = (ref ActivityCreationOptions <ActivityContext> _) => ActivitySamplingResult.PropagationData,
                      ActivityStarted = _ => startFired = true,
                      ActivityStopped = _ => stopFired = true
                  };
            ActivitySource.AddActivityListener(listener);

            var behavior = new DiagnosticsActivityEventSubscriber();

            behavior.TryGetEventHandler <CommandStartedEvent>(out var startEvent).ShouldBeTrue();
            behavior.TryGetEventHandler <CommandSucceededEvent>(out var stopEvent).ShouldBeTrue();

            startEvent(new CommandStartedEvent());
            stopEvent(new CommandSucceededEvent());

            startFired.ShouldBeTrue();
            stopFired.ShouldBeTrue();
            Activity.Current.ShouldBeNull();
        }
Example #8
0
        public void TestActivitySourceAttachedObject()
        {
            RemoteExecutor.Invoke(() => {
                // All Activities created through the constructor should have same source.
                Assert.True(object.ReferenceEquals(new Activity("a1").Source, new Activity("a2").Source));
                Assert.Equal("", new Activity("a3").Source.Name);
                Assert.Equal(string.Empty, new Activity("a4").Source.Version);

                using (ActivitySource aSource = new ActivitySource("SourceToTest", "1.2.3.4"))
                {
                    //Ensure at least we have a listener to allow Activity creation
                    using (ActivityListener listener = new ActivityListener
                    {
                        ActivityStarted = activity => Assert.NotNull(activity),
                        ActivityStopped = activity => Assert.NotNull(activity),
                        ShouldListenTo = (activitySource) => object.ReferenceEquals(aSource, activitySource),
                        GetRequestedDataUsingParentId = (ref ActivityCreationOptions <string> activityOptions) => ActivityDataRequest.AllData,
                        GetRequestedDataUsingContext = (ref ActivityCreationOptions <ActivityContext> activityOptions) => ActivityDataRequest.AllData
                    }
                           )
                    {
                        ActivitySource.AddActivityListener(listener);

                        using (Activity activity = aSource.StartActivity("ActivityToTest"))
                        {
                            Assert.True(object.ReferenceEquals(aSource, activity.Source));
                        }
                    }
                }
            }).Dispose();
        }
    public void IHttpActivityFeatureIsPopulated()
    {
        var testSource  = new ActivitySource(Path.GetRandomFileName());
        var dummySource = new ActivitySource(Path.GetRandomFileName());

        using var listener = new ActivityListener
              {
                  ShouldListenTo = activitySource => (ReferenceEquals(activitySource, testSource) ||
                                                      ReferenceEquals(activitySource, dummySource)),
                  Sample = (ref ActivityCreationOptions <ActivityContext> _) => ActivitySamplingResult.AllData
              };
        ActivitySource.AddActivityListener(listener);

        var hostingApplication = CreateApplication(activitySource: testSource);
        var httpContext        = new DefaultHttpContext();
        var context            = hostingApplication.CreateContext(httpContext.Features);

        var activityFeature = context.HttpContext.Features.Get <IHttpActivityFeature>();

        Assert.NotNull(activityFeature);
        Assert.NotNull(activityFeature.Activity);
        Assert.Equal(HostingApplicationDiagnostics.ActivityName, activityFeature.Activity.DisplayName);
        var initialActivity = Activity.Current;

        // Create nested dummy Activity
        using var _ = dummySource.StartActivity("DummyActivity");

        Assert.Same(initialActivity, activityFeature.Activity);
        Assert.NotEqual(Activity.Current, activityFeature.Activity);

        // Act/Assert
        hostingApplication.DisposeContext(context, null);
    }
    public void SamplersReceiveCorrectParentAndTraceIds()
    {
        var testSource         = new ActivitySource(Path.GetRandomFileName());
        var hostingApplication = CreateApplication(out var features, activitySource: testSource);
        var parentId           = "";
        var parentSpanId       = "";
        var traceId            = "";

        using var listener = new ActivityListener
              {
                  ShouldListenTo  = activitySource => ReferenceEquals(activitySource, testSource),
                  Sample          = (ref ActivityCreationOptions <ActivityContext> options) => ComputeActivitySamplingResult(ref options),
                  ActivityStarted = activity =>
                  {
                      parentId     = activity.ParentId;
                      parentSpanId = activity.ParentSpanId.ToHexString();
                      traceId      = activity.TraceId.ToHexString();
                  }
              };

        ActivitySource.AddActivityListener(listener);

        features.Set <IHttpRequestFeature>(new HttpRequestFeature()
        {
            Headers = new HeaderDictionary()
            {
                { "traceparent", "00-35aae61e3e99044eb5ea5007f2cd159b-40a8bd87c078cb4c-00" },
            }
        });

        hostingApplication.CreateContext(features);
        Assert.Equal("00-35aae61e3e99044eb5ea5007f2cd159b-40a8bd87c078cb4c-00", parentId);
        Assert.Equal("40a8bd87c078cb4c", parentSpanId);
        Assert.Equal("35aae61e3e99044eb5ea5007f2cd159b", traceId);
Example #11
0
        public async Task Should_add_headers_to_tags()
        {
            var startCalled = false;

            using var listener = new ActivityListener
                  {
                      ShouldListenTo  = source => source.Name == "NServiceBus.Extensions.Diagnostics",
                      Sample          = (ref ActivityCreationOptions <ActivityContext> _) => ActivitySamplingResult.AllDataAndRecorded,
                      ActivityStarted = activity =>
                      {
                          startCalled = true;

                          activity.ShouldNotBeNull();
                          activity.Tags.ShouldNotContain(kvp => kvp.Key == "foo");
                      },
                  };
            ActivitySource.AddActivityListener(listener);

            var context = new TestableIncomingPhysicalMessageContext
            {
                MessageHeaders =
                {
                    { "foo", "bar" },
                }
            };

            var behavior = new IncomingPhysicalMessageDiagnostics(new FakeActivityEnricher());

            await behavior.Invoke(context, () => Task.CompletedTask);

            startCalled.ShouldBeTrue();
        }
        public void Should_not_fire_activity_start_stop_when_no_listener_attached()
        {
            var stopFired  = false;
            var startFired = false;

            using var listener = new ActivityListener
                  {
                      ShouldListenTo  = source => source.Name == "Nonsense",
                      ActivityStarted = _ => startFired = true,
                      ActivityStopped = _ => stopFired = true
                  };

            ActivitySource.AddActivityListener(listener);

            var behavior = new DiagnosticsActivityEventSubscriber();

            behavior.TryGetEventHandler <CommandStartedEvent>(out var startEvent).ShouldBeTrue();
            behavior.TryGetEventHandler <CommandSucceededEvent>(out var stopEvent).ShouldBeTrue();

            startEvent(new CommandStartedEvent());
            stopEvent(new CommandSucceededEvent());

            startFired.ShouldBeFalse();
            stopFired.ShouldBeFalse();
        }
        public TestActivitySourceListener(Func <ActivitySource, bool> sourceSelector)
        {
            _listener = new ActivityListener
            {
                ShouldListenTo  = sourceSelector,
                ActivityStarted = activity =>
                {
                    lock (Activities)
                    {
                        Activities.Enqueue(activity);
                    }
                },
                Sample = (ref ActivityCreationOptions <ActivityContext> options) =>
                {
                    if (options.Tags.Any(t => t.Key == "sampled-out" && bool.TrueString == t.Value.ToString()))
                    {
                        return(ActivitySamplingResult.None);
                    }

                    return(ActivitySamplingResult.AllDataAndRecorded);
                }
            };

            ActivitySource.AddActivityListener(_listener);
        }
 public TestActivityListener()
 {
     _listener = new ActivityListener();
     _listener.ShouldListenTo  = _ => true;
     _listener.ActivityStarted = activity => _activites.Add(activity);
     _listener.Sample          = (ref ActivityCreationOptions <ActivityContext> _) => ActivitySamplingResult.AllDataAndRecorded;
     ActivitySource.AddActivityListener(_listener);
 }
Example #15
0
 public static void ListenForRebus()
 {
     ActivitySource.AddActivityListener(new ActivityListener
     {
         ShouldListenTo = source => source.Name == RebusDiagnosticConstants.ActivitySourceName,
         Sample         = (ref ActivityCreationOptions <ActivityContext> _) => ActivitySamplingResult.AllData
     });
 }
Example #16
0
        protected override Task ExecuteAsync(CancellationToken stoppingToken)
        {
            ActivitySource.AddActivityListener(_listener);

            var completion = new TaskCompletionSource();

            stoppingToken.Register(() => completion.SetResult());
            return(completion.Task);
        }
Example #17
0
        public void TestActivityWithListenerActivityCreateAndAllDataRequested()
        {
            RemoteExecutor.Invoke(() => {
                using (ActivitySource aSource = new ActivitySource("SourceActivityListener"))
                {
                    int counter = 0;
                    Assert.False(aSource.HasListeners());

                    using (ActivityListener listener = new ActivityListener
                    {
                        ActivityStarted = activity => counter++,
                        ActivityStopped = activity => counter--,
                        ShouldListenTo = (activitySource) => object.ReferenceEquals(aSource, activitySource),
                        GetRequestedDataUsingParentId = (ref ActivityCreationOptions <string> activityOptions) => ActivityDataRequest.AllDataAndRecorded,
                        GetRequestedDataUsingContext = (ref ActivityCreationOptions <ActivityContext> activityOptions) => ActivityDataRequest.AllDataAndRecorded
                    }
                           )
                    {
                        ActivitySource.AddActivityListener(listener);

                        Assert.True(aSource.HasListeners());

                        using (Activity activity = aSource.StartActivity("AllDataRequestedActivity"))
                        {
                            Assert.NotNull(activity);
                            Assert.True(activity.IsAllDataRequested);
                            Assert.Equal(1, counter);

                            Assert.Equal(0, activity.Tags.Count());
                            Assert.Equal(0, activity.Baggage.Count());

                            Assert.True(object.ReferenceEquals(activity, activity.AddTag("key", "value")));
                            Assert.True(object.ReferenceEquals(activity, activity.AddBaggage("key", "value")));

                            Assert.Equal(1, activity.Tags.Count());
                            Assert.Equal(1, activity.Baggage.Count());

                            using (Activity activity1 = aSource.StartActivity("AllDataRequestedActivity1"))
                            {
                                Assert.NotNull(activity1);
                                Assert.True(activity1.IsAllDataRequested);
                                Assert.Equal(2, counter);

                                Assert.Equal(0, activity1.Links.Count());
                                Assert.Equal(0, activity1.Events.Count());
                                Assert.True(object.ReferenceEquals(activity1, activity1.AddEvent(new ActivityEvent("e1"))));
                                Assert.Equal(1, activity1.Events.Count());
                            }
                            Assert.Equal(1, counter);
                        }

                        Assert.Equal(0, counter);
                    }
                }
            }).Dispose();
        }
 /// <summary>
 /// Creates ActivitySource that would for activity creation for specific ActivitySource
 /// </summary>
 public TestActivityListener(string?sourceName = null)
 {
     Activities = new List <Activity>();
     m_listener = new ActivityListener();
     m_listener.ShouldListenTo      += source => sourceName == null || source.Name.Equals(sourceName, StringComparison.Ordinal);
     m_listener.Sample              += (ref ActivityCreationOptions <ActivityContext> options) => ActivitySamplingResult.AllDataAndRecorded;
     m_listener.SampleUsingParentId += (ref ActivityCreationOptions <string> options) => ActivitySamplingResult.AllDataAndRecorded;
     m_listener.ActivityStarted     += activity => Activities.Add(activity);
     ActivitySource.AddActivityListener(m_listener);
 }
 public GenericHostingTests(ITestOutputHelper outputHelper)
 {
     _listener = new ActivityListener
     {
         ShouldListenTo = source => source.Name == OpenTelemetryOptions.DefaultActivitySourceName,
         Sample         = (ref ActivityCreationOptions <ActivityContext> _) =>
                          ActivitySamplingResult.AllDataAndRecorded,
         ActivityStarted = _ => { outputHelper.WriteLine("test"); },
     };
     ActivitySource.AddActivityListener(_listener);
 }
Example #20
0
        static MyTelemetry()
        {
            Source = new ActivitySource(ApplicationEnvironment.AppName);

            ActivitySource.AddActivityListener(new ActivityListener
            {
                ShouldListenTo      = s => true,
                SampleUsingParentId = (ref ActivityCreationOptions <string> activityOptions) => ActivitySamplingResult.AllData,
                Sample = (ref ActivityCreationOptions <ActivityContext> activityOptions) => ActivitySamplingResult.AllData
            });
        }
Example #21
0
        /// <summary>
        /// Enables OpenTelemetry.
        /// </summary>
        /// <param name="configureOpenTelemetryBuilder">Function that configures OpenTelemetryBuilder.</param>
        /// <returns><see cref="OpenTelemetrySdk"/> instance which can be disposed on application shutdown.</returns>
        /// <remarks>
        /// Basic implementation only. Most logic from TracerBuilder will be ported here.
        /// </remarks>
        public static OpenTelemetrySdk EnableOpenTelemetry(Action <OpenTelemetryBuilder> configureOpenTelemetryBuilder)
        {
            var openTelemetryBuilder = new OpenTelemetryBuilder();

            configureOpenTelemetryBuilder(openTelemetryBuilder);

            var             openTelemetrySDK = new OpenTelemetrySdk();
            ActivitySampler sampler          = openTelemetryBuilder.Sampler ?? new AlwaysOnActivitySampler();

            ActivityProcessor activityProcessor;

            if (openTelemetryBuilder.ProcessingPipeline == null)
            {
                // if there are no pipelines are configured, use noop processor
                activityProcessor = new NoopActivityProcessor();
            }
            else
            {
                activityProcessor = openTelemetryBuilder.ProcessingPipeline.Build();
            }

            if (openTelemetryBuilder.InstrumentationFactories != null)
            {
                foreach (var instrumentation in openTelemetryBuilder.InstrumentationFactories)
                {
                    openTelemetrySDK.instrumentations.Add(instrumentation.Factory());
                }
            }

            // This is what subscribes to Activities.
            // Think of this as the replacement for DiagnosticListener.AllListeners.Subscribe(onNext => diagnosticListener.Subscribe(..));
            openTelemetrySDK.listener = new ActivityListener
            {
                // Callback when Activity is started.
                ActivityStarted = activityProcessor.OnStart,

                // Callback when Activity is started.
                ActivityStopped = activityProcessor.OnEnd,

                // Function which takes ActivitySource and returns true/false to indicate if it should be subscribed to
                // or not
                ShouldListenTo = (activitySource) => openTelemetryBuilder.ActivitySourceNames?.Contains(activitySource.Name.ToUpperInvariant()) ?? false,

                // The following parameter is not used now.
                GetRequestedDataUsingParentId = (ref ActivityCreationOptions <string> options) => ActivityDataRequest.AllData,

                // This delegate informs ActivitySource about sampling decision when the parent context is an ActivityContext.
                GetRequestedDataUsingContext = (ref ActivityCreationOptions <ActivityContext> options) => ComputeActivityDataRequest(options, sampler),
            };

            ActivitySource.AddActivityListener(openTelemetrySDK.listener);
            return(openTelemetrySDK);
        }
        public void TestActivityTriggeringCallerMemberNameAttribute()
        {
            RemoteExecutor.Invoke(() => {
                using (ActivitySource aSource = new ActivitySource("SourceActivityTriggeringCallerMemberNameAttribute"))
                {
                    using ActivityListener listener = new ActivityListener();
                    listener.ShouldListenTo         = (activitySource) => object.ReferenceEquals(aSource, activitySource);
                    listener.Sample = (ref ActivityCreationOptions <ActivityContext> activityOptions) => ActivitySamplingResult.AllData;

                    ActivitySource.AddActivityListener(listener);

                    string methodName = MethodBase.GetCurrentMethod().Name;

                    using (Activity activity = aSource.StartActivity()) // passing default name should trigger CallerMemberName attribute.
                    {
                        Assert.NotNull(activity);
                        Assert.True(methodName.IndexOf(activity.OperationName, StringComparison.Ordinal) >= 0);

                        using (Activity activity1 = aSource.StartActivity(ActivityKind.Client)) // passing default name should trigger CallerMemberName attribute.
                        {
                            Assert.NotNull(activity1);
                            Assert.True(methodName.IndexOf(activity1.OperationName, StringComparison.Ordinal) >= 0);
                            Assert.Equal(ActivityKind.Client, activity1.Kind);
                        }

                        ActivityContext parentContext = new ActivityContext(ActivityTraceId.CreateRandom(), ActivitySpanId.CreateRandom(), ActivityTraceFlags.None);
                        List <KeyValuePair <string, object> > tags = new List <KeyValuePair <string, object> >()
                        {
                            new KeyValuePair <string, object>("Key", "Value")
                        };
                        List <ActivityLink> links = new List <ActivityLink>()
                        {
                            new ActivityLink(new ActivityContext(ActivityTraceId.CreateRandom(), ActivitySpanId.CreateRandom(), ActivityTraceFlags.None, "key-value"))
                        };
                        DateTimeOffset startTime = DateTimeOffset.UtcNow;

                        using (Activity activity2 = aSource.StartActivity(ActivityKind.Server, parentContext, tags, links, startTime))
                        {
                            Assert.NotNull(activity2);
                            Assert.True(methodName.IndexOf(activity2.OperationName, StringComparison.Ordinal) >= 0);
                            Assert.Equal(ActivityKind.Server, activity2.Kind);
                            Assert.Equal(tags, activity2.TagObjects);
                            Assert.Equal(links, activity2.Links);
                            Assert.Equal(startTime, activity2.StartTimeUtc);
                            Assert.Equal(parentContext.TraceId, activity2.TraceId);
                            Assert.Equal(parentContext.SpanId, activity2.ParentSpanId);
                            Assert.Equal(parentContext.TraceFlags, activity2.ActivityTraceFlags);
                            Assert.Equal(parentContext.TraceState, activity2.TraceStateString);
                        }
                    }
                }
            }).Dispose();
        }
Example #23
0
        static ActivityBenchmarks()
        {
            using ActivitySource activitySource = new ActivitySource("Benchmarks");

            ActivitySource.AddActivityListener(
                new ActivityListener
            {
                ShouldListenTo = (source) => true,
                Sample         = (ref ActivityCreationOptions <ActivityContext> options) => ActivitySamplingResult.AllData,
            });

            var activityLinks = new[]
Example #24
0
        public TraceBenchmark()
        {
            Activity.DefaultIdFormat = ActivityIdFormat.W3C;

            ActivitySource.AddActivityListener(new ActivityListener
            {
                ActivityStarted = null,
                ActivityStopped = null,
                ShouldListenTo  = (activitySource) => activitySource.Name == this.sourceWithPropagationDataListner.Name,
                GetRequestedDataUsingParentId = (ref ActivityCreationOptions <string> options) => ActivityDataRequest.PropagationData,
                GetRequestedDataUsingContext  = (ref ActivityCreationOptions <ActivityContext> options) => ActivityDataRequest.PropagationData,
            });

            ActivitySource.AddActivityListener(new ActivityListener
            {
                ActivityStarted = null,
                ActivityStopped = null,
                ShouldListenTo  = (activitySource) => activitySource.Name == this.sourceWithAllDataListner.Name,
                GetRequestedDataUsingParentId = (ref ActivityCreationOptions <string> options) => ActivityDataRequest.AllData,
                GetRequestedDataUsingContext  = (ref ActivityCreationOptions <ActivityContext> options) => ActivityDataRequest.AllData,
            });

            ActivitySource.AddActivityListener(new ActivityListener
            {
                ActivityStarted = null,
                ActivityStopped = null,
                ShouldListenTo  = (activitySource) => activitySource.Name == this.sourceWithAllDataAndRecordedListner.Name,
                GetRequestedDataUsingParentId = (ref ActivityCreationOptions <string> options) => ActivityDataRequest.AllDataAndRecorded,
                GetRequestedDataUsingContext  = (ref ActivityCreationOptions <ActivityContext> options) => ActivityDataRequest.AllDataAndRecorded,
            });

            Sdk.CreateTracerProviderBuilder()
            .SetSampler(new AlwaysOnSampler())
            .AddSource(this.sourceWithOneProcessor.Name)
            .AddProcessor(new DummyActivityProcessor())
            .Build();

            Sdk.CreateTracerProviderBuilder()
            .SetSampler(new AlwaysOnSampler())
            .AddSource(this.sourceWithTwoProcessors.Name)
            .AddProcessor(new DummyActivityProcessor())
            .AddProcessor(new DummyActivityProcessor())
            .Build();

            Sdk.CreateTracerProviderBuilder()
            .SetSampler(new AlwaysOnSampler())
            .AddSource(this.sourceWithThreeProcessors.Name)
            .AddProcessor(new DummyActivityProcessor())
            .AddProcessor(new DummyActivityProcessor())
            .AddProcessor(new DummyActivityProcessor())
            .Build();
        }
Example #25
0
        public Task StartAsync(CancellationToken cancellationToken)
        {
            m_listener = new ActivityListener();
            m_listener.ActivityStarted     += ActivityStart;
            m_listener.ActivityStopped     += ActivityStopped;
            m_listener.Sample              += Sample;
            m_listener.SampleUsingParentId += SampleUsingParentId;
            m_listener.ShouldListenTo      += ShouldListenTo;

            ActivitySource.AddActivityListener(m_listener);

            return(Task.CompletedTask);
        }
        static ZipkinExporterTests()
        {
            Activity.DefaultIdFormat      = ActivityIdFormat.W3C;
            Activity.ForceDefaultIdFormat = true;

            var listener = new ActivityListener
            {
                ShouldListenTo = _ => true,
                Sample         = (ref ActivityCreationOptions <ActivityContext> options) => ActivitySamplingResult.AllData,
            };

            ActivitySource.AddActivityListener(listener);
        }
Example #27
0
 public GenericHostingTests(RabbitMQFixture fixture, ITestOutputHelper outputHelper)
 {
     _outputHelper = outputHelper;
     _listener     = new ActivityListener
     {
         ShouldListenTo = source => source.Name == typeof(TracingDelegatingMessageHandler <>).FullName,
         Sample         = (ref ActivityCreationOptions <ActivityContext> options) =>
                          ActivitySamplingResult.AllDataAndRecorded,
         ActivityStarted = activity => { _outputHelper.WriteLine("test"); },
     };
     ActivitySource.AddActivityListener(_listener);
     _fixture = fixture;
 }
Example #28
0
        static TagObjectsGetValuesBenchmarks()
        {
            Activity.DefaultIdFormat      = ActivityIdFormat.W3C;
            Activity.ForceDefaultIdFormat = true;

            var listener = new ActivityListener
            {
                ShouldListenTo = _ => true,
                Sample         = (ref ActivityCreationOptions <ActivityContext> options) => ActivitySamplingResult.AllData,
            };

            ActivitySource.AddActivityListener(listener);
        }
Example #29
0
        static JaegerActivityConversionTest()
        {
            Activity.DefaultIdFormat      = ActivityIdFormat.W3C;
            Activity.ForceDefaultIdFormat = true;

            var listener = new ActivityListener
            {
                ShouldListenTo = _ => true,
                GetRequestedDataUsingParentId = (ref ActivityCreationOptions <string> options) => ActivityDataRequest.AllData,
                GetRequestedDataUsingContext  = (ref ActivityCreationOptions <ActivityContext> options) => ActivityDataRequest.AllData,
            };

            ActivitySource.AddActivityListener(listener);
        }
Example #30
0
        static OfflineStorageTests()
        {
            Activity.DefaultIdFormat      = ActivityIdFormat.W3C;
            Activity.ForceDefaultIdFormat = true;

            var listener = new ActivityListener
            {
                ShouldListenTo = _ => true,
                Sample         = (ref ActivityCreationOptions <ActivityContext> options) => ActivitySamplingResult.AllData,
            };

            ActivitySource.AddActivityListener(listener);

            HttpPipelineHelper.MinimumRetryInterval = 6000;
        }