diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpClientStatusConverter.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpClientStatusConverter.java deleted file mode 100644 index 755f31346a..0000000000 --- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpClientStatusConverter.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.instrumentation.api.instrumenter.http; - -import io.opentelemetry.api.trace.StatusCode; - -final class HttpClientStatusConverter implements HttpStatusConverter { - - static final HttpStatusConverter INSTANCE = new HttpClientStatusConverter(); - - // https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/http.md#status - @Override - public StatusCode statusFromHttpStatus(int httpStatus) { - if (httpStatus >= 100 && httpStatus < 400) { - return StatusCode.UNSET; - } - - return StatusCode.ERROR; - } - - private HttpClientStatusConverter() {} -} diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerStatusConverter.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerStatusConverter.java deleted file mode 100644 index 85e0f3fd7f..0000000000 --- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpServerStatusConverter.java +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright The OpenTelemetry Authors - * SPDX-License-Identifier: Apache-2.0 - */ - -package io.opentelemetry.instrumentation.api.instrumenter.http; - -import io.opentelemetry.api.trace.StatusCode; - -final class HttpServerStatusConverter implements HttpStatusConverter { - - static final HttpStatusConverter INSTANCE = new HttpServerStatusConverter(); - - // https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/http.md#status - @Override - public StatusCode statusFromHttpStatus(int httpStatus) { - if (httpStatus >= 100 && httpStatus < 500) { - return StatusCode.UNSET; - } - - return StatusCode.ERROR; - } - - private HttpServerStatusConverter() {} -} diff --git a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpStatusConverter.java b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpStatusConverter.java index b45f9f3e6d..d7e3becb91 100644 --- a/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpStatusConverter.java +++ b/instrumentation-api/src/main/java/io/opentelemetry/instrumentation/api/instrumenter/http/HttpStatusConverter.java @@ -7,10 +7,28 @@ package io.opentelemetry.instrumentation.api.instrumenter.http; import io.opentelemetry.api.trace.StatusCode; -public interface HttpStatusConverter { +// https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/http.md#status +enum HttpStatusConverter { + SERVER { + @Override + StatusCode statusFromHttpStatus(int httpStatus) { + if (httpStatus >= 100 && httpStatus < 500) { + return StatusCode.UNSET; + } - HttpStatusConverter SERVER = HttpServerStatusConverter.INSTANCE; - HttpStatusConverter CLIENT = HttpClientStatusConverter.INSTANCE; + return StatusCode.ERROR; + } + }, + CLIENT { + @Override + StatusCode statusFromHttpStatus(int httpStatus) { + if (httpStatus >= 100 && httpStatus < 400) { + return StatusCode.UNSET; + } - StatusCode statusFromHttpStatus(int httpStatus); + return StatusCode.ERROR; + } + }; + + abstract StatusCode statusFromHttpStatus(int httpStatus); }