You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by ch...@apache.org on 2024/02/16 01:01:53 UTC
(couchdb) 01/01: WIP: include dbname in mango exec stats
This is an automated email from the ASF dual-hosted git repository.
chewbranca pushed a commit to branch add-dbname-to-mango-exec-stats
in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit f4490cc6c96db6c27eac56800161e5a05093b122
Author: Russell Branca <ch...@apache.org>
AuthorDate: Thu Feb 15 17:00:51 2024 -0800
WIP: include dbname in mango exec stats
---
src/mango/src/mango_cursor_nouveau.erl | 5 +++--
src/mango/src/mango_cursor_text.erl | 5 +++--
src/mango/src/mango_cursor_view.erl | 15 ++++++++++-----
src/mango/src/mango_execution_stats.erl | 11 +++++++----
src/mango/src/mango_execution_stats.hrl | 3 ++-
5 files changed, 25 insertions(+), 14 deletions(-)
diff --git a/src/mango/src/mango_cursor_nouveau.erl b/src/mango/src/mango_cursor_nouveau.erl
index 5471ea46a..7caf8c427 100644
--- a/src/mango/src/mango_cursor_nouveau.erl
+++ b/src/mango/src/mango_cursor_nouveau.erl
@@ -86,6 +86,7 @@ execute(Cursor, UserFun, UserAcc) ->
opts = Opts,
execution_stats = Stats
} = Cursor,
+ DbName = couch_db:name(Db),
Query = mango_selector_text:convert(Selector),
QueryArgs = #{
query => Query,
@@ -94,7 +95,7 @@ execute(Cursor, UserFun, UserAcc) ->
},
CAcc = #cacc{
selector = Selector,
- dbname = couch_db:name(Db),
+ dbname = DbName,
ddocid = ddocid(Idx),
idx_name = mango_idx:name(Idx),
bookmark = get_bookmark(Opts),
@@ -104,7 +105,7 @@ execute(Cursor, UserFun, UserAcc) ->
user_fun = UserFun,
user_acc = UserAcc,
fields = Cursor#cursor.fields,
- execution_stats = mango_execution_stats:log_start(Stats),
+ execution_stats = mango_execution_stats:log_start(Stats, DbName),
documents_seen = sets:new([{version, 2}])
},
try
diff --git a/src/mango/src/mango_cursor_text.erl b/src/mango/src/mango_cursor_text.erl
index ee1d962f7..404cc1726 100644
--- a/src/mango/src/mango_cursor_text.erl
+++ b/src/mango/src/mango_cursor_text.erl
@@ -90,6 +90,7 @@ execute(Cursor, UserFun, UserAcc) ->
opts = Opts,
execution_stats = Stats
} = Cursor,
+ DbName = couch_db:name(Db),
Query = mango_selector_text:convert(Selector),
QueryArgs = #index_query_args{
q = Query,
@@ -99,7 +100,7 @@ execute(Cursor, UserFun, UserAcc) ->
},
CAcc = #cacc{
selector = Selector,
- dbname = couch_db:name(Db),
+ dbname = DbName,
ddocid = ddocid(Idx),
idx_name = mango_idx:name(Idx),
bookmark = get_bookmark(Opts),
@@ -109,7 +110,7 @@ execute(Cursor, UserFun, UserAcc) ->
user_fun = UserFun,
user_acc = UserAcc,
fields = Cursor#cursor.fields,
- execution_stats = mango_execution_stats:log_start(Stats),
+ execution_stats = mango_execution_stats:log_start(Stats, DbName),
documents_seen = sets:new([{version, 2}])
},
try
diff --git a/src/mango/src/mango_cursor_view.erl b/src/mango/src/mango_cursor_view.erl
index b103d869d..3e67bbbf2 100644
--- a/src/mango/src/mango_cursor_view.erl
+++ b/src/mango/src/mango_cursor_view.erl
@@ -211,10 +211,11 @@ base_args(#cursor{index = Idx, selector = Selector, fields = Fields} = Cursor) -
UserAccumulator :: any(),
Result :: {ok, UserAccumulator} | {error, any()}.
execute(#cursor{db = Db, index = Idx, execution_stats = Stats} = Cursor0, UserFun, UserAcc) ->
+ DbName = couch_db:name(Db),
Cursor = Cursor0#cursor{
user_fun = UserFun,
user_acc = UserAcc,
- execution_stats = mango_execution_stats:log_start(Stats)
+ execution_stats = mango_execution_stats:log_start(Stats, DbName)
},
case Cursor#cursor.ranges of
[empty] ->
@@ -993,7 +994,8 @@ execute_test_() ->
fun() ->
meck:new(foo, [non_strict]),
meck:new(fabric),
- meck:new(chttpd_stats)
+ meck:new(chttpd_stats),
+ meck:expect(couch_db, name, fun(A) when is_atom(A) -> atom_to_binary(A) end)
end,
fun(_) -> meck:unload() end,
[
@@ -1174,6 +1176,7 @@ t_execute_ok_query_view(_) ->
t_execute_ok_all_docs_with_execution_stats(_) ->
Bookmark = bookmark,
+ DbName = db,
TotalKeysExamined = 33,
TotalDocsExamined = 12,
TotalQuorumDocsExamined = 0,
@@ -1184,7 +1187,8 @@ t_execute_ok_all_docs_with_execution_stats(_) ->
totalDocsExamined = TotalDocsExamined,
totalQuorumDocsExamined = TotalQuorumDocsExamined,
resultsReturned = ResultsReturned,
- executionStartTime = {0, 0, 0}
+ executionStartTime = {0, 0, 0},
+ dbname = DbName
},
Stats =
{[
@@ -1192,7 +1196,8 @@ t_execute_ok_all_docs_with_execution_stats(_) ->
{total_docs_examined, TotalDocsExamined},
{total_quorum_docs_examined, TotalQuorumDocsExamined},
{results_returned, ResultsReturned},
- {execution_time_ms, '_'}
+ {execution_time_ms, '_'},
+ {dbname, DbName}
]},
UserFnDefinition =
[
@@ -1209,7 +1214,7 @@ t_execute_ok_all_docs_with_execution_stats(_) ->
Cursor =
#cursor{
index = Index,
- db = db,
+ db = DbName,
selector = Selector,
fields = Fields,
ranges = [{'$gte', start_key, '$lte', end_key}],
diff --git a/src/mango/src/mango_execution_stats.erl b/src/mango/src/mango_execution_stats.erl
index dce7c087b..11336132d 100644
--- a/src/mango/src/mango_execution_stats.erl
+++ b/src/mango/src/mango_execution_stats.erl
@@ -21,7 +21,7 @@
incr_docs_examined/2,
incr_quorum_docs_examined/1,
incr_results_returned/1,
- log_start/1,
+ log_start/2,
log_end/1,
log_stats/1,
maybe_add_stats/4,
@@ -42,7 +42,8 @@ to_json(Stats) ->
{total_docs_examined, Stats#execution_stats.totalDocsExamined},
{total_quorum_docs_examined, Stats#execution_stats.totalQuorumDocsExamined},
{results_returned, Stats#execution_stats.resultsReturned},
- {execution_time_ms, Stats#execution_stats.executionTimeMs}
+ {execution_time_ms, Stats#execution_stats.executionTimeMs},
+ {dbname, Stats#execution_stats.dbname}
]}.
to_map(Stats) ->
@@ -51,6 +52,7 @@ to_map(Stats) ->
total_docs_examined => Stats#execution_stats.totalDocsExamined,
total_quorum_docs_examined => Stats#execution_stats.totalQuorumDocsExamined,
results_returned => Stats#execution_stats.resultsReturned,
+ dbname => Stats#execution_stats.dbname,
execution_time_ms => Stats#execution_stats.executionTimeMs
}.
@@ -81,9 +83,10 @@ incr_results_returned(Stats) ->
resultsReturned = Stats#execution_stats.resultsReturned + 1
}.
-log_start(Stats) ->
+log_start(Stats, DbName) ->
Stats#execution_stats{
- executionStartTime = os:timestamp()
+ executionStartTime = os:timestamp(),
+ dbname = DbName
}.
log_end(Stats) ->
diff --git a/src/mango/src/mango_execution_stats.hrl b/src/mango/src/mango_execution_stats.hrl
index ea5ed5ee8..302460c26 100644
--- a/src/mango/src/mango_execution_stats.hrl
+++ b/src/mango/src/mango_execution_stats.hrl
@@ -16,5 +16,6 @@
totalQuorumDocsExamined = 0,
resultsReturned = 0,
executionStartTime,
- executionTimeMs
+ executionTimeMs,
+ dbname
}).