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 2023/01/17 17:41:29 UTC
[couchdb] 02/02: Add measures logging
This is an automated email from the ASF dual-hosted git repository.
chewbranca pushed a commit to branch add-report-logging
in repository https://gitbox.apache.org/repos/asf/couchdb.git
commit 9ce6bdc81a5958484e5dcd53e1ed9373d557faf0
Author: Russell Branca <ch...@apache.org>
AuthorDate: Tue Jan 17 09:41:14 2023 -0800
Add measures logging
---
src/couch_log/priv/stats_descriptions.cfg | 4 ++++
src/couch_log/src/couch_log.erl | 11 ++++++-----
src/mango/src/mango_cursor_view.erl | 1 +
src/mango/src/mango_execution_stats.erl | 11 +++++++++++
4 files changed, 22 insertions(+), 5 deletions(-)
diff --git a/src/couch_log/priv/stats_descriptions.cfg b/src/couch_log/priv/stats_descriptions.cfg
index 31e41614b..febb5e057 100644
--- a/src/couch_log/priv/stats_descriptions.cfg
+++ b/src/couch_log/priv/stats_descriptions.cfg
@@ -46,3 +46,7 @@
{type, counter},
{desc, <<"number of logged warning messages">>}
]}.
+{[couch_log, level, report], [
+ {type, counter},
+ {desc, <<"number of logged report messages">>}
+]}.
diff --git a/src/couch_log/src/couch_log.erl b/src/couch_log/src/couch_log.erl
index d519082ce..3d198994c 100644
--- a/src/couch_log/src/couch_log.erl
+++ b/src/couch_log/src/couch_log.erl
@@ -21,7 +21,7 @@
critical/2,
alert/2,
emergency/2,
- report/2,
+ report/4,
set_level/1
]).
@@ -49,11 +49,12 @@ alert(Fmt, Args) -> log(alert, Fmt, Args).
-spec emergency(string(), list()) -> ok.
emergency(Fmt, Args) -> log(emergency, Fmt, Args).
--spec report(string(), map()) -> ok.
-report(ReportId, Meta) when is_map(Meta) ->
+-spec report(string(), string(), list(), map()) -> ok.
+report(ReportId, Fmt, Args, Meta) when is_map(Meta) ->
couch_stats:increment_counter([couch_log, level, report]),
- Entry = couch_log_formatter:format(report, self(), ReportId, "", [], Meta),
- ok = couch_log_server:report(Entry).
+ Entry = couch_log_formatter:format(report, self(), ReportId, Fmt, Args, Meta),
+ %%ok = couch_log_server:report(Entry).
+ ok = couch_log_server:log(Entry).
-spec set_level(atom() | string() | integer()) -> true.
set_level(Level) ->
diff --git a/src/mango/src/mango_cursor_view.erl b/src/mango/src/mango_cursor_view.erl
index 9202ce071..9bca19cee 100644
--- a/src/mango/src/mango_cursor_view.erl
+++ b/src/mango/src/mango_cursor_view.erl
@@ -159,6 +159,7 @@ execute(#cursor{db = Db, index = Idx, execution_stats = Stats} = Cursor0, UserFu
Arg = {add_key, bookmark, NewBookmark},
{_Go, FinalUserAcc} = UserFun(Arg, LastCursor#cursor.user_acc),
Stats0 = LastCursor#cursor.execution_stats,
+ mango_execution_stats:log_stats(Stats0),
FinalUserAcc0 = mango_execution_stats:maybe_add_stats(
Opts, UserFun, Stats0, FinalUserAcc
),
diff --git a/src/mango/src/mango_execution_stats.erl b/src/mango/src/mango_execution_stats.erl
index 0db3edf5f..2752f5a71 100644
--- a/src/mango/src/mango_execution_stats.erl
+++ b/src/mango/src/mango_execution_stats.erl
@@ -21,6 +21,7 @@
incr_results_returned/1,
log_start/1,
log_end/1,
+ log_stats/1,
maybe_add_stats/4
]).
@@ -74,6 +75,9 @@ log_end(Stats) ->
maybe_add_stats(Opts, UserFun, Stats0, UserAcc) ->
Stats1 = log_end(Stats0),
couch_stats:update_histogram([mango, query_time], Stats1#execution_stats.executionTimeMs),
+ %% TODO: validate rows/reads assignments
+ chttpd_stats:incr_rows(Stats1#execution_stats.totalDocsExamined),
+ chttpd_stats:incr_reads(Stats1#execution_stats.totalQuorumDocsExamined),
case couch_util:get_value(execution_stats, Opts) of
true ->
@@ -84,3 +88,10 @@ maybe_add_stats(Opts, UserFun, Stats0, UserAcc) ->
_ ->
UserAcc
end.
+
+log_stats(Stats) ->
+ {JStats0} = to_json(Stats),
+ Nonce = list_to_binary(couch_log_util:get_msg_id()),
+ JStats = {[{<<"nonce">>, Nonce} | JStats0]},
+ %% TODO: switch to report
+ couch_log:report("FIXME-reportid", "[ASDFMARKER] GOT MANGO EXEC STATS: ~s", [binary_to_list(jiffy:encode(JStats))], #{}).