summaryrefslogtreecommitdiff
path: root/src/couch_stats/README.md
blob: 53c9ea4f4e9c18af2de547fd8bcdd4c5ac2caa34 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# couch_stats

couch_stats is a simple statistics collection app for Erlang applications. Its
core API is a thin wrapper around a stat storage library (currently Folsom,) but
abstracting over that library provides several benefits:

* All references to stat storage are in one place, so it's easy to swap
  the module out.

* Some common patterns, such as tying a process's lifetime to a counter value,
  are straightforward to support.

* Configuration can be managed in a single place - for example, it's much easier
  to ensure that all histogram metrics use a 10-second sliding window if those
  metrics are instantiated/configured centrally.

## Adding a metric

1. Write a stat description file. See `priv/descriptions.cfg for an example.
  * The metric name should be of type `[atom()]`.
  * The type should be one of `counter`, `gauge`, or `histogram`.

  If you don't add your metric to a description file, your metric will be
  accessible via `couch_stats:sample/1`, but it won't be read by the stats
  collector and therefore won't be available to HTTP `_stats` requests, etc.

2. Tell couch_stats to use your description file via application configuration.

2. Instrument your code with the helper functions in `couch_stats.erl`.