You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by ad...@apache.org on 2019/12/20 19:41:19 UTC
[kudu] 01/03: [metrics] Add a flag to set a default metric level
This is an automated email from the ASF dual-hosted git repository.
adar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/kudu.git
commit fc02008c6e5bfb592a9eb60f2a600e1d989cdfd9
Author: Grant Henke <gr...@apache.org>
AuthorDate: Wed Dec 18 09:45:17 2019 -0600
[metrics] Add a flag to set a default metric level
This patch adds the `metrics_default_level` flag, set to the lowest level
by default. The flag defines the default severity level to use when
filtering the metrics in the '/metrics' endpoint.
I am adding this flag to better support existing monitoring deployments
using the plain/parameterless URL when collecting metrics. Even
though the metric level can be filtered by using the URL query
parameters, existing deployments may not support configuring or
adjusting that URL.
Change-Id: I296fda7a6fefb952f1522bba3c1ff9804d5ce5cc
Reviewed-on: http://gerrit.cloudera.org:8080/14922
Tested-by: Kudu Jenkins
Reviewed-by: Adar Dembo <ad...@cloudera.com>
---
src/kudu/server/default_path_handlers.cc | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
diff --git a/src/kudu/server/default_path_handlers.cc b/src/kudu/server/default_path_handlers.cc
index cbe33a4..502df9f 100644
--- a/src/kudu/server/default_path_handlers.cc
+++ b/src/kudu/server/default_path_handlers.cc
@@ -77,6 +77,27 @@ DEFINE_int64(web_log_bytes, 1024 * 1024,
TAG_FLAG(web_log_bytes, advanced);
TAG_FLAG(web_log_bytes, runtime);
+DEFINE_string(metrics_default_level, "debug",
+ "The default severity level to use when filtering the metrics. "
+ "Valid choices are 'debug', 'info', and 'warn'. "
+ "The levels are ordered and lower levels include the levels above them. "
+ "This value can be overridden by passing the level query parameter to the "
+ "'/metrics' endpoint.");
+TAG_FLAG(metrics_default_level, advanced);
+TAG_FLAG(metrics_default_level, runtime);
+TAG_FLAG(metrics_default_level, evolving);
+DEFINE_validator(metrics_default_level, [](const char* flag_name, const string& value) {
+ if (boost::iequals(value, "debug") ||
+ boost::iequals(value, "info") ||
+ boost::iequals(value, "warn")) {
+ return true;
+ }
+ LOG(ERROR) << Substitute("unknown value for --$0 flag: '$1' "
+ "(expected one of 'debug', 'info', or 'warn')",
+ flag_name, value);
+ return false;
+});
+
// For configuration dashboard
DECLARE_bool(webserver_require_spnego);
DECLARE_string(redact);
@@ -356,7 +377,7 @@ static void WriteMetricsAsJson(const MetricRegistry* const metrics,
filters.entity_ids = ParseArray(req.parsed_args, "ids");
filters.entity_attrs = ParseArray(req.parsed_args, "attributes");
filters.entity_metrics = ParseArray(req.parsed_args, "metrics");
- filters.entity_level = FindWithDefault(req.parsed_args, "level", "debug");
+ filters.entity_level = FindWithDefault(req.parsed_args, "level", FLAGS_metrics_default_level);
vector<string> merge_rules = ParseArray(req.parsed_args, "merge_rules");
for (const auto& merge_rule : merge_rules) {
vector<string> values;