Live feature.

Instead of pulling all metrics with http, this feature allows Seyren to listen carbon relay (see pickle protocol http://graphite.readthedocs.org/en/latest/feeding-carbon.html).

I introduce live package where CarbonPickleListener, the TCP server (quick implementation), is located.
It reads inputstream socket, decode pickle protocol (with the help of jython, see maven dependency), and add a MetricsTask to an executor.
MetricsTask find all checks in MongoDb that are enabled and live, both with true value.
And of course, I re-use CheckRunner to store/send alert.

In "Check Dialog" UI, if "live" option is checked, the method for checking the check will be that described above, otherwise a 'classic' http check is used (default behaviour), it is exclusive.

Users are responsible to filter metrics in relay-rules.conf and not send all metrics to Seyren (to avoid performance problem).
Example: How to send to Seyren only 'load' metrics, edit /opt/graphite/conf/relay-rules.conf like and restart carbon-relay:

[seyren]
pattern = .*load.*
destinations = [ip seyren]:[port]:[instance]
continue = true

[default]
default = true
destinations = [ip carbon cache]:[port]:[instance]

Thera are some limitations:
* carbon-relay must have access Seyren (while http is easiest)
* metric sended via carbon-relay are raw value, you can not access to graphite functions

But with this feature, Seyren is more reactive.

Enjoy :)
Live feature documentation
Merge pull request #142 from obazoud/live

Live feature
Update README.md
Add IRCcat notification service courtesy of @gehel. Original code from his PR #98
Fix tests when SEYREN_URL env var is set (we should probably follow a similar pattern (or a better one?) for other vars)
Attempt to fix #145 with locale independant test
Make formatting of BigDecimal instance locale-invariant
Merge pull request #146 from perbergland-findwise/make_formatting_locale_invariant

Make formatting of BigDecimal instance locale-invariant
Remove code dependencies on java 7
Make a one jar file monolithic #149

Use tomcat7-maven-plugin to build an executable jar, see target/seyren-web-1.0.0-SNAPSHOT-war-exec.jar.

% java -jar seyren-web-1.0.0-SNAPSHOT-war-exec.jar
...
INFO: Starting Servlet Engine: Apache Tomcat/7.0.37
...
INFO: Starting ProtocolHandler ["http-bio-8080"]

Implementation notes:
- tomcat7-maven-plugin 2.2 does not work
- You can change http port with: jar target/seyren-web-1.0.0-SNAPSHOT-war-exec.jar -httpPort=9090
- tomcat7-maven-plugin creates seyren-web-1.0.0-SNAPSHOT-war-exec.jar but installs seyren-web-1.0.0-SNAPSHOT-exec-war.jar -> wierd
Merge pull request #150 from obazoud/one_jar

Make a one jar file monolithic #149
No longer need jetty runner to execute standalone jar
Executable jar does not open with /seyren context
Use 'GRAPHITE_REFRESH' system property to change the fixed period (in ms) between checks
Merge pull request #152 from obazoud/fixed_period

Use 'GRAPHITE_REFRESH' system property to change the fixed period
Merge branch 'master' of https://github.com/scobal/seyren