diff --git a/CHANGELOG.md b/CHANGELOG.md index 04a4c10b7c..0f9f1ed6bf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,6 +48,9 @@ Increment the: * [CODE HEALTH] Fix clang-tidy macro to enum warnings [#3922](https://github.com/open-telemetry/opentelemetry-cpp/pull/3922) +* [CODE HEALTH] Fix clang-tidy performance enum size warnings + [#3923](https://github.com/open-telemetry/opentelemetry-cpp/pull/3923) + Important changes: * [BUILD] Revisit EventLogger deprecation diff --git a/api/include/opentelemetry/common/attribute_value.h b/api/include/opentelemetry/common/attribute_value.h index 342e889061..a00c18720e 100644 --- a/api/include/opentelemetry/common/attribute_value.h +++ b/api/include/opentelemetry/common/attribute_value.h @@ -57,7 +57,11 @@ using AttributeValue = nostd::span, nostd::span>; -enum AttributeType +#if OPENTELEMETRY_ABI_VERSION_NO >= 2 +enum AttributeType : std::uint8_t +#else +enum AttributeType // NOLINT(performance-enum-size) +#endif { kTypeBool, kTypeInt, diff --git a/api/include/opentelemetry/trace/span_metadata.h b/api/include/opentelemetry/trace/span_metadata.h index d2d6a9f85d..a138026bdb 100644 --- a/api/include/opentelemetry/trace/span_metadata.h +++ b/api/include/opentelemetry/trace/span_metadata.h @@ -6,11 +6,19 @@ #include "opentelemetry/common/timestamp.h" #include "opentelemetry/version.h" +#if OPENTELEMETRY_ABI_VERSION_NO >= 2 +# include +#endif + OPENTELEMETRY_BEGIN_NAMESPACE namespace trace { -enum class SpanKind +#if OPENTELEMETRY_ABI_VERSION_NO >= 2 +enum class SpanKind : std::uint8_t +#else +enum class SpanKind // NOLINT(performance-enum-size) +#endif { kInternal, kServer, @@ -24,7 +32,11 @@ constexpr char kSpanKey[] = "active_span"; constexpr char kIsRootSpanKey[] = "is_root_span"; // StatusCode - Represents the canonical set of status codes of a finished Span. -enum class StatusCode +#if OPENTELEMETRY_ABI_VERSION_NO >= 2 +enum class StatusCode : std::uint8_t +#else +enum class StatusCode // NOLINT(performance-enum-size) +#endif { kUnset, // default status kOk, // Operation has completed successfully. diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http.h index 6899c6f544..9536a8b853 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_http.h @@ -3,6 +3,8 @@ #pragma once +#include + #include "opentelemetry/nostd/string_view.h" #include "opentelemetry/version.h" @@ -12,14 +14,14 @@ namespace exporter namespace otlp { -enum class JsonBytesMappingKind +enum class JsonBytesMappingKind : std::uint8_t { kHexId, kHex, kBase64, }; -enum class HttpRequestContentType +enum class HttpRequestContentType : std::uint8_t { kJson, kBinary, diff --git a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_preferred_temporality.h b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_preferred_temporality.h index d9e4013fd5..12a05de9dd 100644 --- a/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_preferred_temporality.h +++ b/exporters/otlp/include/opentelemetry/exporters/otlp/otlp_preferred_temporality.h @@ -2,6 +2,9 @@ // SPDX-License-Identifier: Apache-2.0 #pragma once + +#include + #include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE @@ -10,7 +13,7 @@ namespace exporter namespace otlp { -enum class PreferredAggregationTemporality +enum class PreferredAggregationTemporality : std::uint8_t { kUnspecified, kDelta, diff --git a/exporters/zipkin/include/opentelemetry/exporters/zipkin/zipkin_exporter_options.h b/exporters/zipkin/include/opentelemetry/exporters/zipkin/zipkin_exporter_options.h index 45cfef45dc..1d4f7a4a7e 100644 --- a/exporters/zipkin/include/opentelemetry/exporters/zipkin/zipkin_exporter_options.h +++ b/exporters/zipkin/include/opentelemetry/exporters/zipkin/zipkin_exporter_options.h @@ -3,6 +3,8 @@ #pragma once +#include + #include "opentelemetry/ext/http/client/http_client_factory.h" #include "opentelemetry/ext/http/common/url_parser.h" #include "opentelemetry/sdk/common/env_variables.h" @@ -26,7 +28,7 @@ inline const std::string GetDefaultZipkinEndpoint() return exists ? endpoint : kZipkinEndpointDefault; } -enum class TransportFormat +enum class TransportFormat : std::uint8_t { kJson, kProtobuf diff --git a/ext/include/opentelemetry/ext/http/client/http_client.h b/ext/include/opentelemetry/ext/http/client/http_client.h index 74fe793a2b..09c3c5b2dd 100644 --- a/ext/include/opentelemetry/ext/http/client/http_client.h +++ b/ext/include/opentelemetry/ext/http/client/http_client.h @@ -4,6 +4,7 @@ #pragma once #include +#include #include #include #include @@ -67,7 +68,7 @@ namespace http namespace client { -enum class Method +enum class Method : std::uint8_t { Get, Post, @@ -78,7 +79,7 @@ enum class Method Delete }; -enum class SessionState +enum class SessionState : std::uint8_t { CreateFailed, // session create failed Created, // session created @@ -97,7 +98,7 @@ enum class SessionState Cancelled // (manually) cancelled }; -enum class Compression +enum class Compression : std::uint8_t { kNone, kGzip diff --git a/ext/include/opentelemetry/ext/http/server/http_server.h b/ext/include/opentelemetry/ext/http/server/http_server.h index a9925b609a..359a37062e 100644 --- a/ext/include/opentelemetry/ext/http/server/http_server.h +++ b/ext/include/opentelemetry/ext/http/server/http_server.h @@ -3,6 +3,7 @@ #pragma once +#include #include #include #include @@ -95,7 +96,7 @@ class HttpServer : private SocketTools::Reactor::SocketCallback SocketTools::Socket socket; std::string receiveBuffer; std::string sendBuffer; - enum + enum : std::uint8_t { Idle, ReceivingHeaders, diff --git a/ext/include/opentelemetry/ext/http/server/socket_tools.h b/ext/include/opentelemetry/ext/http/server/socket_tools.h index eabfe78d79..4d5d60b418 100644 --- a/ext/include/opentelemetry/ext/http/server/socket_tools.h +++ b/ext/include/opentelemetry/ext/http/server/socket_tools.h @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -405,7 +406,7 @@ struct Socket #endif } - enum + enum // NOLINT(performance-enum-size) { #ifdef _WIN32 ErrorWouldBlock = WSAEWOULDBLOCK @@ -414,7 +415,7 @@ struct Socket #endif }; - enum + enum // NOLINT(performance-enum-size) { #ifdef _WIN32 ShutdownReceive = SD_RECEIVE, @@ -469,7 +470,7 @@ struct Reactor : protected common::Thread /// /// Socket State /// - enum State + enum State : std::uint8_t { Readable = 1, Writable = 2, diff --git a/sdk/include/opentelemetry/sdk/common/attribute_utils.h b/sdk/include/opentelemetry/sdk/common/attribute_utils.h index a1ac74b239..351c36722c 100644 --- a/sdk/include/opentelemetry/sdk/common/attribute_utils.h +++ b/sdk/include/opentelemetry/sdk/common/attribute_utils.h @@ -49,7 +49,7 @@ using OwnedAttributeValue = nostd::variant, std::vector>; -enum OwnedAttributeType +enum OwnedAttributeType : std::uint8_t { kTypeBool, kTypeInt, diff --git a/sdk/include/opentelemetry/sdk/common/exporter_utils.h b/sdk/include/opentelemetry/sdk/common/exporter_utils.h index 091f481f9f..c25ff89bae 100644 --- a/sdk/include/opentelemetry/sdk/common/exporter_utils.h +++ b/sdk/include/opentelemetry/sdk/common/exporter_utils.h @@ -3,6 +3,8 @@ #pragma once +#include + #include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE @@ -13,7 +15,7 @@ namespace common /** * ExportResult is returned as result of exporting a batch of Records. */ -enum class ExportResult +enum class ExportResult : std::uint8_t { // Batch was exported successfully. kSuccess = 0, diff --git a/sdk/include/opentelemetry/sdk/common/global_log_handler.h b/sdk/include/opentelemetry/sdk/common/global_log_handler.h index b700b9e398..2afaba85d6 100644 --- a/sdk/include/opentelemetry/sdk/common/global_log_handler.h +++ b/sdk/include/opentelemetry/sdk/common/global_log_handler.h @@ -3,6 +3,7 @@ #pragma once +#include #include // IWYU pragma: keep #include @@ -28,7 +29,7 @@ namespace common namespace internal_log { -enum class LogLevel +enum class LogLevel : std::uint8_t { None = OTEL_INTERNAL_LOG_LEVEL_NONE, Error = OTEL_INTERNAL_LOG_LEVEL_ERROR, diff --git a/sdk/include/opentelemetry/sdk/metrics/export/metric_filter.h b/sdk/include/opentelemetry/sdk/metrics/export/metric_filter.h index f21b9e8fc3..75f64b1e58 100644 --- a/sdk/include/opentelemetry/sdk/metrics/export/metric_filter.h +++ b/sdk/include/opentelemetry/sdk/metrics/export/metric_filter.h @@ -3,6 +3,7 @@ #pragma once +#include #include #include @@ -35,14 +36,14 @@ namespace metrics class MetricFilter { public: - enum class MetricFilterResult + enum class MetricFilterResult : std::uint8_t { kAccept, kDrop, kAcceptPartial, }; - enum class AttributesFilterResult + enum class AttributesFilterResult : std::uint8_t { kAccept, kDrop, diff --git a/sdk/include/opentelemetry/sdk/metrics/export/metric_producer.h b/sdk/include/opentelemetry/sdk/metrics/export/metric_producer.h index 6f9b7d3685..887f5067e5 100644 --- a/sdk/include/opentelemetry/sdk/metrics/export/metric_producer.h +++ b/sdk/include/opentelemetry/sdk/metrics/export/metric_producer.h @@ -3,6 +3,7 @@ #pragma once +#include #include #include #include @@ -94,7 +95,7 @@ class MetricProducer MetricProducer &operator=(const MetricProducer &) = delete; MetricProducer &operator=(MetricProducer &&) = delete; - enum class Status + enum class Status : std::uint8_t { kSuccess, kFailure, diff --git a/sdk/include/opentelemetry/sdk/metrics/instruments.h b/sdk/include/opentelemetry/sdk/metrics/instruments.h index 620fddedb5..5b5278fb2e 100644 --- a/sdk/include/opentelemetry/sdk/metrics/instruments.h +++ b/sdk/include/opentelemetry/sdk/metrics/instruments.h @@ -5,6 +5,7 @@ #include #include +#include #include #include @@ -16,7 +17,7 @@ namespace sdk { namespace metrics { -enum class InstrumentType +enum class InstrumentType : std::uint8_t { kCounter, kHistogram, @@ -27,13 +28,13 @@ enum class InstrumentType kGauge }; -enum class InstrumentClass +enum class InstrumentClass : std::uint8_t { kSync, kAsync }; -enum class InstrumentValueType +enum class InstrumentValueType : std::uint8_t { kInt, kLong, @@ -41,7 +42,7 @@ enum class InstrumentValueType kDouble }; -enum class AggregationType +enum class AggregationType : std::uint8_t { kDrop, kHistogram, @@ -51,7 +52,7 @@ enum class AggregationType kBase2ExponentialHistogram }; -enum class AggregationTemporality +enum class AggregationTemporality : std::uint8_t { kUnspecified, kDelta, diff --git a/sdk/include/opentelemetry/sdk/trace/sampler.h b/sdk/include/opentelemetry/sdk/trace/sampler.h index 28620189ca..888a44383b 100644 --- a/sdk/include/opentelemetry/sdk/trace/sampler.h +++ b/sdk/include/opentelemetry/sdk/trace/sampler.h @@ -3,6 +3,7 @@ #pragma once +#include #include #include #include @@ -34,7 +35,7 @@ namespace trace /** * A sampling Decision for a Span to be created. */ -enum class Decision +enum class Decision : std::uint8_t { // IsRecording() == false, span will not be recorded and all events and attributes will be // dropped.