Kudithipudi.Org

January 26, 2011

HOW TO : Combining Perl and Zoho to produce reports

Filed under: HOWTO,Programming,Technology,Web — Vinay @ 11:00 pm

This HOW TO is more for my notes. We had a request at work, where we had to parse some log files and create a graph from the data in the log files.

The log files looked like this

0m0.107s
0m0.022s
0m0.015s
2011-01-05_02_22
0m0.102s
0m0.024s
0m0.014s
2011-01-05_02_23

I wrote the following perl script to get the log file to look as such

| 0m0.107s| 0m0.022s| 0m0.015s| 2011-01-05 | 02:22

| 0m0.102s| 0m0.024s| 0m0.014s| 2011-01-05 | 02:23 

perl script

#!/usr/bin/perl
# Modules to load
# use strict;
use warnings;

# Variables
my $inputFile = 'input.txt';
my $version = 0.1;

my $logFile = 'parsed_input.csv';

# Sub Functions
sub Log($$$);
sub Trim($);

# Clear the screen
system $^O eq 'MSWin32' ? 'cls' : 'clear';

# Open the output log file
open(LOGFILE,"> $logFile") || die "Couldn't open $logFile, exiting $!\n";

# Open the input file
open(INPUTFILE,"< $inputFile") || die "Couldn't open $inputFile, exiting $!\n";

# Process the input file, one line at a time
while (defined ($line = <INPUTFILE>)) {
	chomp $line;
	# Check for blank line
	if ($line =~ /^$/)
		{
			# Start a new line in the output
			print LOGFILE "\n";
		}
	else
		{
			# Split the date and time
			if ($line =~ /2011/)
				{
					@date = split (/_/,$line);
					print LOGFILE "| $date[0] | $date[1]:$date[2]";
				}
			else
				{
					# Write the value to the output
					print LOGFILE "| $line";
				}
		}
	}
I then took the parsed log files and imported them into the cloud based reporting engine provided by Zoho at http://reports.zoho.com

The final result are these reports

SERVER1

SERVER2

Did I say, I love technology? :)

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress