]> git.openstreetmap.org Git - chef.git/commitdiff
tilecache: add basic performance monitor script
authorGrant Slater <git@firefishy.com>
Sat, 4 Apr 2020 21:09:25 +0000 (22:09 +0100)
committerGrant Slater <git@firefishy.com>
Sat, 4 Apr 2020 21:09:25 +0000 (22:09 +0100)
cookbooks/tilecache/files/default/tilecache-curl-time.txt [new file with mode: 0644]
cookbooks/tilecache/recipes/default.rb
cookbooks/tilecache/templates/default/tilecache-curl-time.erb [new file with mode: 0644]

diff --git a/cookbooks/tilecache/files/default/tilecache-curl-time.txt b/cookbooks/tilecache/files/default/tilecache-curl-time.txt
new file mode 100644 (file)
index 0000000..3da02a7
--- /dev/null
@@ -0,0 +1 @@
+%{time_total},%{http_code},%{url_effective},%{time_namelookup},%{time_connect},%{time_appconnect},%{time_pretransfer},%{time_redirect},%{time_starttransfer}\n
index f1bab2e574e8c92e36c27d2b44756506da5427ac..a9952b9f9d41e4d5f2c7f7d68814ab4a4e6249c1 100644 (file)
@@ -30,6 +30,7 @@ package "apache2" do
 end
 
 package %w[
+  curl
   xz-utils
   openssl
 ]
@@ -170,3 +171,37 @@ tilerenders.each do |render|
     conf_variables :host => render[:fqdn]
   end
 end
+
+template "/etc/cron.d/tilecache" do
+  source "cron.erb"
+  owner "root"
+  group "root"
+  mode 0o644
+end
+
+directory "/src/tilecache"
+  owner "root"
+  group "root"
+  mode 0o755
+end
+
+directory "/src/tilecache/data"
+  owner "www-data"
+  group "www-data"
+  mode 0o755
+end
+
+file "/src/tilecache/tilecache-curl-time.txt" do
+  source "tilecache-curl-time.txt"
+  owner "root"
+  group "root"
+  mode 0o755
+end
+
+template "/src/tilecache/tilecache-curl-time" do
+  source "tilecache-curl-time.erb"
+  owner "root"
+  group "root"
+  mode 0o755
+  variables :caches => tilecaches, :renders => tilerenders
+end
diff --git a/cookbooks/tilecache/templates/default/tilecache-curl-time.erb b/cookbooks/tilecache/templates/default/tilecache-curl-time.erb
new file mode 100644 (file)
index 0000000..cc066c0
--- /dev/null
@@ -0,0 +1,38 @@
+#!/bin/bash
+mkdir -p /src/tilecache/data/$(date --utc "+%Y/%m")
+<% @caches.each do |cache| -%>
+<% if cache[:hostname] != node[:hostname] -%>
+<% cache.ipaddresses(:family => :inet, :role => :external).sort.each do |address| -%>
+    curl -w "@/src/tilecache/tilecache-curl-time.txt" -o /dev/null -s -k -4 \
+    'https://<%= cache[:hostname] %>/19/262106/174485.png' \
+    -H 'authority: c.tile.openstreetmap.org' \
+    -H 'sec-fetch-dest: image' \
+    -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36' \
+    -H 'dnt: 1' \
+    -H 'accept: image/webp,image/apng,image/*,*/*;q=0.8' \
+    -H 'sec-fetch-site: same-site' \
+    -H 'sec-fetch-mode: no-cors' \
+    -H 'referer: https://www.openstreetmap.org/' \
+    -H 'accept-language: en-GB,en-US;q=0.9,en;q=0.8' \
+    --compressed | tee -a /src/tilecache/data/$(date --utc "+%Y/%m")/tilecache-<%= render[:hostname] %>-$(date --utc --iso-8601).txt
+<% end -%>
+<% end -%>
+<% end -%>
+<% @renders.each do |render| -%>
+<% if render[:hostname] != node[:hostname] -%>
+<% render.ipaddresses(:family => :inet, :role => :external).sort.each do |address| -%>
+      curl -w "@/src/tilecache/tilecache-curl-time.txt" -o /dev/null -s -k -4 \
+      'https://<%= render[:hostname] %>/19/262106/174485.png' \
+      -H 'authority: c.tile.openstreetmap.org' \
+      -H 'sec-fetch-dest: image' \
+      -H 'user-agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36' \
+      -H 'dnt: 1' \
+      -H 'accept: image/webp,image/apng,image/*,*/*;q=0.8' \
+      -H 'sec-fetch-site: same-site' \
+      -H 'sec-fetch-mode: no-cors' \
+      -H 'referer: https://www.openstreetmap.org/' \
+      -H 'accept-language: en-GB,en-US;q=0.9,en;q=0.8' \
+      --compressed | tee -a /src/tilecache/data/$(date --utc "+%Y/%m")/render-<%= render[:hostname] %>-$(date --utc --iso-8601).txt
+<% end -%>
+<% end -%>
+<% end -%>