--- /dev/null
+tilelog Cookbook
+================
+This cookbook contains the tile log processing / analysis tools. This includes creating the tile log summaries of the number of tiles downloaded from the tile caches.
+
+Requirements
+------------
+
+#### cookbooks
+- `tools` - tilelog needs the OSM tools cookbook.
+- `git` - tilelog needs the OSM git cookbook to download the tile log analysis source.
+
+#### packages
+- `gcc` - for building the analysis tool.
+- `make` - for building the analysis tool.
+- `autoconf` - for building the analysis tool.
+- `automake` - for building the analysis tool.
+- `libboost-filesystem-dev` - a dependency of the analysis tool.
+- `libboost-system-dev` - a dependency of the analysis tool.
+- `libboost-program-options-dev` - a dependency of the analysis tool.
+
+
+Attributes
+----------
+
+#### tilelog::default
+<table>
+ <tr>
+ <th>Key</th>
+ <th>Type</th>
+ <th>Description</th>
+ <th>Default</th>
+ </tr>
+ <tr>
+ <td><tt>[:tilelog][:source_directory]</tt></td>
+ <td>String</td>
+ <td>Directory in which the source is checked out and built.</td>
+ <td><tt>/opt/tilelog</tt></td>
+ </tr>
+ <tr>
+ <td><tt>[:tilelog][:input_directory]</tt></td>
+ <td>String</td>
+ <td>Directory in which the input log files can be found.</td>
+ <td><tt>/store/logs/tile.openstreetmap.org</tt></td>
+ </tr>
+ <tr>
+ <td><tt>[:tilelog][:source_directory]</tt></td>
+ <td>String</td>
+ <td>Directory in which the output analysis files are to be placed.</td>
+ <td><tt>/store/planet/tile_logs</tt></td>
+ </tr>
+</table>
+
+Usage
+-----
+#### tilelog::default
+TODO: Write usage instructions for each cookbook.
+
+e.g.
+Just include `tilelog` in your node's `run_list`:
+
+```json
+{
+ "name":"my_node",
+ "run_list": [
+ "recipe[tilelog]"
+ ]
+}
+```
+
+License and Authors
+-------------------
+Released under the [Apache 2.0 license](http://www.apache.org/licenses/LICENSE-2.0).
+
+Authors: Matt Amos
--- /dev/null
+#
+# Cookbook Name:: tilelog
+# Recipe:: default
+#
+# Copyright 2014, OpenStreetMap Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+include_recipe "tools"
+
+package "gcc"
+package "make"
+package "autoconf"
+package "automake"
+package "libboost-filesystem-dev"
+package "libboost-system-dev"
+package "libboost-program-options-dev"
+
+tilelog_source_directory = node[:tilelog][:source_directory]
+tilelog_input_directory = node[:tilelog][:input_directory]
+tilelog_output_directory = node[:tilelog][:output_directory]
+
+# resources for building the tile analysis binary
+git tilelog_source_directory do
+ action :sync
+ repository "https://github.com/zerebubuth/openstreetmap-tile-analyze.git"
+ revision "live"
+ user "www-data"
+ group "www-data"
+ notifies :run, "execute[tilelog-autogen]", :immediate
+end
+
+execute "tilelog-autogen" do
+ action :nothing
+ command "./autogen.sh"
+ cwd tilelog_source_directory
+ user "www-data"
+ group "www-data"
+ notifies :run, "execute[tilelog-configure]", :immediate
+end
+
+execute "tilelog-configure" do
+ action :nothing
+ command "./configure --with-boost-libdir=/usr/lib"
+ cwd tilelog_source_directory
+ user "www-data"
+ group "www-data"
+ notifies :run, "execute[tilelog-build]", :immediate
+end
+
+execute "tilelog-build" do
+ action :nothing
+ command "make"
+ cwd tilelog_source_directory
+ user "www-data"
+ group "www-data"
+end
+
+# resources for running the tile analysis
+template "/usr/local/bin/tilelog" do
+ source "tilelog.erb"
+ owner "root"
+ group "root"
+ mode 0755
+ variables {
+ :analyze_bin => "#{tilelog_source_directory}/openstreetmap-tile-analyze",
+ :input_dir => tilelog_input_directory,
+ :output_dir => tilelog_output_directory
+ }
+end
+
+template "/etc/cron.d/tilelog" do
+ source "tileog.cron.erb"
+ owner "root"
+ group "root"
+ mode 0644
+end
+
+# resources related to the output of the analysis and where it
+# can be publicly downloaded.
+directory tilelog_output_directory do
+ action :create
+ user "www-data"
+ group "www-data"
+ mode 0755
+end
--- /dev/null
+#!/bin/sh
+
+ANALYZE=<%= @analyze_bin %>
+LOGDIR=<%= @input_dir %>
+OUTDIR=<%= @output_dir %>
+if [ -z "$DATE" ]; then
+ DATE=`date -d "2 days ago" "+%Y-%m-%d"`
+fi
+TMPDIR=`mktemp -d -t tmp.XXXXXXXXX`
+ORIGDIR=`pwd`
+
+clean_up() {
+ cd $ORIGDIR
+ rm -rf $TMPDIR
+}
+
+trap clean_up 0 HUP INT TERM
+cd $TMPDIR
+
+mkdir db
+nice -n 19 $ANALYZE $LOGDIR/*-${DATE}.xz > analyze.log
+if [ -f tiles.txt ]; then
+ nice -n 19 xz -z tiles.txt
+ mv tiles.txt.xz $OUTDIR/tiles-${DATE}.txt.xz
+
+else
+ cat analyze.log
+fi