From c0abdc087c5a64d6a29561d93ed3a62015231d62 Mon Sep 17 00:00:00 2001 From: MariuszW Date: Sat, 10 Oct 2026 00:07:09 +0200 Subject: [PATCH 1/4] Moving code from header file (#1429) --- .../sdk/metrics/view/predicate_factory.h | 22 +---------- sdk/src/metrics/CMakeLists.txt | 1 + sdk/src/metrics/view/predicate_factory.cc | 37 +++++++++++++++++++ 3 files changed, 39 insertions(+), 21 deletions(-) create mode 100644 sdk/src/metrics/view/predicate_factory.cc diff --git a/sdk/include/opentelemetry/sdk/metrics/view/predicate_factory.h b/sdk/include/opentelemetry/sdk/metrics/view/predicate_factory.h index 501b69ba93..fd15b04470 100644 --- a/sdk/include/opentelemetry/sdk/metrics/view/predicate_factory.h +++ b/sdk/include/opentelemetry/sdk/metrics/view/predicate_factory.h @@ -27,27 +27,7 @@ class PredicateFactory { public: static std::unique_ptr GetPredicate(opentelemetry::nostd::string_view pattern, - PredicateType type) - { - if (((type == PredicateType::kPattern || type == PredicateType::kWildcard) && pattern == "*") || - (type == PredicateType::kExact && pattern == "")) - { - return std::unique_ptr(new MatchEverythingPattern()); - } - if (type == PredicateType::kPattern) - { - return std::unique_ptr(new PatternPredicate(pattern)); - } - if (type == PredicateType::kExact) - { - return std::unique_ptr(new ExactPredicate(pattern)); - } - if (type == PredicateType::kWildcard) - { - return std::unique_ptr(new WildcardPredicate(pattern)); - } - return std::unique_ptr(new MatchNothingPattern()); - } + PredicateType type); }; } // namespace metrics } // namespace sdk diff --git a/sdk/src/metrics/CMakeLists.txt b/sdk/src/metrics/CMakeLists.txt index 475ab937a8..9eaef6919b 100644 --- a/sdk/src/metrics/CMakeLists.txt +++ b/sdk/src/metrics/CMakeLists.txt @@ -37,6 +37,7 @@ add_library( view/view_factory.cc view/view_registry.cc view/view_registry_factory.cc + view/predicate_factory.cc sync_instruments.cc) set_target_properties(opentelemetry_metrics PROPERTIES EXPORT_NAME metrics) diff --git a/sdk/src/metrics/view/predicate_factory.cc b/sdk/src/metrics/view/predicate_factory.cc new file mode 100644 index 0000000000..0a87d77f7b --- /dev/null +++ b/sdk/src/metrics/view/predicate_factory.cc @@ -0,0 +1,37 @@ +// Copyright The OpenTelemetry Authors +// SPDX-License-Identifier: Apache-2.0 + +#include + +#include "opentelemetry/sdk/metrics/view/predicate_factory.h" + +OPENTELEMETRY_BEGIN_NAMESPACE +namespace sdk +{ +namespace metrics +{ +std::unique_ptr PredicateFactory::GetPredicate(opentelemetry::nostd::string_view pattern, + PredicateType type) +{ + if (((type == PredicateType::kPattern || type == PredicateType::kWildcard) && pattern == "*") || + (type == PredicateType::kExact && pattern == "")) + { + return std::unique_ptr(new MatchEverythingPattern()); + } + if (type == PredicateType::kPattern) + { + return std::unique_ptr(new PatternPredicate(pattern)); + } + if (type == PredicateType::kExact) + { + return std::unique_ptr(new ExactPredicate(pattern)); + } + if (type == PredicateType::kWildcard) + { + return std::unique_ptr(new WildcardPredicate(pattern)); + } + return std::unique_ptr(new MatchNothingPattern()); +} +} +} +OPENTELEMETRY_END_NAMESPACE \ No newline at end of file From b9ba8e9ac195e91a6f82b92d420c82f92e539b2e Mon Sep 17 00:00:00 2001 From: MariuszW Date: Sat, 10 Oct 2026 19:36:55 +0200 Subject: [PATCH 2/4] fix error in file predicate_factory.cc: "no newline at end of file" for clang --- sdk/src/metrics/view/predicate_factory.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/src/metrics/view/predicate_factory.cc b/sdk/src/metrics/view/predicate_factory.cc index 0a87d77f7b..eaf931c1a6 100644 --- a/sdk/src/metrics/view/predicate_factory.cc +++ b/sdk/src/metrics/view/predicate_factory.cc @@ -34,4 +34,4 @@ std::unique_ptr PredicateFactory::GetPredicate(opentelemetry::nostd:: } } } -OPENTELEMETRY_END_NAMESPACE \ No newline at end of file +OPENTELEMETRY_END_NAMESPACE From bb3bdeda0e48773c7882eb6e9acc0d384f29661a Mon Sep 17 00:00:00 2001 From: MariuszW Date: Sat, 10 Oct 2026 21:45:59 +0200 Subject: [PATCH 3/4] fix format errors --- sdk/src/metrics/view/predicate_factory.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sdk/src/metrics/view/predicate_factory.cc b/sdk/src/metrics/view/predicate_factory.cc index eaf931c1a6..68e26d0d82 100644 --- a/sdk/src/metrics/view/predicate_factory.cc +++ b/sdk/src/metrics/view/predicate_factory.cc @@ -11,7 +11,7 @@ namespace sdk namespace metrics { std::unique_ptr PredicateFactory::GetPredicate(opentelemetry::nostd::string_view pattern, - PredicateType type) + PredicateType type) { if (((type == PredicateType::kPattern || type == PredicateType::kWildcard) && pattern == "*") || (type == PredicateType::kExact && pattern == "")) @@ -32,6 +32,6 @@ std::unique_ptr PredicateFactory::GetPredicate(opentelemetry::nostd:: } return std::unique_ptr(new MatchNothingPattern()); } -} -} +} // namespace metrics +} // namespace sdk OPENTELEMETRY_END_NAMESPACE From 68cb95accdb2994f460064310fe99edaa380412a Mon Sep 17 00:00:00 2001 From: Marc Alff Date: Sun, 11 Oct 2026 15:16:59 +0200 Subject: [PATCH 4/4] Apply suggestion from @marcalff --- sdk/src/metrics/view/predicate_factory.cc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sdk/src/metrics/view/predicate_factory.cc b/sdk/src/metrics/view/predicate_factory.cc index 68e26d0d82..939ada1c69 100644 --- a/sdk/src/metrics/view/predicate_factory.cc +++ b/sdk/src/metrics/view/predicate_factory.cc @@ -3,7 +3,10 @@ #include +#include "opentelemetry/nostd/string_view.h" +#include "opentelemetry/sdk/metrics/view/predicate.h" #include "opentelemetry/sdk/metrics/view/predicate_factory.h" +#include "opentelemetry/version.h" OPENTELEMETRY_BEGIN_NAMESPACE namespace sdk