You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by Sebastian Cohnen <se...@googlemail.com> on 2009/10/24 12:51:25 UTC
Re: svn commit: r829304 - in /couchdb/trunk: etc/couchdb/default.ini.tpl.in license.skip src/couchdb/couch_stats_aggregator.erl src/couchdb/couch_util.erl src/couchdb/priv/Makefile.am src/couchdb/priv/stat_descriptions.cfg
Hey devs,
maybe you already are aware of it, but after your last commit, davisp,
make check (after make clean) fails:
test/etap/121-stats-aggregates............FAILED tests 1-17
Failed 17/17 tests, 0.00% okay
Failed Test Stat Wstat Total Fail List of Failed
-------------------------------------------------------------------------------
test/etap/121-stats-aggregates.t 17 17 1-17
Failed 1/29 test scripts. 17/367 subtests failed.
Files=29, Tests=367, 63 wallclock secs (22.23 cusr + 3.03 csys =
25.26 CPU)
Failed 1/29 test programs. 17/367 subtests failed.
make: *** [check] Error 255
The browser test suite is all green - at least in the second run. In
the first run the stats-test was failing (I accidentally closed the
browser window and I can't remember the exact error message, sorry)
Sebastian / tisba
On 24.10.2009, at 06:14, davisp@apache.org wrote:
> Author: davisp
> Date: Sat Oct 24 04:14:12 2009
> New Revision: 829304
>
> URL: http://svn.apache.org/viewvc?rev=829304&view=rev
> Log:
> Move stat descriptions out of the config.
>
> This lists stat descriptions in an Erlang term file to avoid abusing
> the config system. Uses a file in CouchDB's priv directory that is a
> list of three-tuple terms.
>
>
> Added:
> couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg
> Modified:
> couchdb/trunk/etc/couchdb/default.ini.tpl.in
> couchdb/trunk/license.skip
> couchdb/trunk/src/couchdb/couch_stats_aggregator.erl
> couchdb/trunk/src/couchdb/couch_util.erl
> couchdb/trunk/src/couchdb/priv/Makefile.am
>
> Modified: couchdb/trunk/etc/couchdb/default.ini.tpl.in
> URL: http://svn.apache.org/viewvc/couchdb/trunk/etc/couchdb/default.ini.tpl.in?rev=829304&r1=829303&r2=829304&view=diff
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- couchdb/trunk/etc/couchdb/default.ini.tpl.in (original)
> +++ couchdb/trunk/etc/couchdb/default.ini.tpl.in Sat Oct 24 04:14:12
> 2009
> @@ -112,40 +112,3 @@
> ; sample intervals are in seconds
> samples = [0, 60, 300, 900]
>
> -; Style guide for descriptions: Start with a lowercase letter & do
> not add
> -; a trailing full-stop / period.
> -; Please keep this in alphabetical order.
> -[stats_descriptions]
> -{couchdb, database_writes} = number of times a database was changed
> -{couchdb, database_reads} = number of times a document was read
> from a database
> -{couchdb, open_databases} = number of open databases
> -{couchdb, open_os_files} = number of file descriptors CouchDB has
> open
> -{couchdb, request_time} = length of a request inside CouchDB
> without MochiWeb
> -
> -{httpd, bulk_requests} = number of bulk requests
> -{httpd, requests} = number of HTTP requests
> -{httpd, temporary_view_reads} = number of temporary view reads
> -{httpd, view_reads} = number of view reads
> -{httpd, clients_requesting_changes} = number of clients for
> continuous _changes
> -
> -{httpd_request_methods, 'COPY'} = number of HTTP COPY requests
> -{httpd_request_methods, 'DELETE'} = number of HTTP DELETE requests
> -{httpd_request_methods, 'GET'} = number of HTTP GET requests
> -{httpd_request_methods, 'HEAD'} = number of HTTP HEAD requests
> -{httpd_request_methods, 'MOVE'} = number of HTTP MOVE requests
> -{httpd_request_methods, 'POST'} = number of HTTP POST requests
> -{httpd_request_methods, 'PUT'} = number of HTTP PUT requests
> -
> -{httpd_status_codes, '200'} = number of HTTP 200 OK responses
> -{httpd_status_codes, '201'} = number of HTTP 201 Created responses
> -{httpd_status_codes, '202'} = number of HTTP 202 Accepted responses
> -{httpd_status_codes, '301'} = number of HTTP 301 Moved Permanently
> responses
> -{httpd_status_codes, '304'} = number of HTTP 304 Not Modified
> responses
> -{httpd_status_codes, '400'} = number of HTTP 400 Bad Request
> responses
> -{httpd_status_codes, '401'} = number of HTTP 401 Unauthorized
> responses
> -{httpd_status_codes, '403'} = number of HTTP 403 Forbidden responses
> -{httpd_status_codes, '404'} = number of HTTP 404 Not Found responses
> -{httpd_status_codes, '405'} = number of HTTP 405 Method Not Allowed
> responses
> -{httpd_status_codes, '409'} = number of HTTP 409 Conflict responses
> -{httpd_status_codes, '412'} = number of HTTP 412 Precondition
> Failed responses
> -{httpd_status_codes, '500'} = number of HTTP 500 Internal Server
> Error responses
>
> Modified: couchdb/trunk/license.skip
> URL: http://svn.apache.org/viewvc/couchdb/trunk/license.skip?rev=829304&r1=829303&r2=829304&view=diff
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- couchdb/trunk/license.skip (original)
> +++ couchdb/trunk/license.skip Sat Oct 24 04:14:12 2009
> @@ -64,6 +64,7 @@
> ^src/couchdb/priv/Makefile
> ^src/couchdb/priv/Makefile.in
> ^src/couchdb/priv/couchspawnkillable
> +^src/couchdb/priv/stat_descriptions.cfg
> ^src/erlang-oauth/*
> ^src/etap/*
> ^src/ibrowse/*
>
> Modified: couchdb/trunk/src/couchdb/couch_stats_aggregator.erl
> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_stats_aggregator.erl?rev=829304&r1=829303&r2=829304&view=diff
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- couchdb/trunk/src/couchdb/couch_stats_aggregator.erl (original)
> +++ couchdb/trunk/src/couchdb/couch_stats_aggregator.erl Sat Oct 24
> 04:14:12 2009
> @@ -90,16 +90,17 @@
> ets:new(?MODULE, [named_table, set, protected]),
> SampleStr = couch_config:get("stats", "samples", "[0]"),
> {ok, Samples} = couch_util:parse_term(SampleStr),
> - lists:foreach(fun({KeyStr, Value}) ->
> - {ok, Key} = couch_util:parse_term(KeyStr),
> + PrivDir = couch_util:priv_dir(),
> + {ok, Descs} = file:consult(filename:join(PrivDir,
> "stat_descriptions.cfg")),
> + lists:foreach(fun({Sect, Key, Value}) ->
> lists:foreach(fun(Secs) ->
> Agg = #aggregate{
> description=list_to_binary(Value),
> seconds=Secs
> },
> - ets:insert(?MODULE, {{Key, Secs}, Agg})
> + ets:insert(?MODULE, {{{Sect, Key}, Secs}, Agg})
> end, Samples)
> - end, couch_config:get("stats_descriptions")),
> + end, Descs),
>
> Self = self(),
> ok = couch_config:register(
>
> Modified: couchdb/trunk/src/couchdb/couch_util.erl
> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_util.erl?rev=829304&r1=829303&r2=829304&view=diff
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- couchdb/trunk/src/couchdb/couch_util.erl (original)
> +++ couchdb/trunk/src/couchdb/couch_util.erl Sat Oct 24 04:14:12 2009
> @@ -12,7 +12,7 @@
>
> -module(couch_util).
>
> --export([start_driver/1,terminate_linked/1]).
> +-export([priv_dir/0, start_driver/1,terminate_linked/1]).
> -export([should_flush/0, should_flush/1, to_existing_atom/1]).
> -export([rand32/0, implode/2, collate/2, collate/3]).
> -export([abs_pathname/1,abs_pathname/2, trim/1, ascii_lower/1]).
> @@ -27,6 +27,16 @@
> % arbitrarily chosen amount of memory to use before flushing to disk
> -define(FLUSH_MAX_MEM, 10000000).
>
> +priv_dir() ->
> + case code:priv_dir(couch) of
> + {error, bad_name} ->
> + % small hack, in dev mode "app" is couchdb. Fixing
> requires
> + % renaming src/couch to src/couch. Not really worth the
> hassle.
> + % -Damien
> + code:priv_dir(couchdb);
> + Dir -> Dir
> + end.
> +
> start_driver(LibDir) ->
> case erl_ddll:load_driver(LibDir, "couch_erl_driver") of
> ok ->
>
> Modified: couchdb/trunk/src/couchdb/priv/Makefile.am
> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/priv/Makefile.am?rev=829304&r1=829303&r2=829304&view=diff
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- couchdb/trunk/src/couchdb/priv/Makefile.am (original)
> +++ couchdb/trunk/src/couchdb/priv/Makefile.am Sat Oct 24 04:14:12
> 2009
> @@ -13,8 +13,9 @@
> couchlibdir = $(localerlanglibdir)/couch-$(version)
> couchprivdir = $(couchlibdir)/priv
>
> -EXTRA_DIST = couchspawnkillable.sh
> +EXTRA_DIST = couchspawnkillable.sh stat_descriptions.cfg
>
> +couchpriv_DATA = stat_descriptions.cfg
> couchpriv_PROGRAMS = couchspawnkillable
>
> if WINDOWS
>
> Added: couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg
> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg?rev=829304&view=auto
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg (added)
> +++ couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg Sat Oct 24
> 04:14:12 2009
> @@ -0,0 +1,37 @@
> +% Style guide for descriptions: Start with a lowercase letter & do
> not add
> +% a trailing full-stop / period
> +% Please keep this in alphabetical order
> +
> +{couchdb, database_writes, "number of times a database was change"}.
> +{couchdb, database_reads, "number of times a document was read from
> a databas"}.
> +{couchdb, open_databases, "number of open database"}.
> +{couchdb, open_os_files, "number of file descriptors CouchDB has
> ope"}.
> +{couchdb, request_time, "length of a request inside CouchDB without
> MochiWe"}.
> +
> +{httpd, bulk_requests, "number of bulk request"}.
> +{httpd, requests, "number of HTTP request"}.
> +{httpd, temporary_view_reads, "number of temporary view read"}.
> +{httpd, view_reads, "number of view read"}.
> +{httpd, clients_requesting_changes, "number of clients for
> continuous _change"}.
> +
> +{httpd_request_methods, 'COPY', "number of HTTP COPY request"}.
> +{httpd_request_methods, 'DELETE', "number of HTTP DELETE request"}.
> +{httpd_request_methods, 'GET', "number of HTTP GET request"}.
> +{httpd_request_methods, 'HEAD', "number of HTTP HEAD request"}.
> +{httpd_request_methods, 'MOVE', "number of HTTP MOVE request"}.
> +{httpd_request_methods, 'POST', "number of HTTP POST request"}.
> +{httpd_request_methods, 'PUT', "number of HTTP PUT request"}.
> +
> +{httpd_status_codes, '200', "number of HTTP 200 OK response"}.
> +{httpd_status_codes, '201', "number of HTTP 201 Created response"}.
> +{httpd_status_codes, '202', "number of HTTP 202 Accepted response"}.
> +{httpd_status_codes, '301', "number of HTTP 301 Moved Permanently
> response"}.
> +{httpd_status_codes, '304', "number of HTTP 304 Not Modified
> response"}.
> +{httpd_status_codes, '400', "number of HTTP 400 Bad Request
> response"}.
> +{httpd_status_codes, '401', "number of HTTP 401 Unauthorized
> response"}.
> +{httpd_status_codes, '403', "number of HTTP 403 Forbidden response"}.
> +{httpd_status_codes, '404', "number of HTTP 404 Not Found response"}.
> +{httpd_status_codes, '405', "number of HTTP 405 Method Not Allowed
> response"}.
> +{httpd_status_codes, '409', "number of HTTP 409 Conflict response"}.
> +{httpd_status_codes, '412', "number of HTTP 412 Precondition Failed
> response"}.
> +{httpd_status_codes, '500', "number of HTTP 500 Internal Server
> Error response"}.
>
>
Re: svn commit: r829304 - in /couchdb/trunk: etc/couchdb/default.ini.tpl.in
license.skip src/couchdb/couch_stats_aggregator.erl src/couchdb/couch_util.erl
src/couchdb/priv/Makefile.am src/couchdb/priv/stat_descriptions.cfg
Posted by Paul Davis <pa...@gmail.com>.
Doh! Was a bit tired and only checked distcheck and Futon and buildbot
is down. :/
I should write a script that checks everything in one go. I think
tonight I'll work on updating the CLI runner for running the JS tests
from the command line.
Paul
On Sat, Oct 24, 2009 at 2:56 PM, Adam Kocoloski <ko...@apache.org> wrote:
> Good catch, Bob.
>
> Regarding code:priv_dir(couch), it works in a normal server installation but
> fails from make dev. Apparently we have couch_util:priv_dir() to work
> around this (didn't notice it till now). I've replaced all usage of
> code:priv_dir(couch) with couch_util:priv_dir()
>
> We'll still need to figure out something for the stats test. Best,
>
> Adam
>
> On Oct 24, 2009, at 2:26 PM, Robert Dionne wrote:
>
>> yea it broke. It looks like the problem is couch_util:priv_dir() fails
>> when couch is not running. Poking into this a bit I see another related
>> problem:
>>
>> If line 79 in couch_server_sup ever executes:
>>
>> filename:join(code:priv_dir(couch), "lib");
>>
>> It fails because code:priv_dir(couch) returns a bad name error. You can
>> see this by commenting out util_driver_dir in the config file. I suspect
>> this might relate to a private directory not being specified when the app is
>> packaged? Perhaps there's something missing in couch.app?
>>
>>
>>
>>
>> On Oct 24, 2009, at 6:51 AM, Sebastian Cohnen wrote:
>>
>>> Hey devs,
>>>
>>> maybe you already are aware of it, but after your last commit, davisp,
>>> make check (after make clean) fails:
>>>
>>> test/etap/121-stats-aggregates............FAILED tests 1-17
>>> Failed 17/17 tests, 0.00% okay
>>> Failed Test Stat Wstat Total Fail List of Failed
>>>
>>> -------------------------------------------------------------------------------
>>> test/etap/121-stats-aggregates.t 17 17 1-17
>>> Failed 1/29 test scripts. 17/367 subtests failed.
>>> Files=29, Tests=367, 63 wallclock secs (22.23 cusr + 3.03 csys = 25.26
>>> CPU)
>>> Failed 1/29 test programs. 17/367 subtests failed.
>>> make: *** [check] Error 255
>>>
>>> The browser test suite is all green - at least in the second run. In the
>>> first run the stats-test was failing (I accidentally closed the browser
>>> window and I can't remember the exact error message, sorry)
>>>
>>>
>>> Sebastian / tisba
>>>
>>> On 24.10.2009, at 06:14, davisp@apache.org wrote:
>>>
>>>> Author: davisp
>>>> Date: Sat Oct 24 04:14:12 2009
>>>> New Revision: 829304
>>>>
>>>> URL: http://svn.apache.org/viewvc?rev=829304&view=rev
>>>> Log:
>>>> Move stat descriptions out of the config.
>>>>
>>>> This lists stat descriptions in an Erlang term file to avoid abusing the
>>>> config system. Uses a file in CouchDB's priv directory that is a list of
>>>> three-tuple terms.
>>>>
>>>>
>>>> Added:
>>>> couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg
>>>> Modified:
>>>> couchdb/trunk/etc/couchdb/default.ini.tpl.in
>>>> couchdb/trunk/license.skip
>>>> couchdb/trunk/src/couchdb/couch_stats_aggregator.erl
>>>> couchdb/trunk/src/couchdb/couch_util.erl
>>>> couchdb/trunk/src/couchdb/priv/Makefile.am
>>>>
>>>> Modified: couchdb/trunk/etc/couchdb/default.ini.tpl.in
>>>> URL:
>>>> http://svn.apache.org/viewvc/couchdb/trunk/etc/couchdb/default.ini.tpl.in?rev=829304&r1=829303&r2=829304&view=diff
>>>>
>>>> ==============================================================================
>>>> --- couchdb/trunk/etc/couchdb/default.ini.tpl.in (original)
>>>> +++ couchdb/trunk/etc/couchdb/default.ini.tpl.in Sat Oct 24 04:14:12
>>>> 2009
>>>> @@ -112,40 +112,3 @@
>>>> ; sample intervals are in seconds
>>>> samples = [0, 60, 300, 900]
>>>>
>>>> -; Style guide for descriptions: Start with a lowercase letter & do not
>>>> add
>>>> -; a trailing full-stop / period.
>>>> -; Please keep this in alphabetical order.
>>>> -[stats_descriptions]
>>>> -{couchdb, database_writes} = number of times a database was changed
>>>> -{couchdb, database_reads} = number of times a document was read from a
>>>> database
>>>> -{couchdb, open_databases} = number of open databases
>>>> -{couchdb, open_os_files} = number of file descriptors CouchDB has open
>>>> -{couchdb, request_time} = length of a request inside CouchDB without
>>>> MochiWeb
>>>> -
>>>> -{httpd, bulk_requests} = number of bulk requests
>>>> -{httpd, requests} = number of HTTP requests
>>>> -{httpd, temporary_view_reads} = number of temporary view reads
>>>> -{httpd, view_reads} = number of view reads
>>>> -{httpd, clients_requesting_changes} = number of clients for continuous
>>>> _changes
>>>> -
>>>> -{httpd_request_methods, 'COPY'} = number of HTTP COPY requests
>>>> -{httpd_request_methods, 'DELETE'} = number of HTTP DELETE requests
>>>> -{httpd_request_methods, 'GET'} = number of HTTP GET requests
>>>> -{httpd_request_methods, 'HEAD'} = number of HTTP HEAD requests
>>>> -{httpd_request_methods, 'MOVE'} = number of HTTP MOVE requests
>>>> -{httpd_request_methods, 'POST'} = number of HTTP POST requests
>>>> -{httpd_request_methods, 'PUT'} = number of HTTP PUT requests
>>>> -
>>>> -{httpd_status_codes, '200'} = number of HTTP 200 OK responses
>>>> -{httpd_status_codes, '201'} = number of HTTP 201 Created responses
>>>> -{httpd_status_codes, '202'} = number of HTTP 202 Accepted responses
>>>> -{httpd_status_codes, '301'} = number of HTTP 301 Moved Permanently
>>>> responses
>>>> -{httpd_status_codes, '304'} = number of HTTP 304 Not Modified responses
>>>> -{httpd_status_codes, '400'} = number of HTTP 400 Bad Request responses
>>>> -{httpd_status_codes, '401'} = number of HTTP 401 Unauthorized responses
>>>> -{httpd_status_codes, '403'} = number of HTTP 403 Forbidden responses
>>>> -{httpd_status_codes, '404'} = number of HTTP 404 Not Found responses
>>>> -{httpd_status_codes, '405'} = number of HTTP 405 Method Not Allowed
>>>> responses
>>>> -{httpd_status_codes, '409'} = number of HTTP 409 Conflict responses
>>>> -{httpd_status_codes, '412'} = number of HTTP 412 Precondition Failed
>>>> responses
>>>> -{httpd_status_codes, '500'} = number of HTTP 500 Internal Server Error
>>>> responses
>>>>
>>>> Modified: couchdb/trunk/license.skip
>>>> URL:
>>>> http://svn.apache.org/viewvc/couchdb/trunk/license.skip?rev=829304&r1=829303&r2=829304&view=diff
>>>>
>>>> ==============================================================================
>>>> --- couchdb/trunk/license.skip (original)
>>>> +++ couchdb/trunk/license.skip Sat Oct 24 04:14:12 2009
>>>> @@ -64,6 +64,7 @@
>>>> ^src/couchdb/priv/Makefile
>>>> ^src/couchdb/priv/Makefile.in
>>>> ^src/couchdb/priv/couchspawnkillable
>>>> +^src/couchdb/priv/stat_descriptions.cfg
>>>> ^src/erlang-oauth/*
>>>> ^src/etap/*
>>>> ^src/ibrowse/*
>>>>
>>>> Modified: couchdb/trunk/src/couchdb/couch_stats_aggregator.erl
>>>> URL:
>>>> http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_stats_aggregator.erl?rev=829304&r1=829303&r2=829304&view=diff
>>>>
>>>> ==============================================================================
>>>> --- couchdb/trunk/src/couchdb/couch_stats_aggregator.erl (original)
>>>> +++ couchdb/trunk/src/couchdb/couch_stats_aggregator.erl Sat Oct 24
>>>> 04:14:12 2009
>>>> @@ -90,16 +90,17 @@
>>>> ets:new(?MODULE, [named_table, set, protected]),
>>>> SampleStr = couch_config:get("stats", "samples", "[0]"),
>>>> {ok, Samples} = couch_util:parse_term(SampleStr),
>>>> - lists:foreach(fun({KeyStr, Value}) ->
>>>> - {ok, Key} = couch_util:parse_term(KeyStr),
>>>> + PrivDir = couch_util:priv_dir(),
>>>> + {ok, Descs} = file:consult(filename:join(PrivDir,
>>>> "stat_descriptions.cfg")),
>>>> + lists:foreach(fun({Sect, Key, Value}) ->
>>>> lists:foreach(fun(Secs) ->
>>>> Agg = #aggregate{
>>>> description=list_to_binary(Value),
>>>> seconds=Secs
>>>> },
>>>> - ets:insert(?MODULE, {{Key, Secs}, Agg})
>>>> + ets:insert(?MODULE, {{{Sect, Key}, Secs}, Agg})
>>>> end, Samples)
>>>> - end, couch_config:get("stats_descriptions")),
>>>> + end, Descs),
>>>>
>>>> Self = self(),
>>>> ok = couch_config:register(
>>>>
>>>> Modified: couchdb/trunk/src/couchdb/couch_util.erl
>>>> URL:
>>>> http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_util.erl?rev=829304&r1=829303&r2=829304&view=diff
>>>>
>>>> ==============================================================================
>>>> --- couchdb/trunk/src/couchdb/couch_util.erl (original)
>>>> +++ couchdb/trunk/src/couchdb/couch_util.erl Sat Oct 24 04:14:12 2009
>>>> @@ -12,7 +12,7 @@
>>>>
>>>> -module(couch_util).
>>>>
>>>> --export([start_driver/1,terminate_linked/1]).
>>>> +-export([priv_dir/0, start_driver/1,terminate_linked/1]).
>>>> -export([should_flush/0, should_flush/1, to_existing_atom/1]).
>>>> -export([rand32/0, implode/2, collate/2, collate/3]).
>>>> -export([abs_pathname/1,abs_pathname/2, trim/1, ascii_lower/1]).
>>>> @@ -27,6 +27,16 @@
>>>> % arbitrarily chosen amount of memory to use before flushing to disk
>>>> -define(FLUSH_MAX_MEM, 10000000).
>>>>
>>>> +priv_dir() ->
>>>> + case code:priv_dir(couch) of
>>>> + {error, bad_name} ->
>>>> + % small hack, in dev mode "app" is couchdb. Fixing requires
>>>> + % renaming src/couch to src/couch. Not really worth the
>>>> hassle.
>>>> + % -Damien
>>>> + code:priv_dir(couchdb);
>>>> + Dir -> Dir
>>>> + end.
>>>> +
>>>> start_driver(LibDir) ->
>>>> case erl_ddll:load_driver(LibDir, "couch_erl_driver") of
>>>> ok ->
>>>>
>>>> Modified: couchdb/trunk/src/couchdb/priv/Makefile.am
>>>> URL:
>>>> http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/priv/Makefile.am?rev=829304&r1=829303&r2=829304&view=diff
>>>>
>>>> ==============================================================================
>>>> --- couchdb/trunk/src/couchdb/priv/Makefile.am (original)
>>>> +++ couchdb/trunk/src/couchdb/priv/Makefile.am Sat Oct 24 04:14:12 2009
>>>> @@ -13,8 +13,9 @@
>>>> couchlibdir = $(localerlanglibdir)/couch-$(version)
>>>> couchprivdir = $(couchlibdir)/priv
>>>>
>>>> -EXTRA_DIST = couchspawnkillable.sh
>>>> +EXTRA_DIST = couchspawnkillable.sh stat_descriptions.cfg
>>>>
>>>> +couchpriv_DATA = stat_descriptions.cfg
>>>> couchpriv_PROGRAMS = couchspawnkillable
>>>>
>>>> if WINDOWS
>>>>
>>>> Added: couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg
>>>> URL:
>>>> http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg?rev=829304&view=auto
>>>>
>>>> ==============================================================================
>>>> --- couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg (added)
>>>> +++ couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg Sat Oct 24
>>>> 04:14:12 2009
>>>> @@ -0,0 +1,37 @@
>>>> +% Style guide for descriptions: Start with a lowercase letter & do not
>>>> add
>>>> +% a trailing full-stop / period
>>>> +% Please keep this in alphabetical order
>>>> +
>>>> +{couchdb, database_writes, "number of times a database was change"}.
>>>> +{couchdb, database_reads, "number of times a document was read from a
>>>> databas"}.
>>>> +{couchdb, open_databases, "number of open database"}.
>>>> +{couchdb, open_os_files, "number of file descriptors CouchDB has ope"}.
>>>> +{couchdb, request_time, "length of a request inside CouchDB without
>>>> MochiWe"}.
>>>> +
>>>> +{httpd, bulk_requests, "number of bulk request"}.
>>>> +{httpd, requests, "number of HTTP request"}.
>>>> +{httpd, temporary_view_reads, "number of temporary view read"}.
>>>> +{httpd, view_reads, "number of view read"}.
>>>> +{httpd, clients_requesting_changes, "number of clients for continuous
>>>> _change"}.
>>>> +
>>>> +{httpd_request_methods, 'COPY', "number of HTTP COPY request"}.
>>>> +{httpd_request_methods, 'DELETE', "number of HTTP DELETE request"}.
>>>> +{httpd_request_methods, 'GET', "number of HTTP GET request"}.
>>>> +{httpd_request_methods, 'HEAD', "number of HTTP HEAD request"}.
>>>> +{httpd_request_methods, 'MOVE', "number of HTTP MOVE request"}.
>>>> +{httpd_request_methods, 'POST', "number of HTTP POST request"}.
>>>> +{httpd_request_methods, 'PUT', "number of HTTP PUT request"}.
>>>> +
>>>> +{httpd_status_codes, '200', "number of HTTP 200 OK response"}.
>>>> +{httpd_status_codes, '201', "number of HTTP 201 Created response"}.
>>>> +{httpd_status_codes, '202', "number of HTTP 202 Accepted response"}.
>>>> +{httpd_status_codes, '301', "number of HTTP 301 Moved Permanently
>>>> response"}.
>>>> +{httpd_status_codes, '304', "number of HTTP 304 Not Modified
>>>> response"}.
>>>> +{httpd_status_codes, '400', "number of HTTP 400 Bad Request response"}.
>>>> +{httpd_status_codes, '401', "number of HTTP 401 Unauthorized
>>>> response"}.
>>>> +{httpd_status_codes, '403', "number of HTTP 403 Forbidden response"}.
>>>> +{httpd_status_codes, '404', "number of HTTP 404 Not Found response"}.
>>>> +{httpd_status_codes, '405', "number of HTTP 405 Method Not Allowed
>>>> response"}.
>>>> +{httpd_status_codes, '409', "number of HTTP 409 Conflict response"}.
>>>> +{httpd_status_codes, '412', "number of HTTP 412 Precondition Failed
>>>> response"}.
>>>> +{httpd_status_codes, '500', "number of HTTP 500 Internal Server Error
>>>> response"}.
>>>>
>>>>
>>>
>>
>
>
Re: svn commit: r829304 - in /couchdb/trunk: etc/couchdb/default.ini.tpl.in license.skip src/couchdb/couch_stats_aggregator.erl src/couchdb/couch_util.erl src/couchdb/priv/Makefile.am src/couchdb/priv/stat_descriptions.cfg
Posted by Adam Kocoloski <ko...@apache.org>.
Good catch, Bob.
Regarding code:priv_dir(couch), it works in a normal server
installation but fails from make dev. Apparently we have
couch_util:priv_dir() to work around this (didn't notice it till
now). I've replaced all usage of code:priv_dir(couch) with
couch_util:priv_dir()
We'll still need to figure out something for the stats test. Best,
Adam
On Oct 24, 2009, at 2:26 PM, Robert Dionne wrote:
> yea it broke. It looks like the problem is couch_util:priv_dir()
> fails when couch is not running. Poking into this a bit I see
> another related problem:
>
> If line 79 in couch_server_sup ever executes:
>
> filename:join(code:priv_dir(couch), "lib");
>
> It fails because code:priv_dir(couch) returns a bad name error. You
> can see this by commenting out util_driver_dir in the config file. I
> suspect this might relate to a private directory not being specified
> when the app is packaged? Perhaps there's something missing in
> couch.app?
>
>
>
>
> On Oct 24, 2009, at 6:51 AM, Sebastian Cohnen wrote:
>
>> Hey devs,
>>
>> maybe you already are aware of it, but after your last commit,
>> davisp, make check (after make clean) fails:
>>
>> test/etap/121-stats-aggregates............FAILED tests 1-17
>> Failed 17/17 tests, 0.00% okay
>> Failed Test Stat Wstat Total Fail List of
>> Failed
>> -------------------------------------------------------------------------------
>> test/etap/121-stats-aggregates.t 17 17 1-17
>> Failed 1/29 test scripts. 17/367 subtests failed.
>> Files=29, Tests=367, 63 wallclock secs (22.23 cusr + 3.03 csys =
>> 25.26 CPU)
>> Failed 1/29 test programs. 17/367 subtests failed.
>> make: *** [check] Error 255
>>
>> The browser test suite is all green - at least in the second run.
>> In the first run the stats-test was failing (I accidentally closed
>> the browser window and I can't remember the exact error message,
>> sorry)
>>
>>
>> Sebastian / tisba
>>
>> On 24.10.2009, at 06:14, davisp@apache.org wrote:
>>
>>> Author: davisp
>>> Date: Sat Oct 24 04:14:12 2009
>>> New Revision: 829304
>>>
>>> URL: http://svn.apache.org/viewvc?rev=829304&view=rev
>>> Log:
>>> Move stat descriptions out of the config.
>>>
>>> This lists stat descriptions in an Erlang term file to avoid
>>> abusing the config system. Uses a file in CouchDB's priv directory
>>> that is a list of three-tuple terms.
>>>
>>>
>>> Added:
>>> couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg
>>> Modified:
>>> couchdb/trunk/etc/couchdb/default.ini.tpl.in
>>> couchdb/trunk/license.skip
>>> couchdb/trunk/src/couchdb/couch_stats_aggregator.erl
>>> couchdb/trunk/src/couchdb/couch_util.erl
>>> couchdb/trunk/src/couchdb/priv/Makefile.am
>>>
>>> Modified: couchdb/trunk/etc/couchdb/default.ini.tpl.in
>>> URL: http://svn.apache.org/viewvc/couchdb/trunk/etc/couchdb/default.ini.tpl.in?rev=829304&r1=829303&r2=829304&view=diff
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> ====================================================================
>>> --- couchdb/trunk/etc/couchdb/default.ini.tpl.in (original)
>>> +++ couchdb/trunk/etc/couchdb/default.ini.tpl.in Sat Oct 24
>>> 04:14:12 2009
>>> @@ -112,40 +112,3 @@
>>> ; sample intervals are in seconds
>>> samples = [0, 60, 300, 900]
>>>
>>> -; Style guide for descriptions: Start with a lowercase letter &
>>> do not add
>>> -; a trailing full-stop / period.
>>> -; Please keep this in alphabetical order.
>>> -[stats_descriptions]
>>> -{couchdb, database_writes} = number of times a database was changed
>>> -{couchdb, database_reads} = number of times a document was read
>>> from a database
>>> -{couchdb, open_databases} = number of open databases
>>> -{couchdb, open_os_files} = number of file descriptors CouchDB has
>>> open
>>> -{couchdb, request_time} = length of a request inside CouchDB
>>> without MochiWeb
>>> -
>>> -{httpd, bulk_requests} = number of bulk requests
>>> -{httpd, requests} = number of HTTP requests
>>> -{httpd, temporary_view_reads} = number of temporary view reads
>>> -{httpd, view_reads} = number of view reads
>>> -{httpd, clients_requesting_changes} = number of clients for
>>> continuous _changes
>>> -
>>> -{httpd_request_methods, 'COPY'} = number of HTTP COPY requests
>>> -{httpd_request_methods, 'DELETE'} = number of HTTP DELETE requests
>>> -{httpd_request_methods, 'GET'} = number of HTTP GET requests
>>> -{httpd_request_methods, 'HEAD'} = number of HTTP HEAD requests
>>> -{httpd_request_methods, 'MOVE'} = number of HTTP MOVE requests
>>> -{httpd_request_methods, 'POST'} = number of HTTP POST requests
>>> -{httpd_request_methods, 'PUT'} = number of HTTP PUT requests
>>> -
>>> -{httpd_status_codes, '200'} = number of HTTP 200 OK responses
>>> -{httpd_status_codes, '201'} = number of HTTP 201 Created responses
>>> -{httpd_status_codes, '202'} = number of HTTP 202 Accepted responses
>>> -{httpd_status_codes, '301'} = number of HTTP 301 Moved
>>> Permanently responses
>>> -{httpd_status_codes, '304'} = number of HTTP 304 Not Modified
>>> responses
>>> -{httpd_status_codes, '400'} = number of HTTP 400 Bad Request
>>> responses
>>> -{httpd_status_codes, '401'} = number of HTTP 401 Unauthorized
>>> responses
>>> -{httpd_status_codes, '403'} = number of HTTP 403 Forbidden
>>> responses
>>> -{httpd_status_codes, '404'} = number of HTTP 404 Not Found
>>> responses
>>> -{httpd_status_codes, '405'} = number of HTTP 405 Method Not
>>> Allowed responses
>>> -{httpd_status_codes, '409'} = number of HTTP 409 Conflict responses
>>> -{httpd_status_codes, '412'} = number of HTTP 412 Precondition
>>> Failed responses
>>> -{httpd_status_codes, '500'} = number of HTTP 500 Internal Server
>>> Error responses
>>>
>>> Modified: couchdb/trunk/license.skip
>>> URL: http://svn.apache.org/viewvc/couchdb/trunk/license.skip?rev=829304&r1=829303&r2=829304&view=diff
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> ====================================================================
>>> --- couchdb/trunk/license.skip (original)
>>> +++ couchdb/trunk/license.skip Sat Oct 24 04:14:12 2009
>>> @@ -64,6 +64,7 @@
>>> ^src/couchdb/priv/Makefile
>>> ^src/couchdb/priv/Makefile.in
>>> ^src/couchdb/priv/couchspawnkillable
>>> +^src/couchdb/priv/stat_descriptions.cfg
>>> ^src/erlang-oauth/*
>>> ^src/etap/*
>>> ^src/ibrowse/*
>>>
>>> Modified: couchdb/trunk/src/couchdb/couch_stats_aggregator.erl
>>> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_stats_aggregator.erl?rev=829304&r1=829303&r2=829304&view=diff
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> ====================================================================
>>> --- couchdb/trunk/src/couchdb/couch_stats_aggregator.erl (original)
>>> +++ couchdb/trunk/src/couchdb/couch_stats_aggregator.erl Sat Oct
>>> 24 04:14:12 2009
>>> @@ -90,16 +90,17 @@
>>> ets:new(?MODULE, [named_table, set, protected]),
>>> SampleStr = couch_config:get("stats", "samples", "[0]"),
>>> {ok, Samples} = couch_util:parse_term(SampleStr),
>>> - lists:foreach(fun({KeyStr, Value}) ->
>>> - {ok, Key} = couch_util:parse_term(KeyStr),
>>> + PrivDir = couch_util:priv_dir(),
>>> + {ok, Descs} = file:consult(filename:join(PrivDir,
>>> "stat_descriptions.cfg")),
>>> + lists:foreach(fun({Sect, Key, Value}) ->
>>> lists:foreach(fun(Secs) ->
>>> Agg = #aggregate{
>>> description=list_to_binary(Value),
>>> seconds=Secs
>>> },
>>> - ets:insert(?MODULE, {{Key, Secs}, Agg})
>>> + ets:insert(?MODULE, {{{Sect, Key}, Secs}, Agg})
>>> end, Samples)
>>> - end, couch_config:get("stats_descriptions")),
>>> + end, Descs),
>>>
>>> Self = self(),
>>> ok = couch_config:register(
>>>
>>> Modified: couchdb/trunk/src/couchdb/couch_util.erl
>>> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_util.erl?rev=829304&r1=829303&r2=829304&view=diff
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> ====================================================================
>>> --- couchdb/trunk/src/couchdb/couch_util.erl (original)
>>> +++ couchdb/trunk/src/couchdb/couch_util.erl Sat Oct 24 04:14:12
>>> 2009
>>> @@ -12,7 +12,7 @@
>>>
>>> -module(couch_util).
>>>
>>> --export([start_driver/1,terminate_linked/1]).
>>> +-export([priv_dir/0, start_driver/1,terminate_linked/1]).
>>> -export([should_flush/0, should_flush/1, to_existing_atom/1]).
>>> -export([rand32/0, implode/2, collate/2, collate/3]).
>>> -export([abs_pathname/1,abs_pathname/2, trim/1, ascii_lower/1]).
>>> @@ -27,6 +27,16 @@
>>> % arbitrarily chosen amount of memory to use before flushing to disk
>>> -define(FLUSH_MAX_MEM, 10000000).
>>>
>>> +priv_dir() ->
>>> + case code:priv_dir(couch) of
>>> + {error, bad_name} ->
>>> + % small hack, in dev mode "app" is couchdb. Fixing
>>> requires
>>> + % renaming src/couch to src/couch. Not really worth
>>> the hassle.
>>> + % -Damien
>>> + code:priv_dir(couchdb);
>>> + Dir -> Dir
>>> + end.
>>> +
>>> start_driver(LibDir) ->
>>> case erl_ddll:load_driver(LibDir, "couch_erl_driver") of
>>> ok ->
>>>
>>> Modified: couchdb/trunk/src/couchdb/priv/Makefile.am
>>> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/priv/Makefile.am?rev=829304&r1=829303&r2=829304&view=diff
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> ====================================================================
>>> --- couchdb/trunk/src/couchdb/priv/Makefile.am (original)
>>> +++ couchdb/trunk/src/couchdb/priv/Makefile.am Sat Oct 24 04:14:12
>>> 2009
>>> @@ -13,8 +13,9 @@
>>> couchlibdir = $(localerlanglibdir)/couch-$(version)
>>> couchprivdir = $(couchlibdir)/priv
>>>
>>> -EXTRA_DIST = couchspawnkillable.sh
>>> +EXTRA_DIST = couchspawnkillable.sh stat_descriptions.cfg
>>>
>>> +couchpriv_DATA = stat_descriptions.cfg
>>> couchpriv_PROGRAMS = couchspawnkillable
>>>
>>> if WINDOWS
>>>
>>> Added: couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg
>>> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg?rev=829304&view=auto
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> =
>>> ====================================================================
>>> --- couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg (added)
>>> +++ couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg Sat Oct
>>> 24 04:14:12 2009
>>> @@ -0,0 +1,37 @@
>>> +% Style guide for descriptions: Start with a lowercase letter &
>>> do not add
>>> +% a trailing full-stop / period
>>> +% Please keep this in alphabetical order
>>> +
>>> +{couchdb, database_writes, "number of times a database was
>>> change"}.
>>> +{couchdb, database_reads, "number of times a document was read
>>> from a databas"}.
>>> +{couchdb, open_databases, "number of open database"}.
>>> +{couchdb, open_os_files, "number of file descriptors CouchDB has
>>> ope"}.
>>> +{couchdb, request_time, "length of a request inside CouchDB
>>> without MochiWe"}.
>>> +
>>> +{httpd, bulk_requests, "number of bulk request"}.
>>> +{httpd, requests, "number of HTTP request"}.
>>> +{httpd, temporary_view_reads, "number of temporary view read"}.
>>> +{httpd, view_reads, "number of view read"}.
>>> +{httpd, clients_requesting_changes, "number of clients for
>>> continuous _change"}.
>>> +
>>> +{httpd_request_methods, 'COPY', "number of HTTP COPY request"}.
>>> +{httpd_request_methods, 'DELETE', "number of HTTP DELETE request"}.
>>> +{httpd_request_methods, 'GET', "number of HTTP GET request"}.
>>> +{httpd_request_methods, 'HEAD', "number of HTTP HEAD request"}.
>>> +{httpd_request_methods, 'MOVE', "number of HTTP MOVE request"}.
>>> +{httpd_request_methods, 'POST', "number of HTTP POST request"}.
>>> +{httpd_request_methods, 'PUT', "number of HTTP PUT request"}.
>>> +
>>> +{httpd_status_codes, '200', "number of HTTP 200 OK response"}.
>>> +{httpd_status_codes, '201', "number of HTTP 201 Created response"}.
>>> +{httpd_status_codes, '202', "number of HTTP 202 Accepted
>>> response"}.
>>> +{httpd_status_codes, '301', "number of HTTP 301 Moved Permanently
>>> response"}.
>>> +{httpd_status_codes, '304', "number of HTTP 304 Not Modified
>>> response"}.
>>> +{httpd_status_codes, '400', "number of HTTP 400 Bad Request
>>> response"}.
>>> +{httpd_status_codes, '401', "number of HTTP 401 Unauthorized
>>> response"}.
>>> +{httpd_status_codes, '403', "number of HTTP 403 Forbidden
>>> response"}.
>>> +{httpd_status_codes, '404', "number of HTTP 404 Not Found
>>> response"}.
>>> +{httpd_status_codes, '405', "number of HTTP 405 Method Not
>>> Allowed response"}.
>>> +{httpd_status_codes, '409', "number of HTTP 409 Conflict
>>> response"}.
>>> +{httpd_status_codes, '412', "number of HTTP 412 Precondition
>>> Failed response"}.
>>> +{httpd_status_codes, '500', "number of HTTP 500 Internal Server
>>> Error response"}.
>>>
>>>
>>
>
Re: svn commit: r829304 - in /couchdb/trunk: etc/couchdb/default.ini.tpl.in license.skip src/couchdb/couch_stats_aggregator.erl src/couchdb/couch_util.erl src/couchdb/priv/Makefile.am src/couchdb/priv/stat_descriptions.cfg
Posted by Robert Dionne <di...@dionne-associates.com>.
yea it broke. It looks like the problem is couch_util:priv_dir() fails
when couch is not running. Poking into this a bit I see another
related problem:
If line 79 in couch_server_sup ever executes:
filename:join(code:priv_dir(couch), "lib");
It fails because code:priv_dir(couch) returns a bad name error. You
can see this by commenting out util_driver_dir in the config file. I
suspect this might relate to a private directory not being specified
when the app is packaged? Perhaps there's something missing in
couch.app?
On Oct 24, 2009, at 6:51 AM, Sebastian Cohnen wrote:
> Hey devs,
>
> maybe you already are aware of it, but after your last commit,
> davisp, make check (after make clean) fails:
>
> test/etap/121-stats-aggregates............FAILED tests 1-17
> Failed 17/17 tests, 0.00% okay
> Failed Test Stat Wstat Total Fail List of Failed
> -------------------------------------------------------------------------------
> test/etap/121-stats-aggregates.t 17 17 1-17
> Failed 1/29 test scripts. 17/367 subtests failed.
> Files=29, Tests=367, 63 wallclock secs (22.23 cusr + 3.03 csys =
> 25.26 CPU)
> Failed 1/29 test programs. 17/367 subtests failed.
> make: *** [check] Error 255
>
> The browser test suite is all green - at least in the second run. In
> the first run the stats-test was failing (I accidentally closed the
> browser window and I can't remember the exact error message, sorry)
>
>
> Sebastian / tisba
>
> On 24.10.2009, at 06:14, davisp@apache.org wrote:
>
>> Author: davisp
>> Date: Sat Oct 24 04:14:12 2009
>> New Revision: 829304
>>
>> URL: http://svn.apache.org/viewvc?rev=829304&view=rev
>> Log:
>> Move stat descriptions out of the config.
>>
>> This lists stat descriptions in an Erlang term file to avoid
>> abusing the config system. Uses a file in CouchDB's priv directory
>> that is a list of three-tuple terms.
>>
>>
>> Added:
>> couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg
>> Modified:
>> couchdb/trunk/etc/couchdb/default.ini.tpl.in
>> couchdb/trunk/license.skip
>> couchdb/trunk/src/couchdb/couch_stats_aggregator.erl
>> couchdb/trunk/src/couchdb/couch_util.erl
>> couchdb/trunk/src/couchdb/priv/Makefile.am
>>
>> Modified: couchdb/trunk/etc/couchdb/default.ini.tpl.in
>> URL: http://svn.apache.org/viewvc/couchdb/trunk/etc/couchdb/default.ini.tpl.in?rev=829304&r1=829303&r2=829304&view=diff
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =====================================================================
>> --- couchdb/trunk/etc/couchdb/default.ini.tpl.in (original)
>> +++ couchdb/trunk/etc/couchdb/default.ini.tpl.in Sat Oct 24
>> 04:14:12 2009
>> @@ -112,40 +112,3 @@
>> ; sample intervals are in seconds
>> samples = [0, 60, 300, 900]
>>
>> -; Style guide for descriptions: Start with a lowercase letter & do
>> not add
>> -; a trailing full-stop / period.
>> -; Please keep this in alphabetical order.
>> -[stats_descriptions]
>> -{couchdb, database_writes} = number of times a database was changed
>> -{couchdb, database_reads} = number of times a document was read
>> from a database
>> -{couchdb, open_databases} = number of open databases
>> -{couchdb, open_os_files} = number of file descriptors CouchDB has
>> open
>> -{couchdb, request_time} = length of a request inside CouchDB
>> without MochiWeb
>> -
>> -{httpd, bulk_requests} = number of bulk requests
>> -{httpd, requests} = number of HTTP requests
>> -{httpd, temporary_view_reads} = number of temporary view reads
>> -{httpd, view_reads} = number of view reads
>> -{httpd, clients_requesting_changes} = number of clients for
>> continuous _changes
>> -
>> -{httpd_request_methods, 'COPY'} = number of HTTP COPY requests
>> -{httpd_request_methods, 'DELETE'} = number of HTTP DELETE requests
>> -{httpd_request_methods, 'GET'} = number of HTTP GET requests
>> -{httpd_request_methods, 'HEAD'} = number of HTTP HEAD requests
>> -{httpd_request_methods, 'MOVE'} = number of HTTP MOVE requests
>> -{httpd_request_methods, 'POST'} = number of HTTP POST requests
>> -{httpd_request_methods, 'PUT'} = number of HTTP PUT requests
>> -
>> -{httpd_status_codes, '200'} = number of HTTP 200 OK responses
>> -{httpd_status_codes, '201'} = number of HTTP 201 Created responses
>> -{httpd_status_codes, '202'} = number of HTTP 202 Accepted responses
>> -{httpd_status_codes, '301'} = number of HTTP 301 Moved Permanently
>> responses
>> -{httpd_status_codes, '304'} = number of HTTP 304 Not Modified
>> responses
>> -{httpd_status_codes, '400'} = number of HTTP 400 Bad Request
>> responses
>> -{httpd_status_codes, '401'} = number of HTTP 401 Unauthorized
>> responses
>> -{httpd_status_codes, '403'} = number of HTTP 403 Forbidden responses
>> -{httpd_status_codes, '404'} = number of HTTP 404 Not Found responses
>> -{httpd_status_codes, '405'} = number of HTTP 405 Method Not
>> Allowed responses
>> -{httpd_status_codes, '409'} = number of HTTP 409 Conflict responses
>> -{httpd_status_codes, '412'} = number of HTTP 412 Precondition
>> Failed responses
>> -{httpd_status_codes, '500'} = number of HTTP 500 Internal Server
>> Error responses
>>
>> Modified: couchdb/trunk/license.skip
>> URL: http://svn.apache.org/viewvc/couchdb/trunk/license.skip?rev=829304&r1=829303&r2=829304&view=diff
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =====================================================================
>> --- couchdb/trunk/license.skip (original)
>> +++ couchdb/trunk/license.skip Sat Oct 24 04:14:12 2009
>> @@ -64,6 +64,7 @@
>> ^src/couchdb/priv/Makefile
>> ^src/couchdb/priv/Makefile.in
>> ^src/couchdb/priv/couchspawnkillable
>> +^src/couchdb/priv/stat_descriptions.cfg
>> ^src/erlang-oauth/*
>> ^src/etap/*
>> ^src/ibrowse/*
>>
>> Modified: couchdb/trunk/src/couchdb/couch_stats_aggregator.erl
>> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_stats_aggregator.erl?rev=829304&r1=829303&r2=829304&view=diff
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =====================================================================
>> --- couchdb/trunk/src/couchdb/couch_stats_aggregator.erl (original)
>> +++ couchdb/trunk/src/couchdb/couch_stats_aggregator.erl Sat Oct 24
>> 04:14:12 2009
>> @@ -90,16 +90,17 @@
>> ets:new(?MODULE, [named_table, set, protected]),
>> SampleStr = couch_config:get("stats", "samples", "[0]"),
>> {ok, Samples} = couch_util:parse_term(SampleStr),
>> - lists:foreach(fun({KeyStr, Value}) ->
>> - {ok, Key} = couch_util:parse_term(KeyStr),
>> + PrivDir = couch_util:priv_dir(),
>> + {ok, Descs} = file:consult(filename:join(PrivDir,
>> "stat_descriptions.cfg")),
>> + lists:foreach(fun({Sect, Key, Value}) ->
>> lists:foreach(fun(Secs) ->
>> Agg = #aggregate{
>> description=list_to_binary(Value),
>> seconds=Secs
>> },
>> - ets:insert(?MODULE, {{Key, Secs}, Agg})
>> + ets:insert(?MODULE, {{{Sect, Key}, Secs}, Agg})
>> end, Samples)
>> - end, couch_config:get("stats_descriptions")),
>> + end, Descs),
>>
>> Self = self(),
>> ok = couch_config:register(
>>
>> Modified: couchdb/trunk/src/couchdb/couch_util.erl
>> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_util.erl?rev=829304&r1=829303&r2=829304&view=diff
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =====================================================================
>> --- couchdb/trunk/src/couchdb/couch_util.erl (original)
>> +++ couchdb/trunk/src/couchdb/couch_util.erl Sat Oct 24 04:14:12 2009
>> @@ -12,7 +12,7 @@
>>
>> -module(couch_util).
>>
>> --export([start_driver/1,terminate_linked/1]).
>> +-export([priv_dir/0, start_driver/1,terminate_linked/1]).
>> -export([should_flush/0, should_flush/1, to_existing_atom/1]).
>> -export([rand32/0, implode/2, collate/2, collate/3]).
>> -export([abs_pathname/1,abs_pathname/2, trim/1, ascii_lower/1]).
>> @@ -27,6 +27,16 @@
>> % arbitrarily chosen amount of memory to use before flushing to disk
>> -define(FLUSH_MAX_MEM, 10000000).
>>
>> +priv_dir() ->
>> + case code:priv_dir(couch) of
>> + {error, bad_name} ->
>> + % small hack, in dev mode "app" is couchdb. Fixing
>> requires
>> + % renaming src/couch to src/couch. Not really worth
>> the hassle.
>> + % -Damien
>> + code:priv_dir(couchdb);
>> + Dir -> Dir
>> + end.
>> +
>> start_driver(LibDir) ->
>> case erl_ddll:load_driver(LibDir, "couch_erl_driver") of
>> ok ->
>>
>> Modified: couchdb/trunk/src/couchdb/priv/Makefile.am
>> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/priv/Makefile.am?rev=829304&r1=829303&r2=829304&view=diff
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =====================================================================
>> --- couchdb/trunk/src/couchdb/priv/Makefile.am (original)
>> +++ couchdb/trunk/src/couchdb/priv/Makefile.am Sat Oct 24 04:14:12
>> 2009
>> @@ -13,8 +13,9 @@
>> couchlibdir = $(localerlanglibdir)/couch-$(version)
>> couchprivdir = $(couchlibdir)/priv
>>
>> -EXTRA_DIST = couchspawnkillable.sh
>> +EXTRA_DIST = couchspawnkillable.sh stat_descriptions.cfg
>>
>> +couchpriv_DATA = stat_descriptions.cfg
>> couchpriv_PROGRAMS = couchspawnkillable
>>
>> if WINDOWS
>>
>> Added: couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg
>> URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg?rev=829304&view=auto
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =
>> =====================================================================
>> --- couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg (added)
>> +++ couchdb/trunk/src/couchdb/priv/stat_descriptions.cfg Sat Oct 24
>> 04:14:12 2009
>> @@ -0,0 +1,37 @@
>> +% Style guide for descriptions: Start with a lowercase letter & do
>> not add
>> +% a trailing full-stop / period
>> +% Please keep this in alphabetical order
>> +
>> +{couchdb, database_writes, "number of times a database was change"}.
>> +{couchdb, database_reads, "number of times a document was read
>> from a databas"}.
>> +{couchdb, open_databases, "number of open database"}.
>> +{couchdb, open_os_files, "number of file descriptors CouchDB has
>> ope"}.
>> +{couchdb, request_time, "length of a request inside CouchDB
>> without MochiWe"}.
>> +
>> +{httpd, bulk_requests, "number of bulk request"}.
>> +{httpd, requests, "number of HTTP request"}.
>> +{httpd, temporary_view_reads, "number of temporary view read"}.
>> +{httpd, view_reads, "number of view read"}.
>> +{httpd, clients_requesting_changes, "number of clients for
>> continuous _change"}.
>> +
>> +{httpd_request_methods, 'COPY', "number of HTTP COPY request"}.
>> +{httpd_request_methods, 'DELETE', "number of HTTP DELETE request"}.
>> +{httpd_request_methods, 'GET', "number of HTTP GET request"}.
>> +{httpd_request_methods, 'HEAD', "number of HTTP HEAD request"}.
>> +{httpd_request_methods, 'MOVE', "number of HTTP MOVE request"}.
>> +{httpd_request_methods, 'POST', "number of HTTP POST request"}.
>> +{httpd_request_methods, 'PUT', "number of HTTP PUT request"}.
>> +
>> +{httpd_status_codes, '200', "number of HTTP 200 OK response"}.
>> +{httpd_status_codes, '201', "number of HTTP 201 Created response"}.
>> +{httpd_status_codes, '202', "number of HTTP 202 Accepted response"}.
>> +{httpd_status_codes, '301', "number of HTTP 301 Moved Permanently
>> response"}.
>> +{httpd_status_codes, '304', "number of HTTP 304 Not Modified
>> response"}.
>> +{httpd_status_codes, '400', "number of HTTP 400 Bad Request
>> response"}.
>> +{httpd_status_codes, '401', "number of HTTP 401 Unauthorized
>> response"}.
>> +{httpd_status_codes, '403', "number of HTTP 403 Forbidden
>> response"}.
>> +{httpd_status_codes, '404', "number of HTTP 404 Not Found
>> response"}.
>> +{httpd_status_codes, '405', "number of HTTP 405 Method Not Allowed
>> response"}.
>> +{httpd_status_codes, '409', "number of HTTP 409 Conflict response"}.
>> +{httpd_status_codes, '412', "number of HTTP 412 Precondition
>> Failed response"}.
>> +{httpd_status_codes, '500', "number of HTTP 500 Internal Server
>> Error response"}.
>>
>>
>