StatsD: https://github.com/etsy/statsd (node.js)
Graphite: http://graphite.wikidot.com/ (python)
General questions:
- What's more useful? Per feature or per instance (wikiid)
- per feature is dream level, but wikiid is deki
- is hostname good enough to do per instance?
- How to seprrate internal counts from actions that affect external requests
- General facility to log certain prefixed headers at the socket membrane
- Does statsD or graphite or neither provide the ability to aggregate data on the folder (foo.bar) boundary?
Implementation
- Should be able to create StatsD logger statically like log4net logger
- Like log4net, by default it will have a null logger attached
- Can configure statsD server via app.config
- Future
- Add simple routing to support multiple servers
- Add support for filtering
Feature level
Only requests that leave the server?
host.feature.{stat}
- bytes in
- bytes out
- exceptions out or status codes
- verbs?
- elapsed time
- requests/second
Database level
- elapsed
- db response
- exception count
Instance level
- page count
- user count
- file count
- comment count
- file storage size
- db storage size
- db cmds per request
- page views (could be gleaned from feature level, but better at this level)
- dekiscript
- elapsed per function
- count per function
- page render time
Lucene
- index enqueue/sec
- enqueue -> indexed elapsed
- index processing elapsed
- queries per sec (by query endpoint)
- query elapsed (by endpoint)
- result set size