<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>src/couchdb/priv/stat_descriptions.cfg</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -112,40 +112,3 @@ rate = 1000
 ; sample intervals are in seconds
 samples = [0, 60, 300, 900]
 
-; Style guide for descriptions: Start with a lowercase letter &amp; 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</diff>
      <filename>etc/couchdb/default.ini.tpl.in</filename>
    </modified>
    <modified>
      <diff>@@ -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/*</diff>
      <filename>license.skip</filename>
    </modified>
    <modified>
      <diff>@@ -90,16 +90,17 @@ init(_) -&gt;
     ets:new(?MODULE, [named_table, set, protected]),
     SampleStr = couch_config:get(&quot;stats&quot;, &quot;samples&quot;, &quot;[0]&quot;),
     {ok, Samples} = couch_util:parse_term(SampleStr),
-    lists:foreach(fun({KeyStr, Value}) -&gt;
-        {ok, Key} = couch_util:parse_term(KeyStr),
+    PrivDir = couch_util:priv_dir(),
+    {ok, Descs} = file:consult(filename:join(PrivDir, &quot;stat_descriptions.cfg&quot;)),
+    lists:foreach(fun({Sect, Key, Value}) -&gt;
         lists:foreach(fun(Secs) -&gt;
             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(&quot;stats_descriptions&quot;)),
+    end, Descs),
     
     Self = self(),
     ok = couch_config:register(</diff>
      <filename>src/couchdb/couch_stats_aggregator.erl</filename>
    </modified>
    <modified>
      <diff>@@ -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() -&gt;
+    case code:priv_dir(couch) of
+        {error, bad_name} -&gt;
+            % small hack, in dev mode &quot;app&quot; is couchdb. Fixing requires
+            % renaming src/couch to src/couch. Not really worth the hassle.
+            % -Damien
+            code:priv_dir(couchdb);
+        Dir -&gt; Dir
+    end.
+
 start_driver(LibDir) -&gt;
     case erl_ddll:load_driver(LibDir, &quot;couch_erl_driver&quot;) of
     ok -&gt;</diff>
      <filename>src/couchdb/couch_util.erl</filename>
    </modified>
    <modified>
      <diff>@@ -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</diff>
      <filename>src/couchdb/priv/Makefile.am</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>da251ee151557b67c375a2cdf17d248bcf7384eb</id>
    </parent>
  </parents>
  <author>
    <name>davisp</name>
    <email>davisp@13f79535-47bb-0310-9956-ffa450edef68</email>
  </author>
  <url>http://github.com/halorgium/couchdb/commit/26b783a85b8871d9c0c1d069e90dfba1d56143fc</url>
  <id>26b783a85b8871d9c0c1d069e90dfba1d56143fc</id>
  <committed-date>2009-10-23T21:14:12-07:00</committed-date>
  <authored-date>2009-10-23T21:14:12-07:00</authored-date>
  <message>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.



git-svn-id: http://svn.apache.org/repos/asf/couchdb/trunk@829304 13f79535-47bb-0310-9956-ffa450edef68</message>
  <tree>0fdb172d1a1a54374d4c51eaabdcb7a3357c03c6</tree>
  <committer>
    <name>davisp</name>
    <email>davisp@13f79535-47bb-0310-9956-ffa450edef68</email>
  </committer>
</commit>
