Skip to content

Commit

Permalink
GrpcNetClient Instrumentation to leverage native Activity Status. (#3569
Browse files Browse the repository at this point in the history
)
  • Loading branch information
Yun-Ting authored Aug 12, 2022
1 parent a2958eb commit d1da1d6
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 6 deletions.
5 changes: 5 additions & 0 deletions src/OpenTelemetry.Instrumentation.GrpcNetClient/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@

## Unreleased

* Updated to use Activity native support from `System.Diagnostics.DiagnosticSource`
to set activity status.
([#3118](https://github.com/open-telemetry/opentelemetry-dotnet/issues/3118))
([#3569](https://github.com/open-telemetry/opentelemetry-dotnet/pull/3569))

## 1.0.0-rc9.5

Released 2022-Aug-02
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,16 +71,16 @@ public static bool TryParseRpcServiceAndRpcMethod(string grpcMethod, out string
/// </summary>
/// <param name="statusCode">RPC status code.</param>
/// <returns>Resolved span <see cref="Status"/> for the Grpc status code.</returns>
public static Status ResolveSpanStatusForGrpcStatusCode(int statusCode)
public static ActivityStatusCode ResolveSpanStatusForGrpcStatusCode(int statusCode)
{
var status = Status.Error;
var status = ActivityStatusCode.Error;

if (typeof(StatusCanonicalCode).IsEnumDefined(statusCode))
{
status = ((StatusCanonicalCode)statusCode) switch
{
StatusCanonicalCode.Ok => Status.Unset,
_ => Status.Error,
StatusCanonicalCode.Ok => ActivityStatusCode.Unset,
_ => ActivityStatusCode.Error,
};
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ public override void OnStopActivity(Activity activity, object payload)
bool validConversion = GrpcTagHelper.TryGetGrpcStatusCodeFromActivity(activity, out int status);
if (validConversion)
{
if (activity.GetStatus().StatusCode == StatusCode.Unset)
if (activity.Status == ActivityStatusCode.Unset)
{
activity.SetStatus(GrpcTagHelper.ResolveSpanStatusForGrpcStatusCode(status));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ public void GrpcTagHelper_GetGrpcStatusCodeFromActivity()
var statusCode = GrpcTagHelper.ResolveSpanStatusForGrpcStatusCode(status);
activity.SetTag(SemanticConventions.AttributeRpcGrpcStatusCode, status);

Assert.Equal(StatusCode.Unset, statusCode.StatusCode);
Assert.Equal(ActivityStatusCode.Unset, statusCode);
Assert.Equal(status, activity.GetTagValue(SemanticConventions.AttributeRpcGrpcStatusCode));
}

Expand Down

0 comments on commit d1da1d6

Please sign in to comment.