You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by da...@apache.org on 2009/05/24 02:04:36 UTC
svn commit: r778072 - in /couchdb/trunk/src/couchdb: couch_httpd_db.erl
couch_stats_aggregator.erl couch_stats_collector.erl
Author: damien
Date: Sun May 24 00:04:36 2009
New Revision: 778072
URL: http://svn.apache.org/viewvc?rev=778072&view=rev
Log:
Added stats tracking for active _changes clients.
Modified:
couchdb/trunk/src/couchdb/couch_httpd_db.erl
couchdb/trunk/src/couchdb/couch_stats_aggregator.erl
couchdb/trunk/src/couchdb/couch_stats_collector.erl
Modified: couchdb/trunk/src/couchdb/couch_httpd_db.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_httpd_db.erl?rev=778072&r1=778071&r2=778072&view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_httpd_db.erl (original)
+++ couchdb/trunk/src/couchdb/couch_httpd_db.erl Sun May 24 00:04:36 2009
@@ -51,18 +51,21 @@
case couch_httpd:qs_value(Req, "continuous", "false") of
"true" ->
Self = self(),
- Notify = couch_db_update_notifier:start_link(
+ {ok, Notify} = couch_db_update_notifier:start_link(
fun({_, DbName0}) when DbName0 == DbName ->
Self ! db_updated;
(_) ->
ok
end),
+ couch_stats_collector:track_process_count(Self,
+ {httpd, clients_requesting_changes}),
try
keep_sending_changes(Req, Resp, Db, StartSeq, <<"">>)
after
- catch couch_db_update_notifier:stop(Notify),
+ couch_db_update_notifier:stop(Notify),
wait_db_updated(0) % clean out any remaining update messages
end;
+
"false" ->
{ok, {LastSeq, _Prepend}} =
send_changes(Req, Resp, Db, StartSeq, <<"">>),
Modified: couchdb/trunk/src/couchdb/couch_stats_aggregator.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_stats_aggregator.erl?rev=778072&r1=778071&r2=778072&view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_stats_aggregator.erl (original)
+++ couchdb/trunk/src/couchdb/couch_stats_aggregator.erl Sun May 24 00:04:36 2009
@@ -309,6 +309,7 @@
ets:insert(?MODULE, {{httpd, requests}, <<"number of HTTP requests">>}),
ets:insert(?MODULE, {{httpd, temporary_view_reads}, <<"number of temporary view reads">>}),
ets:insert(?MODULE, {{httpd, view_reads}, <<"number of view reads">>}),
+ ets:insert(?MODULE, {{httpd, clients_requesting_changes}, <<"Number of clients currently requesting continuous _changes">>}),
ets:insert(?MODULE, {{httpd_request_methods, 'COPY'}, <<"number of HTTP COPY requests">>}),
ets:insert(?MODULE, {{httpd_request_methods, 'DELETE'}, <<"number of HTTP DELETE requests">>}),
Modified: couchdb/trunk/src/couchdb/couch_stats_collector.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_stats_collector.erl?rev=778072&r1=778071&r2=778072&view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_stats_collector.erl (original)
+++ couchdb/trunk/src/couchdb/couch_stats_collector.erl Sun May 24 00:04:36 2009
@@ -24,7 +24,7 @@
-export([start/0, stop/0, get/1,
increment/1, decrement/1,
- track_process_count/1,
+ track_process_count/1, track_process_count/2,
record/2, clear/1,
all/0, all/1]).
@@ -87,14 +87,15 @@
absolute -> ets:tab2list(?ABSOLUTE_VALUE_COUNTER_TABLE)
end.
-
track_process_count(Stat) ->
+ track_process_count(self(), Stat).
+
+track_process_count(Pid, Stat) ->
case (catch couch_stats_collector:increment(Stat)) of
ok ->
- Self = self(),
spawn(
fun() ->
- erlang:monitor(process, Self),
+ erlang:monitor(process, Pid),
receive {'DOWN', _, _, _, _} -> ok end,
couch_stats_collector:decrement(Stat)
end);