diff options
author | Peng Hui Jiang <jiangphcn@apache.org> | 2018-10-12 14:38:24 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-12 14:38:24 +0800 |
commit | adebd386ee55f65c1b58b3fab232dda9f351c739 (patch) | |
tree | 0a177b17dea757bf75c1f426dc6079bc45c265f7 | |
parent | 7073ef1870f070c092f63e5952b0163a51034d0c (diff) | |
parent | 87fde5988e84913909ed1ad5258f151f7ef4c165 (diff) | |
download | couchdb-adebd386ee55f65c1b58b3fab232dda9f351c739.tar.gz |
Merge pull request #1649 from apache/COUCHDB-3326-metrics-docs-purges
Add document_purges counter for stats
-rw-r--r-- | src/chttpd/src/chttpd_db.erl | 4 | ||||
-rw-r--r-- | src/couch/priv/stats_descriptions.cfg | 12 |
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}, |