Add a collectd/web-service role for monitoring site latency.
This commit is contained in:
parent
2e3ebf1ab4
commit
091dc9eb1c
3 changed files with 47 additions and 0 deletions
14
roles/collectd/web-service/tasks/main.yml
Normal file
14
roles/collectd/web-service/tasks/main.yml
Normal 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
|
29
roles/collectd/web-service/templates/web-service-collectd.py
Normal file
29
roles/collectd/web-service/templates/web-service-collectd.py
Normal 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
|
4
roles/collectd/web-service/templates/web-service.conf
Normal file
4
roles/collectd/web-service/templates/web-service.conf
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
LoadPlugin exec
|
||||||
|
<Plugin exec>
|
||||||
|
Exec "collectd" "/usr/local/bin/web-service-collectd-{{ site }}"
|
||||||
|
</Plugin>
|
Loading…
Add table
Add a link
Reference in a new issue