@InternalApi("Visible for testing") static Status convertErrorToStatus(Throwable error) { if (!(error instanceof ApiException)) { return Status.UNKNOWN.withDescription(error.getMessage()); } ApiException apiException = (ApiException) error; Status.CanonicalCode code; try { code = Status.CanonicalCode.valueOf(apiException.getStatusCode().getCode().name()); } catch (IllegalArgumentException e) { code = CanonicalCode.UNKNOWN; } return code.toStatus().withDescription(error.getMessage()); } }
@InternalApi("Visible for testing") static Status convertErrorToStatus(Throwable error) { if (!(error instanceof ApiException)) { return Status.UNKNOWN.withDescription(error.getMessage()); } ApiException apiException = (ApiException) error; Status.CanonicalCode code; try { code = Status.CanonicalCode.valueOf(apiException.getStatusCode().getCode().name()); } catch (IllegalArgumentException e) { code = CanonicalCode.UNKNOWN; } return code.toStatus().withDescription(error.getMessage()); } }
span.setStatus( Status.CanonicalCode.valueOf(e.getStatusCode().getCode().name()) .toStatus() .withDescription( "ApiException thrown when creating MetricDescriptor: "
span.setStatus( Status.CanonicalCode.valueOf(e.getStatusCode().getCode().name()) .toStatus() .withDescription( "ApiException thrown when exporting TimeSeries: "
@Test public void convertToGrpcStatus() { // Without description for (io.opencensus.trace.Status.CanonicalCode opencensusCanonicalCode : io.opencensus.trace.Status.CanonicalCode.values()) { io.opencensus.trace.Status opencensusStatus = opencensusCanonicalCode.toStatus(); io.grpc.Status grpcStatus = StatusConverter.toGrpcStatus(opencensusStatus); assertThat(grpcStatus.getCode().toString()) .isEqualTo(opencensusStatus.getCanonicalCode().toString()); assertThat(grpcStatus.getDescription()).isNull(); } // With description for (io.opencensus.trace.Status.CanonicalCode opencensusCanonicalCode : io.opencensus.trace.Status.CanonicalCode.values()) { io.opencensus.trace.Status opencensusStatus = opencensusCanonicalCode.toStatus().withDescription("This is my description"); io.grpc.Status grpcStatus = StatusConverter.toGrpcStatus(opencensusStatus); assertThat(grpcStatus.getCode().toString()) .isEqualTo(opencensusStatus.getCanonicalCode().toString()); assertThat(grpcStatus.getDescription()).isEqualTo(opencensusStatus.getDescription()); } } }
private void addSpanNameToAllErrorBuckets(String spanName) { for (CanonicalCode code : CanonicalCode.values()) { if (code != CanonicalCode.OK) { Span sampledSpan = createSampledSpan(spanName); Span notSampledSpan = createNotSampledSpan(spanName); testClock.advanceTime(Duration.create(0, 1000)); sampledSpan.end(EndSpanOptions.builder().setStatus(code.toStatus()).build()); notSampledSpan.end(EndSpanOptions.builder().setStatus(code.toStatus()).build()); } } }