This is an automated email from the ASF dual-hosted git repository.

guangmingchen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/brpc.git


The following commit(s) were added to refs/heads/master by this push:
     new f6424919 add gflag max_multi_dimension_stats_count (#2894)
f6424919 is described below

commit f642491996b675496330cdd611fc764bd4b80ac7
Author: caidj <31362185+cdjin...@users.noreply.github.com>
AuthorDate: Thu Feb 20 14:33:10 2025 +0800

    add gflag max_multi_dimension_stats_count (#2894)
---
 src/bvar/multi_dimension.h     |  4 +---
 src/bvar/multi_dimension_inl.h |  3 ++-
 src/bvar/mvariable.cpp         | 11 +++++++++++
 3 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/src/bvar/multi_dimension.h b/src/bvar/multi_dimension.h
index 43be82cc..cc249c5f 100644
--- a/src/bvar/multi_dimension.h
+++ b/src/bvar/multi_dimension.h
@@ -29,8 +29,6 @@
 
 namespace bvar {
 
-constexpr uint64_t MAX_MULTI_DIMENSION_STATS_COUNT = 20000;
-
 template <typename  T>
 class MultiDimension : public MVariable {
 public:
@@ -150,4 +148,4 @@ private:
 
 #include "bvar/multi_dimension_inl.h"
 
-#endif // BVAR_MULTI_DIMENSION_H
\ No newline at end of file
+#endif // BVAR_MULTI_DIMENSION_H
diff --git a/src/bvar/multi_dimension_inl.h b/src/bvar/multi_dimension_inl.h
index a0158b15..d1132c79 100644
--- a/src/bvar/multi_dimension_inl.h
+++ b/src/bvar/multi_dimension_inl.h
@@ -27,6 +27,7 @@ namespace bvar {
 DECLARE_int32(bvar_latency_p1);
 DECLARE_int32(bvar_latency_p2);
 DECLARE_int32(bvar_latency_p3);
+DECLARE_uint32(max_multi_dimension_stats_count);
 
 static const std::string ALLOW_UNUSED METRIC_TYPE_COUNTER = "counter";
 static const std::string ALLOW_UNUSED METRIC_TYPE_SUMMARY = "summary";
@@ -37,7 +38,7 @@ template <typename T>
 inline
 MultiDimension<T>::MultiDimension(const key_type& labels)
     : Base(labels)
-    , _max_stats_count(MAX_MULTI_DIMENSION_STATS_COUNT)
+    , _max_stats_count(FLAGS_max_multi_dimension_stats_count)
 {
     _metric_map.Modify(init_flatmap);
 }
diff --git a/src/bvar/mvariable.cpp b/src/bvar/mvariable.cpp
index 86eadf13..26bb97c4 100644
--- a/src/bvar/mvariable.cpp
+++ b/src/bvar/mvariable.cpp
@@ -60,6 +60,17 @@ DEFINE_int32(bvar_max_dump_multi_dimension_metric_number, 
1024,
 BUTIL_VALIDATE_GFLAG(bvar_max_dump_multi_dimension_metric_number,
                      validator_bvar_max_dump_multi_dimension_metric_number);
 
+static bool validator_max_multi_dimension_stats_count(const char*, uint32_t v) 
{
+    if (v < 1) {
+        LOG(ERROR) << "Invalid max_multi_dimension_stats_count=" << v;
+        return false;
+    }
+    return true;
+}
+DEFINE_uint32(max_multi_dimension_stats_count, 20000, "Max stats count of a 
multi dimension metric.");
+BUTIL_VALIDATE_GFLAG(max_multi_dimension_stats_count,
+                     validator_max_multi_dimension_stats_count);
+
 class MVarEntry {
 public:
     MVarEntry() : var(NULL) {}


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@brpc.apache.org
For additional commands, e-mail: dev-h...@brpc.apache.org

Reply via email to