Calamari UI,Yummy Squid - A Squid Proxy Server Reporting Application
Calamari is a reporting front-end to the Squid Proxy Cache Server's access log files. The application consists of two parts, a web service back-end that provides restful like url's to query data and import log files into the database and a front-end to display the data.
Calamari Views
Calamari has four views on the squid log files. The views are:
- Pie Chart View - Which shows top 10 sites and users by hits and bytes for the selected time period,
- Time Series View - Which shows the hits and bytes used over the selected time period for the selected user and domain.
- Tabular View - Which is used to get more fine grain information on a particular set of search criteria.
- Administration View - A view for configuring the Calamari front-end
The first two graphical views are supposed to help the user identify an period or occurrence of interest and the tabular view is then meant to allow for a more detailed interrogation of the data relating to the period of interest.
Pie Chart View
The pie chart view is quite simple it shows the top 10 users, and sites by bytes and hits for the period under review. There is only on view control on this form and that is the date range control.

Time Series View
The time series view is designed to give the user a view of web activities over a period of time. The maximum length of time that can be reasonably viewed is limited by the X axis. In the next version of Calamari, a month time series will be introduced and the form revamped to allow drill down from year, to month, to week and day.
The form has two control, the date range control and a chart parameter control. The chart show activities by hits and bytes for a selected domain or user. The chart parameters enable the user to change the report criteria.

Tabular View
This is a table view on the log entries. A user can use this to get more detailed information from the log files. Due to memory limitations, the user should ensure data is filtered before attempting to load large amounts of data. In future releases this controls performance will be enhanced to enable it to handle more data.

There are a number of controls on the tabular view, namely:
- Date Range - This changes the time period for which data is selected,
- Report Type - The type of query to run. There are a number of reports:
- User - Select log entries based on username,
- Domain - Select entries based on a domain name,
- Content Type - Select entries based on content-type,
- All - Select all entries for date range.
- Show/Hide Columns - Select columns to show/hide. This control has no effect if the data has been aggregated. You can show/hide the following columns:
- Server Info,
- Access Date,
- Elapsed Time, time taken to service request
- Remote Host, the host the request came from,
- Code Status, this is the cache hit/miss status,
- Method, the HTML method,
- Parameters, the url is split based on the fist occurrence of /. Anything before is considered the domain.
- rfc931, this is the user name,
- Peer Status/Peer Host,
- Content-type
- Domain, the domain which is the target of this request,
- Bytes, the size of the request,
- Hits, this is meant for the aggregation functions. Showing hits for a single log record is always 1.
- Bytes(Kilobytes), this is a conversion from bytes to kilobytes.
- Select Summary Level - This control allows the user to aggregate the current dataset that was obtain using the date range and report type with parameters control. This makes the detail more digestible. The following columns can be used for aggregation:
- Peer Status/Peer Host,
- RFC931 - Username,
- Content Type,
- Server Info,
- Remote Host,
- Code Status,
- Domain,
- Method,
- Parameters - not very useful,
- Date -aggregate by date
- Date/Hour - aggregate by date/hour. The table cell for displaying the Access date does not show hour currently although the data will be aggregated by hour.
The table that displays the data is sortable and column order can be changed by dragging and dropping. The sort order can be changed from ascending to descending by clicking on the column header twice. Essentially the sort order alternates between clicks on any column.
Administration View

This view allows the user to:
- Initialise Database - Initialise the Calamari database, and drop an existing database if desired. Initialising the database is necessary before data can be imported.
- Log File Folder - Specify the log file folder location. This is the folder the back-end server will look in to find the access log files,
- Backend Server Address - The URL of the back-end server that Calamari must contact for its services,
- Import Data - Start importing data on the backend server. The server will load any files its finds that have access in the name. It will unzip any compressed files. The application should skip files already imported or any lines already imported.
- Change Date Range - This will change the date range to show which files were imported on a specified date range.
