Skip to content

Commit

Permalink
Fix EventSource for B3Propagator (#3336)
Browse files Browse the repository at this point in the history
  • Loading branch information
cijothomas authored Jun 3, 2022
1 parent 6493cdd commit 7d92b87
Show file tree
Hide file tree
Showing 9 changed files with 83 additions and 23 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +0,0 @@
OpenTelemetry.Extensions.Propagators.B3Propagator
OpenTelemetry.Extensions.Propagators.B3Propagator.B3Propagator() -> void
OpenTelemetry.Extensions.Propagators.B3Propagator.B3Propagator(bool singleHeader) -> void
override OpenTelemetry.Extensions.Propagators.B3Propagator.Extract<T>(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Func<T, string, System.Collections.Generic.IEnumerable<string>> getter) -> OpenTelemetry.Context.Propagation.PropagationContext
override OpenTelemetry.Extensions.Propagators.B3Propagator.Fields.get -> System.Collections.Generic.ISet<string>
override OpenTelemetry.Extensions.Propagators.B3Propagator.Inject<T>(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Action<T, string, string> setter) -> void
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
OpenTelemetry.Extensions.Propagators.B3Propagator
OpenTelemetry.Extensions.Propagators.B3Propagator.B3Propagator() -> void
OpenTelemetry.Extensions.Propagators.B3Propagator.B3Propagator(bool singleHeader) -> void
override OpenTelemetry.Extensions.Propagators.B3Propagator.Extract<T>(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Func<T, string, System.Collections.Generic.IEnumerable<string>> getter) -> OpenTelemetry.Context.Propagation.PropagationContext
override OpenTelemetry.Extensions.Propagators.B3Propagator.Fields.get -> System.Collections.Generic.ISet<string>
override OpenTelemetry.Extensions.Propagators.B3Propagator.Inject<T>(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Action<T, string, string> setter) -> void
Original file line number Diff line number Diff line change
@@ -1,6 +0,0 @@
OpenTelemetry.Extensions.Propagators.B3Propagator
OpenTelemetry.Extensions.Propagators.B3Propagator.B3Propagator() -> void
OpenTelemetry.Extensions.Propagators.B3Propagator.B3Propagator(bool singleHeader) -> void
override OpenTelemetry.Extensions.Propagators.B3Propagator.Extract<T>(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Func<T, string, System.Collections.Generic.IEnumerable<string>> getter) -> OpenTelemetry.Context.Propagation.PropagationContext
override OpenTelemetry.Extensions.Propagators.B3Propagator.Fields.get -> System.Collections.Generic.ISet<string>
override OpenTelemetry.Extensions.Propagators.B3Propagator.Inject<T>(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Action<T, string, string> setter) -> void
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
OpenTelemetry.Extensions.Propagators.B3Propagator
OpenTelemetry.Extensions.Propagators.B3Propagator.B3Propagator() -> void
OpenTelemetry.Extensions.Propagators.B3Propagator.B3Propagator(bool singleHeader) -> void
override OpenTelemetry.Extensions.Propagators.B3Propagator.Extract<T>(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Func<T, string, System.Collections.Generic.IEnumerable<string>> getter) -> OpenTelemetry.Context.Propagation.PropagationContext
override OpenTelemetry.Extensions.Propagators.B3Propagator.Fields.get -> System.Collections.Generic.ISet<string>
override OpenTelemetry.Extensions.Propagators.B3Propagator.Inject<T>(OpenTelemetry.Context.Propagation.PropagationContext context, T carrier, System.Action<T, string, string> setter) -> void
14 changes: 7 additions & 7 deletions src/OpenTelemetry.Extensions.Propagators/B3Propagator.cs
Original file line number Diff line number Diff line change
Expand Up @@ -88,13 +88,13 @@ public override PropagationContext Extract<T>(PropagationContext context, T carr

if (carrier == null)
{
OpenTelemetryApiEventSource.Log.FailedToExtractActivityContext(nameof(B3Propagator), "null carrier");
OpenTelemetryPropagatorsEventSource.Log.FailedToExtractActivityContext(nameof(B3Propagator), "null carrier");
return context;
}

if (getter == null)
{
OpenTelemetryApiEventSource.Log.FailedToExtractActivityContext(nameof(B3Propagator), "null getter");
OpenTelemetryPropagatorsEventSource.Log.FailedToExtractActivityContext(nameof(B3Propagator), "null getter");
return context;
}

Expand All @@ -113,19 +113,19 @@ public override void Inject<T>(PropagationContext context, T carrier, Action<T,
{
if (context.ActivityContext.TraceId == default || context.ActivityContext.SpanId == default)
{
OpenTelemetryApiEventSource.Log.FailedToInjectActivityContext(nameof(B3Propagator), "invalid context");
OpenTelemetryPropagatorsEventSource.Log.FailedToInjectActivityContext(nameof(B3Propagator), "invalid context");
return;
}

if (carrier == null)
{
OpenTelemetryApiEventSource.Log.FailedToInjectActivityContext(nameof(B3Propagator), "null carrier");
OpenTelemetryPropagatorsEventSource.Log.FailedToInjectActivityContext(nameof(B3Propagator), "null carrier");
return;
}

if (setter == null)
{
OpenTelemetryApiEventSource.Log.FailedToInjectActivityContext(nameof(B3Propagator), "null setter");
OpenTelemetryPropagatorsEventSource.Log.FailedToInjectActivityContext(nameof(B3Propagator), "null setter");
return;
}

Expand Down Expand Up @@ -199,7 +199,7 @@ private static PropagationContext ExtractFromMultipleHeaders<T>(PropagationConte
}
catch (Exception e)
{
OpenTelemetryApiEventSource.Log.ActivityContextExtractException(nameof(B3Propagator), e);
OpenTelemetryPropagatorsEventSource.Log.ActivityContextExtractException(nameof(B3Propagator), e);
return context;
}
}
Expand Down Expand Up @@ -259,7 +259,7 @@ private static PropagationContext ExtractFromSingleHeader<T>(PropagationContext
}
catch (Exception e)
{
OpenTelemetryApiEventSource.Log.ActivityContextExtractException(nameof(B3Propagator), e);
OpenTelemetryPropagatorsEventSource.Log.ActivityContextExtractException(nameof(B3Propagator), e);
return context;
}
}
Expand Down
3 changes: 3 additions & 0 deletions src/OpenTelemetry.Extensions.Propagators/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

## Unreleased

Use own EventSource named "OpenTelemetry.Extensions.Propagators"
for internal logging.

## 1.3.0-rc.2

Released 2022-June-1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,6 @@
<IncludeInstrumentationHelpers>true</IncludeInstrumentationHelpers>
</PropertyGroup>

<ItemGroup>
<Compile Include="$(RepoRoot)\src\OpenTelemetry.Api\Internal\OpenTelemetryApiEventSource.cs" Link="Includes\OpenTelemetryApiEventSource.cs" />
</ItemGroup>

<!--Do not run ApiCompat as this package is newly added.-->
<PropertyGroup>
<RunApiCompat>false</RunApiCompat>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
// <copyright file="OpenTelemetryPropagatorsEventSource.cs" company="OpenTelemetry Authors">
// Copyright The OpenTelemetry Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// </copyright>

using System;
using System.Diagnostics.Tracing;

namespace OpenTelemetry.Internal
{
/// <summary>
/// EventSource implementation for OpenTelemetry Propagators.
/// This is used for internal logging of this library.
/// </summary>
[EventSource(Name = "OpenTelemetry.Extensions.Propagators")]
internal class OpenTelemetryPropagatorsEventSource : EventSource
{
public static OpenTelemetryPropagatorsEventSource Log = new();

[NonEvent]
public void ActivityContextExtractException(string format, Exception ex)
{
if (this.IsEnabled(EventLevel.Warning, EventKeywords.All))
{
this.FailedToExtractActivityContext(format, ex.ToInvariantString());
}
}

[Event(1, Message = "Failed to extract activity context in format: '{0}', context: '{1}'.", Level = EventLevel.Warning)]
public void FailedToExtractActivityContext(string format, string exception)
{
this.WriteEvent(1, format, exception);
}

[Event(2, Message = "Failed to inject activity context in format: '{0}', context: '{1}'.", Level = EventLevel.Warning)]
public void FailedToInjectActivityContext(string format, string error)
{
this.WriteEvent(2, format, error);
}
}
}
9 changes: 9 additions & 0 deletions src/OpenTelemetry.Extensions.Propagators/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,15 @@ Sdk.SetDefaultTextMapPropagator(new CompositeTextMapPropagator(new TextMapPropag
}));
```

## Troubleshooting

This component uses an
[EventSource](https://docs.microsoft.com/dotnet/api/system.diagnostics.tracing.eventsource)
with the name "OpenTelemetry.Extensions.Propagators" for its internal logging.
Please refer to [SDK
troubleshooting](../OpenTelemetry/README.md#troubleshooting) for instructions on
seeing these internal logs.

## References

* [B3 (Zipkin) Context specification](https://github.com/openzipkin/b3-propagation)
Expand Down

0 comments on commit 7d92b87

Please sign in to comment.