GrpcNetClient Instrumentation to leverage native Activity Status. (#3569)

This commit is contained in:
Yun-Ting Lin 2022-08-12 10:06:26 -07:00 committed by GitHub
parent a2958ebd48
commit d1da1d66a3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 11 additions and 6 deletions

View File

@ -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

View File

@ -71,16 +71,16 @@ namespace OpenTelemetry.Instrumentation.GrpcNetClient
/// </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,
};
}

View File

@ -144,7 +144,7 @@ namespace OpenTelemetry.Instrumentation.GrpcNetClient.Implementation
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));
}

View File

@ -61,7 +61,7 @@ namespace OpenTelemetry.Instrumentation.Grpc.Tests
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));
}