summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjiangph <jiangph@cn.ibm.com>2018-10-11 14:25:15 +0800
committerjiangph <jiangph@cn.ibm.com>2018-10-12 14:13:30 +0800
commit87fde5988e84913909ed1ad5258f151f7ef4c165 (patch)
tree0a177b17dea757bf75c1f426dc6079bc45c265f7
parent7073ef1870f070c092f63e5952b0163a51034d0c (diff)
downloadcouchdb-COUCHDB-3326-metrics-docs-purges.tar.gz
Add document_purges counter for statsCOUCHDB-3326-metrics-docs-purges
COUCHDB-3326
-rw-r--r--src/chttpd/src/chttpd_db.erl4
-rw-r--r--src/couch/priv/stats_descriptions.cfg12
2 files changed, 14 insertions, 2 deletions
diff --git a/src/chttpd/src/chttpd_db.erl b/src/chttpd/src/chttpd_db.erl
index d0a5a5b74..bd01b93bd 100644
--- a/src/chttpd/src/chttpd_db.erl
+++ b/src/chttpd/src/chttpd_db.erl
@@ -523,6 +523,7 @@ db_req(#httpd{method='POST',path_parts=[_,<<"_purge">>]}=Req, Db) ->
false -> throw({bad_request, "Exceeded maximum number of revisions."});
true -> ok
end,
+ couch_stats:increment_counter([couchdb, document_purges, total], length(IdsRevs2)),
{ok, Results} = fabric:purge_docs(Db, IdsRevs2, Options),
{Code, Json} = purge_results_to_json(IdsRevs2, Results),
send_json(Req, Code, {[{<<"purge_seq">>, null}, {<<"purged">>, {Json}}]});
@@ -1027,14 +1028,17 @@ purge_results_to_json([], []) ->
{201, []};
purge_results_to_json([{DocId, _Revs} | RIn], [{ok, PRevs} | ROut]) ->
{Code, Results} = purge_results_to_json(RIn, ROut),
+ couch_stats:increment_counter([couchdb, document_purges, success]),
{Code, [{DocId, couch_doc:revs_to_strs(PRevs)} | Results]};
purge_results_to_json([{DocId, _Revs} | RIn], [{accepted, PRevs} | ROut]) ->
{Code, Results} = purge_results_to_json(RIn, ROut),
+ couch_stats:increment_counter([couchdb, document_purges, success]),
NewResults = [{DocId, couch_doc:revs_to_strs(PRevs)} | Results],
{erlang:max(Code, 202), NewResults};
purge_results_to_json([{DocId, _Revs} | RIn], [Error | ROut]) ->
{Code, Results} = purge_results_to_json(RIn, ROut),
{NewCode, ErrorStr, Reason} = chttpd:error_info(Error),
+ couch_stats:increment_counter([couchdb, document_purges, failure]),
NewResults = [{DocId, {[{error, ErrorStr}, {reason, Reason}]}} | Results],
{erlang:max(NewCode, Code), NewResults}.
diff --git a/src/couch/priv/stats_descriptions.cfg b/src/couch/priv/stats_descriptions.cfg
index bceb0cea8..e5ac9d722 100644
--- a/src/couch/priv/stats_descriptions.cfg
+++ b/src/couch/priv/stats_descriptions.cfg
@@ -50,9 +50,17 @@
{type, counter},
{desc, <<"number of document write operations">>}
]}.
-{[couchdb, document_purges], [
+{[couchdb, document_purges, total], [
{type, counter},
- {desc, <<"number of document purge operations">>}
+ {desc, <<"number of total document purge operations">>}
+]}.
+{[couchdb, document_purges, success], [
+ {type, counter},
+ {desc, <<"number of successful document purge operations">>}
+]}.
+{[couchdb, document_purges, failure], [
+ {type, counter},
+ {desc, <<"number of failed document purge operations">>}
]}.
{[couchdb, local_document_writes], [
{type, counter},