/// <summary> /// Helper method that populates span properties from http status code according /// to https://github.com/open-telemetry/opentelemetry-specification/blob/2316771e7e0ca3bfe9b2286d13e3a41ded6b8858/specification/data-http.md. /// </summary> /// <param name="span">Span to fill out.</param> /// <param name="statusCode">Http status code.</param> /// <param name="reasonPhrase">Http reason phrase.</param> /// <returns>Span with populated properties.</returns> public static TelemetrySpan PutHttpStatusCode(this TelemetrySpan span, int statusCode, string reasonPhrase) { span.PutHttpStatusCodeAttribute(statusCode); span.Status = SpanHelper.ResolveSpanStatusForHttpStatusCode(statusCode).WithDescription(reasonPhrase); return(span); }
/// <summary> /// Helper method that populates span properties from http status code according /// to https://github.com/open-telemetry/opentelemetry-specification/blob/2316771e7e0ca3bfe9b2286d13e3a41ded6b8858/specification/data-http.md. /// </summary> /// <param name="span">Span to fill out.</param> /// <param name="statusCode">Http status code.</param> /// <param name="reasonPhrase">Http reason phrase.</param> /// <returns>Span with populated properties.</returns> public static TelemetrySpan PutHttpStatusCode(this TelemetrySpan span, int statusCode, string reasonPhrase) { span.PutHttpStatusCodeAttribute(statusCode); var newStatus = Status.Ok; if ((int)statusCode < 200) { newStatus = Status.Unknown; } else if ((int)statusCode >= 200 && (int)statusCode <= 399) { newStatus = Status.Ok; } else if ((int)statusCode == 400) { newStatus = Status.InvalidArgument; } else if ((int)statusCode == 401) { newStatus = Status.Unauthenticated; } else if ((int)statusCode == 403) { newStatus = Status.PermissionDenied; } else if ((int)statusCode == 404) { newStatus = Status.NotFound; } else if ((int)statusCode == 429) { newStatus = Status.ResourceExhausted; } else if ((int)statusCode == 501) { newStatus = Status.Unimplemented; } else if ((int)statusCode == 503) { newStatus = Status.Unavailable; } else if ((int)statusCode == 504) { newStatus = Status.DeadlineExceeded; } else { newStatus = Status.Unknown; } span.Status = newStatus.WithDescription(reasonPhrase); return(span); }