Skip to content

Commit 1b8fe6d

Browse files
committed
MB-32920 make bucket parameter optional for global stats
Change-Id: I1b9d9d00c07e4e4a2d11fe82b1687b7dd4bdb508 Reviewed-on: http://review.couchbase.org/105501 Reviewed-by: Poonam Dhavale <[email protected]> Tested-by: Artem Stemkovski <[email protected]> Well-Formed: Build Bot <[email protected]>
1 parent f043916 commit 1b8fe6d

File tree

1 file changed

+33
-22
lines changed

1 file changed

+33
-22
lines changed

src/menelaus_stats.erl

Lines changed: 33 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -441,22 +441,28 @@ guess_sections_by_pefix(StatName, BucketName) ->
441441
"query_" ++ _Rest ->
442442
["@query"];
443443
"replication" ++ _Rest ->
444-
["@xdcr-" ++ BucketName];
444+
["@xdcr-" ++ BucketName || BucketName =/= undefined];
445445
"views" ++ _Rest ->
446-
[BucketName];
446+
[BucketName || BucketName =/= undefined];
447447
"spatial" ++ _Rest ->
448-
[BucketName];
448+
[BucketName || BucketName =/= undefined];
449449
"vb_" ++ _Rest ->
450-
[BucketName];
450+
[BucketName || BucketName =/= undefined];
451451
"ep_" ++ _Rest ->
452-
[BucketName];
452+
[BucketName || BucketName =/= undefined];
453453
Other ->
454-
case lists:takewhile(fun ($/) -> false; (_) -> true end, Other) of
455-
Other ->
456-
[];
457-
Prefix ->
458-
["@" ++ Prefix,
459-
"@" ++ Prefix ++ "-" ++ BucketName]
454+
case string:split(Other, "/") of
455+
[Prefix, _] ->
456+
case lists:member(Prefix, services_sections(undefined)) of
457+
true ->
458+
["@" ++ Prefix] ++
459+
["@" ++ Prefix ++ "-" ++ BucketName ||
460+
BucketName =/= undefined];
461+
false ->
462+
[]
463+
end;
464+
_ ->
465+
[]
460466
end
461467
end.
462468

@@ -467,8 +473,12 @@ guess_sections_by_pefix(StatName, BucketName) ->
467473
%%
468474
get_stats_search_order(StatName, BucketName) ->
469475
GuessedSections = guess_sections_by_pefix(StatName, BucketName),
470-
AllSections = ["@system", BucketName, "@xdcr-" ++ BucketName] ++
471-
services_sections(BucketName),
476+
AllSections = ["@system" | case BucketName of
477+
undefined ->
478+
[];
479+
_ ->
480+
[BucketName, "@xdcr-" ++ BucketName]
481+
end ++ services_sections(BucketName)],
472482
GuessedSections ++ (AllSections -- GuessedSections).
473483

474484
build_response_for_specific_stat(BucketName, StatName, Params, LocalAddr) ->
@@ -550,15 +560,17 @@ do_merge_all_samples_normally(ETS, MainSamples, ListOfLists) ->
550560
end, ListOfLists),
551561
[hd(ets:lookup(ETS, T)) || #stat_entry{timestamp = T} <- MainSamples].
552562

553-
services_sections(BucketName) ->
563+
services_sections(undefined) ->
554564
["@query",
555565
"@index",
556566
"@fts",
557567
"@cbas",
558-
"@eventing",
559-
"@index-" ++ BucketName,
560-
"@fts-" ++ BucketName,
561-
"@cbas-" ++ BucketName].
568+
"@eventing"];
569+
services_sections(BucketName) ->
570+
services_sections(undefined) ++
571+
["@index-" ++ BucketName,
572+
"@fts-" ++ BucketName,
573+
"@cbas-" ++ BucketName].
562574

563575
describe_section("@query") ->
564576
{n1ql, undefined};
@@ -2908,8 +2920,7 @@ fix_response({Stats, Nodes}, _) ->
29082920

29092921
ui_stats_v2_validators(Req) ->
29102922
Now = os:system_time(millisecond),
2911-
[validator:required(bucket, _),
2912-
validate_bucket(bucket, _),
2923+
[validate_bucket(bucket, _),
29132924
validator:required(statName, _),
29142925
validator:integer(startTS, ?MIN_TS, ?MAX_TS, _),
29152926
validator:integer(endTS, ?MIN_TS, ?MAX_TS, _),
@@ -2981,10 +2992,10 @@ output_ui_stats_v2(Req, #params{bucket = Bucket, stat = Stat, step = Step},
29812992
{Host, {[{samples, Samples}, {timestamps, Timestamps}]}}
29822993
end, lists:zip(Stats, Nodes)),
29832994
menelaus_util:reply_json(
2984-
Req, {[{bucket, list_to_binary(Bucket)},
2985-
{statName, list_to_binary(Stat)},
2995+
Req, {[{statName, list_to_binary(Stat)},
29862996
{step, Step},
29872997
{stats, {StatsJson}}] ++
2998+
[{bucket, list_to_binary(Bucket)} || Bucket =/= undefined] ++
29882999
[{aggregatedNodes,
29893000
[list_to_binary(
29903001
menelaus_web_node:build_node_hostname(ns_config:latest(),

0 commit comments

Comments
 (0)