pw_metric: allow global groups everywhere

Testing done:
- added a compilation test

Change-Id: I32403965d3a565540d141a4fd01bf13a97184cec
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/17220
Commit-Queue: Paul Mathieu <paulmathieu@google.com>
Reviewed-by: Keir Mierle <keir@google.com>
diff --git a/pw_metric/global_test.cc b/pw_metric/global_test.cc
index a4babc7..ab0aab5 100644
--- a/pw_metric/global_test.cc
+++ b/pw_metric/global_test.cc
@@ -57,7 +57,7 @@
 
 TEST(Global, Groups) {
   Group::Dump(global_groups);
-  EXPECT_EQ(Size(global_groups), 3);
+  EXPECT_EQ(Size(global_groups), 4);
 
   EXPECT_EQ(Size(gyro_metrics.metrics()), 1);
   EXPECT_EQ(Size(comms_metrics.metrics()), 2);
@@ -66,3 +66,7 @@
 
 }  // namespace metric
 }  // namespace pw
+
+// this is a compilation test to make sure metrics can be defined outside of
+// ::pw::metric
+PW_METRIC_GROUP_GLOBAL(global_group, "global group");
diff --git a/pw_metric/public/pw_metric/global.h b/pw_metric/public/pw_metric/global.h
index c629f96..f3b8440 100644
--- a/pw_metric/public/pw_metric/global.h
+++ b/pw_metric/public/pw_metric/global.h
@@ -33,12 +33,13 @@
   static constexpr uint32_t variable_name##_token =                           \
       PW_TOKENIZE_STRING_DOMAIN("metrics", #metric_name);                     \
   ::pw::metric::TypedMetric<_PW_METRIC_FLOAT_OR_UINT32(init)> variable_name = \
-      {variable_name##_token, init, global_metrics}
+      {variable_name##_token, init, ::pw::metric::global_metrics}
 
 // Define a group that is registered in pw::metric::global_groups.
-#define PW_METRIC_GROUP_GLOBAL(variable_name, group_name) \
-  static constexpr uint32_t variable_name##_token =       \
-      PW_TOKENIZE_STRING_DOMAIN("metrics", #group_name);  \
-  ::pw::metric::Group variable_name = {variable_name##_token, global_groups}
+#define PW_METRIC_GROUP_GLOBAL(variable_name, group_name)     \
+  static constexpr uint32_t variable_name##_token =           \
+      PW_TOKENIZE_STRING_DOMAIN("metrics", #group_name);      \
+  ::pw::metric::Group variable_name = {variable_name##_token, \
+                                       ::pw::metric::global_groups}
 
 }  // namespace pw::metric