summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell Branca <chewbranca@apache.org>2023-01-17 09:41:14 -0800
committerRussell Branca <chewbranca@apache.org>2023-05-04 13:00:34 -0700
commitdf7c13e84eebe4f91c284f315427c3a0e07a4071 (patch)
treef03bb707ffb1a4061d6e744d5b969eff8193a3af
parentb566bbe4c85d4934d3409632d01679f403cf561a (diff)
downloadcouchdb-df7c13e84eebe4f91c284f315427c3a0e07a4071.tar.gz
Add measures logging
-rw-r--r--src/couch_log/priv/stats_descriptions.cfg4
-rw-r--r--src/couch_log/src/couch_log.erl11
-rw-r--r--src/mango/src/mango_cursor_view.erl1
-rw-r--r--src/mango/src/mango_execution_stats.erl11
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 eec8dc4fe..412ee62bb 100644
--- a/src/mango/src/mango_cursor_view.erl
+++ b/src/mango/src/mango_cursor_view.erl
@@ -229,6 +229,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))], #{}).