Sean Dague fcc4dd4995 add utility to htmlify screen logs for devstack runs
this adds a wsgi application which processes all the txt.gz log
files and htmlifies them on the fly before sending them to the
user. It uses content negotiation to only do this if the client
says it Accepts text/html, otherwise it just dumps them back out
as text/plain.

In either case the content is compressed with mod_deflate, which
provides a 15x-20x bandwidth savings vs. if we left it
uncompressed on the wire.

Should get more testing before general deployment, but this is
getting close to the approach I think we want to use.

This enables the functionality on a new logs-dev.openstack.org
vhost so that we can do live testing that this works before
switching over the main site to it.

Change-Id: I12a06c4b55be05fb8060b76f5aea9ebc801c0537
2013-07-23 15:27:37 -04:00

48 lines
1.5 KiB
Plaintext

# -*- apache -*-
# ************************************
# Managed by Puppet
# ************************************
NameVirtualHost <%= vhost_name %>:<%= port %>
<VirtualHost <%= vhost_name %>:<%= port %>>
ServerName <%= srvname %>
<% if serveraliases.is_a? Array -%>
<% serveraliases.each do |name| -%><%= " ServerAlias #{name}\n" %><% end -%>
<% elsif serveraliases != '' -%>
<%= " ServerAlias #{serveraliases}" %>
<% end -%>
DocumentRoot <%= docroot %>
RewriteEngine On
# rewrite all txt.gz files to map to our internal htmlify wsgi app
RewriteRule ^/(.*\.txt\.gz)$ /htmlify/$1 [QSA,L,PT]
WSGIScriptAlias /htmlify /usr/local/bin/htmlify-screen-log.py
# use Apache to compress the results afterwards, to save on the wire
# it's approx 18x savings of wire traffic to compress. We need to
# compress by content types that htmlify can produce
AddOutputFilterByType DEFLATE text/plain text/html
<FilesMatch \.html\.gz$>
ForceType text/html
AddDefaultCharset UTF-8
AddEncoding x-gzip gz
</FilesMatch>
<Directory <%= docroot %>>
Options <%= options %>
AllowOverride None
Order allow,deny
allow from all
</Directory>
<Directory <%= docroot %>/*/*/*/gate-tempest-devstack*/*>
ReadmeName /help/tempest-overview.html
</Directory>
<Directory <%= docroot %>/*/*/*/gate-tempest-devstack*/*/logs/>
ReadmeName /help/tempest-logs.html
</Directory>
ErrorLog /var/log/apache2/<%= name %>_error.log
LogLevel warn
CustomLog /var/log/apache2/<%= name %>_access.log combined
ServerSignature Off
</VirtualHost>