GrpcNetClient Instrumentation to leverage native Activity Status. (#3569)
This commit is contained in:
parent
a2958ebd48
commit
d1da1d66a3
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue