From fd0cc21b39aa07a42ce21675012656791f0cefef Mon Sep 17 00:00:00 2001 From: Reiley Yang Date: Tue, 4 Aug 2020 21:20:43 -0700 Subject: [PATCH] Update the custom processor project (#996) * update the processor project * simply code Co-authored-by: Cijo Thomas --- .../MyActivityProcessor.cs | 18 +++++++++++++----- .../building-your-own-processor/Program.cs | 10 ++++++---- 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/docs/trace/building-your-own-processor/MyActivityProcessor.cs b/docs/trace/building-your-own-processor/MyActivityProcessor.cs index d1328e9b86..1ae47044d0 100644 --- a/docs/trace/building-your-own-processor/MyActivityProcessor.cs +++ b/docs/trace/building-your-own-processor/MyActivityProcessor.cs @@ -22,29 +22,37 @@ internal class MyActivityProcessor : ActivityProcessor { - public MyActivityProcessor() + private readonly string name; + + public MyActivityProcessor(string name) + { + this.name = name; + } + + public override string ToString() { + return $"{this.GetType()}({this.name})"; } public override void OnStart(Activity activity) { - Console.WriteLine($"{this.GetType()} OnStart"); + Console.WriteLine($"{this}.OnStart"); } public override void OnEnd(Activity activity) { - Console.WriteLine($"{this.GetType()} OnEnd"); + Console.WriteLine($"{this}.OnEnd"); } public override Task ForceFlushAsync(CancellationToken cancellationToken) { - Console.WriteLine($"{this.GetType()} ForceFlushAsync"); + Console.WriteLine($"{this}.ForceFlushAsync"); return Task.CompletedTask; } public override Task ShutdownAsync(CancellationToken cancellationToken) { - Console.WriteLine($"{this.GetType()} ShutdownAsync"); + Console.WriteLine($"{this}.ShutdownAsync"); return Task.CompletedTask; } } diff --git a/docs/trace/building-your-own-processor/Program.cs b/docs/trace/building-your-own-processor/Program.cs index 5e124c0b70..d8bf87dc08 100644 --- a/docs/trace/building-your-own-processor/Program.cs +++ b/docs/trace/building-your-own-processor/Program.cs @@ -27,10 +27,12 @@ public static void Main() { using var otel = Sdk.CreateTracerProvider(b => b .AddActivitySource("MyCompany.MyProduct.MyLibrary") - .AddProcessorPipeline(pipeline => - { - pipeline.AddProcessor(current => new MyActivityProcessor()); - })); + + // TODO: seems buggy if you remove A and B here, MyActivityProcessor(C).OnEnd is not called. + // TODO: should the dispose order be C, B, A or A, B C? + .AddProcessorPipeline(p => p.AddProcessor(current => new MyActivityProcessor("A"))) + .AddProcessorPipeline(p => p.AddProcessor(current => new MyActivityProcessor("B"))) + .AddProcessorPipeline(p => p.AddProcessor(current => new MyActivityProcessor("C")))); using (var activity = MyActivitySource.StartActivity("SayHello")) {