Add a collectd/web-service role for monitoring site latency.

This commit is contained in:
Ralph Bean 2014-10-01 19:20:12 +00:00
parent 2e3ebf1ab4
commit 091dc9eb1c
3 changed files with 47 additions and 0 deletions

View file

@ -0,0 +1,14 @@
---
- name: Copy in /usr/local/bin/web-service-collectd
template: >
src=web-service-collectd.py
dest="/usr/local/bin/web-service-collectd-{{ site }}"
mode=0755
notify: restart collectd
- name: Copy in /etc/collectd.d/web-service.conf
template: >
src=web-service.conf
dest=/etc/collectd.d/{{ site }}.conf
notify: restart collectd

View file

@ -0,0 +1,29 @@
#!/usr/bin/env python
""" monitor website request times for collectd """
import time
import urllib
hostname = socket.gethostname() # Use FQDN, I guess..
def get_loadtime(url):
start = time.time()
_ = urllib.urlopen(url)
return time.time() - start
if __name__ == '__main__':
site = "{{ site }}"
url = "{{ url }}"
interval = int("{{ interval }}")
try:
loadtime = get_loadtime(url)
timestamp = int(time.time())
print "PUTVAL %s/%s/delay-%s interval=%i %i:%i" % (
hostname, 'web', site, interval, timestamp, loadtime)
sleep(interval)
except KeyboardInterrupt:
pass

View file

@ -0,0 +1,4 @@
LoadPlugin exec
<Plugin exec>
Exec "collectd" "/usr/local/bin/web-service-collectd-{{ site }}"
</Plugin>