If you remove a lines starting with "BEGIN_" or "END_", AWStats will find your file "corrupted" so you must not change
those two kinds of lines.
You can change, add or remove any line that is in any sections but if you do this, you must also update the MAP section
(lines between BEGIN_MAP and END_MAP) because this section contains the offset in file of each other sections for
direct I/O access. If history file is the last one, you can easily do that by removing completely the MAP section and run an
update process. Like that AWStats will rewrite the history file and the MAP section will be rewritten (MAP section is not
read by update process, only written). You do this at your own risk. The main risk is that some charts will report wrong
values or be unavailable.
FAQ-SET050 : ERROR "MISSING $ ON LOOP VARIABLE ..."
PROBLEM:
When I run awstats.pl from command line, I get:
"Missing $ on loop variable at awstats.pl line xxx"
SOLUTION:
Problem is in your Perl interpreter. Try to install or reinstall a more recent/stable Perl interpreter.
You can get new Perl version at ActivePerl (Win32) or Perl.com (Unix/Linux/Other).
FAQ-SET100 : I SEE PERL SCRIPT'S SOURCE INSTEAD OF ITS EXECUTION
PROBLEM:
When I try to execute the Perl script through the web server, I see the Perl script's source instead of the HTML result page
of its execution !
SOLUTION:
This is not a problem of AWStats but a problem in your web server setup. awstats.pl file must be in a directory defined in
your web server to be a "cgi" directory, this means, a directory configured in your web server to contain "executable" files
and not to documents files. You have to read your web server manual to know how to setup a directory to be an
"executable cgi" directory (With IIS, you have some checkbox to check in directory properties, with Apache you have to
use the "ExecCGI" option in the directory "Directive").
FAQ-SET150 : INTERNAL ERROR 500 IN MY BROWSER
FAQ-SET200 : ERROR "... COULDN'T CREATE/SPAWN CHILD PROCESS..."
PROBLEM:
AWStats seems to run fine at the command prompt but when ran as a CGI from a browser, I get an "Internal Error 500".
I also also might have the following message in my Apache error log file (or in browser with Apache 2.0+):
...couldn't create/spawn child process: c:/mywebroot/cgi-bin/awstats.pl
SOLUTION:
First, try to run awstats.pl from command line to see if file is correct. If you get some syntax errors and use a Unix like OS,
check if your file is a Unix like text file (This means each line end with a LF char and not a CR+LF char).
If awstats.pl file runs correctly from command line, this is probably because your web server is not able to known how to
run perl scripts. This problem can occur with Apache web servers with no internal Perl interpreter (mod_perl not active). To
solve this, you must tell Apache where is your external Perl interpreter.
For this, you have 2 solutions:
1) Add the following directive in your Apache httpd.conf config (or remove the # to uncomment it if line is already
available)
ScriptInterpreterSource registry
Then restart Apache. This will tell Apache to look into the registry to find the program associated to .pl extension.
2) Other solution (not necessary if first solution works): Change the first line of awstats.pl file with the full path of your Perl
interpreter.
Example with Windows OS and ActivePerl Perl interpreter (installed in C:\Program Files\ActiveState\ActivePerl), you must
change the first line of awstats.pl file with:
#!c:/program files/activestate/activeperl/bin/perl
FAQ-SET220 : CRASH WHILE RUNNING AWSTATS.PL OR PAGE CONTENT ONLY PARTIALY LOADED ON
WINDOWS XP
PROBLEM:
Sometimes my browser (Most often IE6) crash while running awstats.pl with some AWStats configuration. With some other
versions or browsers, page content is partialy loaded.
SOLUTION:
Problem was with WinXP and WinXPpro as documented at MS site Q317949;
"Socket Sharing Creates Data Loss When Listen and Accept Occur on Different Processes"
Frequently Asked Questions + Troubleshooting
81/103
14/07/2015
Convert pdf image to text online - Convert PDF to txt files in C#.net, ASP.NET MVC, WinForms, WPF application
C# PDF to Text (TXT) Converting Library to Convert PDF to Text
convert pdf to word to edit text; convert pdf to text online no email
Convert pdf image to text online - VB.NET PDF Convert to Text SDK: Convert PDF to txt files in vb.net, ASP.NET MVC, WinForms, WPF application
VB.NET Guide and Sample Codes to Convert PDF to Text in .NET Project
convert pdf to txt file online; convert pdf images to text
Result was that MSIE would crash or display nothing. Netscape and Opera handled the socket better but displayed the
pages partially.
The effect of the bug was more prononced as the page contents increased (above 30k).
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q317949
And also at Apache.org
http://www.apache.org/dist/httpd/binaries/win32/
MS produced a Hotfix which is now included in SP1.
But the best solution is to use a better web browser. Take a look at Firefox, one of the best and most popular web browser.
FAQ-SET270 : ONLY CORRUPTED OR DROPPED RECORDS
PROBLEM:
After running an AWStats update process, all my records are reported to be corrupted or dropped
SOLUTION:
First, if you have only a small percent of corrupted or dropped records, don't worry. This is a normal behaviour. Few
corrupted or dropped records can appear in a log file because of internal web server bug, virus attack, error writing, log
purge or rotate during a writing, etc...
However, if ALL your records are reported to be corrupted or dropped, check the following things:
If they are all dropped, run the update process from command line adding the option -showdropped
-> You will be able to know why a dropped record is discarded. In most cases, this is because you use a too large or bad
filter parameter (SkipFiles, SkipHosts, OnlyFiles ...).
If they are all corrupted, run the update process from command line adding the option -showcorrupted
-> You will be able to know why a corrupted record is discarded.
If this is because of the log format, check the FAQ-SET350 about log format errors.
If this is because the date of a record is said to be lower than date of previous, this means that you ran update processes
on different log files without keeping the chronological order of log files.
If this is because the date is invalid, you might have a problem of date not computed correctly this it happens in some
Pentium4/Xeon4 processors:
On some (few) Intel Pentium4 (also Xeon4) based host systems, log file time can not be computed correctly. This is not an
issue of AWStats itself. This error usually occurs on source-based linux distributions (gentoo, slackware etc.), where all
system libraries are compiled with CPU optimization. AWStats is a highly developed PERL application. PERL itself relies
on some system libraries, for example GLIBC. The GLIBC library usually is buggy in this case. There is an easy way to
figure out whether the problem described here is responsible for AWStats problems on your system:
If you have shell access to your machine, simply type the following command:
perl -e "print int ('541234567891011165415658')"
(NOTE: any 25-digit number works, there is no need to type this exact number)
If everything goes fine, you should see a floating point number as output:
5.41234567891011e+23
In this case, please do more research on your log file formats. Your host system itself is not responsible for the error.
But if simply a "0" returns or some other error, this is an indication of your glibc beeing corrupt.
ATTENTION: The only solution in this case might be to recompile your GLIBC. This can be a quite tricky task. Please
consult the documentation and F.A.Q.s of your linux distribution first!! (experts: first check your global compile flags, eg.
march=Pentium4. Trying with other compile flags can solve problem quickly in some cases.
NOTE: In some cases, this error might occur "suddenly", even though AWStats was already running perfect already.
FAQ-SET280 : ERROR "NOT SAME NUMBER OF RECORDS OF..."
PROBLEM:
When I run AWStats from command line (or as a cgi from a browser), I get a message "Not same number of records of ...".
SOLUTION:
This means your AWStats reference database files (operating systems, browsers, robots...) are not correct. First try to
update to last version. Then check in your disk that you have only ONE of those files. They should be in 'lib' directory ('db'
with 4.0) where awstats.pl is installed:
browsers.pm
browsers_phone.pm
domains.pm
operating_systems.pm
robots.pm
search_engines.pm
worms.pm
status_http.pm
status_smtp.pm
FAQ-SET300 : ERROR "COULDN'T OPEN FILE ..."
Frequently Asked Questions + Troubleshooting
82/103
14/07/2015
C# PDF Image Extract Library: Select, copy, paste PDF images in C#
image. Extract image from PDF free in .NET framework application with trial SDK components and online C# class source code. A powerful
convert pdf photo to text; batch convert pdf to text
VB.NET PDF - Convert PDF Online with VB.NET HTML5 PDF Viewer
C#: Convert PDF to HTML; C#: Convert PDF to Jpeg; C# File: Compress PDF; C# File: Merge PDF; C# Read: PDF Image Extract; C# Write: Insert text into PDF; C# Write
convert image pdf to text; converting pdf to searchable text format
PROBLEM:
I have the following error:
"Couldn't open file /workingpath/awstatsmmyyyy.tmp.9999: Permission denied."
SOLUTION:
This error means that the web server didn't succeed in writing the working temporary file (file ended by .tmp.9999 where
9999 is a number) because of permissions problems.
First check that the directory /workingpath has "Write" permission for
user nobody (default user used by Apache on Linux systems)
or user IUSR_SERVERNAME (default used user by IIS on NT).
With Unix, try with a path with no links.
With NT, you must check NTFS permissions ("Read/Write/Modify"), if your directory is on a NTFS partition.
With IIS, there is also a "Write" permission attribute, defined in directory properties in your IIS setup, that you must check.
With IIS, if a default cgi-bin directory was created during IIS install, try to put AWStats directly into this directory.
If this still fails, you can change the DirData parameter to say AWStats that you want to use another directory (A directory
you are sure that the default user, used by web server process, can write into).
FAQ-SET320 : ERROR "MALFORMED UTF-8 CHARACTER (UNEXPECTED ..."
PROBLEM:
When running AWStats from command line, I get one or several lines like this on my output:
Malformed UTF-8 character (unexpected non-continuation byte 0x6d, immediately after start byte 0xe4) at
/www/cgi-bin/lib/xxx.pm line 999.
SOLUTION:
This problem appeared with RedHat 8 and Perl 5.8.
I don't know if RedHat provides a fix for this, but some users had reported that you can remove thoose warmless
messages by changing your LANG environment variable, removing the ".UTF-8" at the end. For example, set
LANG="en_US" instead of LANG="en_US.UTF8"
FAQ-SET350 : EMPTY OR NULL STATISTICS REPORTED
PROBLEM:
AWStats seems to work but I'm not getting any results. i get a statistics page that looks like i have no hits.
SOLUTION:
That's one of the most common problem you can get and there is 3 possible reasons :
1) Your log file format setup might be wrong.
If you use Apache web server
The best way of working is to use the "combined" log format (See the Setup and Use page to know the way to change your
Apache server log from "common" log format into "combined"). Don't forget to stop Apache, reset your log file and restart
Apache to make change into combined effective. Then you must setup your AWStats config file with value LogFormat=1.
If you want to use another format, read the next FAQ to have examples of LogFile value according to log files format.
If you use IIS server or Windows built-in web server
The Internet Information Server default W3C Extended Log Format will not work correctly with AWStats. To make it work
correctly, start the IIS Snap-in, select the web site and look at it's Properties. Choose W3C Extended Log Format, then
Properties, then the Tab Extended Properties and uncheck everything under Extended Properties. Once they are all
unchecked, check off the list given in the Setup and Use page ("With IIS Server" chapter).
You can also read the next FAQ to have examples of LogFormat value according to log files format.
2) You are viewing stats for a year or month when no hits was made on your server.
When you run awstats, the reports is by default for the current month/year.
If you want to see data for another month/year you must:
Add -year=YYYY -month=MM on command line when building the html report page from command line.
Use an URL like http://myserver/cgi-bin/awstats.pl?config=xxx&year=YYYY&month=MM if viewing stats with AWStats
used as a CGI.
3) When you read your statistics, AWStats does not use the same config file than the one used for the update process.
Scan your disk for files that match awstats.*conf and remove all files that are not the config file(s) you need (awstats.conf
files, if found, can be deleted. It is better to use a config file called awstats.mydomain.conf).
FAQ-SET360 : STATISTICS REPORTED EXCEPT FOR OS, BROWSERS, ROBOTS AND KEYWORDS/KEYPHRASES
PROBLEM:
AWStats seems to report my statistics however some charts, like robots, os', browsers, search engines, or
keywords/keyphrases are empty.
SOLUTION:
Frequently Asked Questions + Troubleshooting
83/103
14/07/2015
VB.NET PDF Image Extract Library: Select, copy, paste PDF images
Extract image from PDF free in .NET framework application with trial SDK components for .NET. Online source codes for quick evaluation in VB.NET class.
convert pdf to rich text format; converting pdf to editable text
C# HTML5 PDF Viewer SDK to convert and export PDF document to
C#: Convert PDF to HTML; C#: Convert PDF to Jpeg; C# File: Compress PDF; C# File: Merge PDF; C# Read: PDF Image Extract; C# Write: Insert text into PDF; C# Write
convert pdf to text online; convert pdf file to text online
If only robots, search engines or keywords/keyphrases are empty, this simply means your web site was not yet visited by
any robots and noone found your site using a search engines (this happens particularly for Intranet which are not
referenced on search engines). If all of them are empty or with only unknown values, even after several updates, this
probably means that your logfile does not contains all informations, this happens with Apache when using the standard
"common" log format instead of the standard "combined" log format.
You may also use LogFormat=4 into your AWStats config files instead of 1.
Read AWStats setup documentation to known how to setup your Apache Web server to report logs in a "combined" log
format then set LogFormat=1 into your AWStats config file.
FAQ-SET400 : PIPE REDIRECTION TO A FILE GIVE ME AN EMPTY FILE
PROBLEM:
I want to redirect awstats.pl output to a file with the following command :
>awstats.pl -config=... [other_options] > myfile.html
But myfile.html is empty (size is 0). If i remove the redirection, everythings works correctly.
SOLUTION:
This is not an AWStats bug but a problem between Perl and Windows.
You can easily solve this running the following command instead:
perl awstats.pl -config=... [other_options] > myfile.html
FAQ-SET450 : NO PICTURES/GRAPHICS SHOWN
PROBLEM:
AWStats seems to work (all data and counters seem to be good) but I have no image shown.
SOLUTION:
With Apache web server, you might have troubles (no picture shown on stats page) if you use a directory called "icons"
(because of Apache pre-defined "icons" alias directory), so use instead, for example, a directory called "icon" with no s at
the end (Rename your directory physically and change the DirIcons parameter in config file to reflect this change).
FAQ-SET700 : MY VISITS ARE DOUBLED FOR OLD MONTH I MIGRATED FROM 3.2 TO 5.X
PROBLEM:
After having migrated an old history file for a month, the number of visits for this month is doubled. So the number of "visits
per visitor" is also doubled and "pages per visit" and "hits per visit" is divided by 2. All other data like "pages", "hits" and
bandwith are correct.
SOLUTION:
This problem occurs when migrating history files from 3.2 to 5.x.
To fix this you can use the following tip (warning, do this only after migrating from 3.2 to 5.x and if your visit value is
doubled). The goal is to remove the line in history file that looks like this
YYYYMM00 999 999 999 999
where YYYY and MM are year and month of config file and 999 are numerical values.
So if your OS is Unix/Linux
grep -vE '^[0-9]{6}00' oldhistoryfile > newhistoryfile
mv newhistoryfile oldhistoryfile
And then run the migrate process again on the file.
If your OS is windows and got cygwin
You must follow same instructions than if OS is Unix/Linux BUT you must do this from a cygwin 'sh' shell and not from the
DOS prompt (because the ^ is not understanded by DOS).
And then run the migrate process again on the file.
In any other case (in fact works for every OS)
You must remove manually the line YYYYMM00 999 999 999 999 (must find one and only one such line) and then run the
migrate process again on the file.
FAQ-SET750 : AWSTATS RUN OUT OF MEMORY DURING UPDATE PROCESS WITH CYGWIN PERL
PROBLEM:
When I run the update process on a large log file with cygwin Perl, AWStats run out of memory but I am sure that I have
enough memory to run AWStats according to the 'memory' column in benchmark chart available in AWStats
documentation (benchmark page).
SOLUTION:
It might be a limit inside Cygwin Perl. Try to increase the Cygwin parameter heap_chunk_in_mb.
Frequently Asked Questions + Troubleshooting
84/103
14/07/2015
VB.NET PDF Text Extract Library: extract text content from PDF
provides text extraction from PDF images and image files. Best VB.NET PDF text extraction SDK library and Online Visual Basic .NET class source code for quick
best pdf to text converter for; convert pdf to word editable text online
C# PDF Text Extract Library: extract text content from PDF file in
Supports text extraction from scanned PDF by using XDoc.PDF for .NET Image text extraction control provides text extraction from PDF images and image files.
best pdf to text converter; c# pdf to txt
FAQ-SET800 : AWSTATS SPEED/TIMEOUT PROBLEMS ?
PROBLEM:
When I analyze large log files, processing times are very important (Example: update process from a browser returns a
timeout/internal error after a long wait). Is there a setup or things to do to avoid this and increase speed ?
SOLUTION:
You really need to understand how a log analyzer works to have good speed. There is also major setup changes you can
do to decrease your processing time.
See important advices in benchmark page.
FAQ-SEC100 : CAN AWSTATS BE USED TO MAKE CROSS SITE SCRIPTING ATTACKS ?
PROBLEM:
If a bad user use a browser to make a hit on an URL that include a < SCRIPT > ... < /SCRIPT > section in its parameter,
when AWStats will show the links on the report page, does the script will be executed ?
SOLUTION:
No. AWStats use a filter to remove all scripts codes that was included in an URL to make a Cross Site Scripting Attack
using a log analyzer report page.
FAQ-SEC150 : HOW CAN I PREVENT SOME USERS TO SEE STATISTICS OF OTHER USERS ?
PROBLEM:
I don't want a user xxx (having a site www.xxx.com) to see statistics of user yyy (having a site www.yyy.com). How can i
setup AWStats for this ?
SOLUTION:
Take a look at the security page.
FAQ-SEC200 : HOW TO MANAGE LOG FILES (AND STATISTICS) CORRUPTED BY 'WORMS' ATTACKS ?
PROBLEM:
My site is attacked by some worms viruses (like Nimba, Code Red...). This make my log file corrupted and full of 404
errors. So my statistics are also full of 404 errors. This make AWStats slower and my history files very large. Can I do
something to avoid this ?
SOLUTION:
Yes.
'Worms' attacks are infected browsers, robots or server changed into web client that make hits on your site using a very
long unknown URL like this one:
/default.ida?XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX%40%50...%40%50
URL is generated by the infected robot and the purpose is to exploit a vulnerability of the web server (In most cases, only
IIS is vulnerable). With such attacks, you will will always find a 'common string' in those URLs. For example, with Code
Red worm, there is always default.ida in the URL string. Some other worms send URLs with cmd.exe in it.
With 6.0 version and higher, you can set the LevelForWormsDetection parameter to "2" and ShowWormsStats to "HBL" in
config file to enable the worm filtering nd reporting.
However, this feature reduce seriously AWStats speed and the worms database (lib/worms.pm file) can't contain all worms
signatures. So if you still have rubish hits, you can modify the worms.pm file yourself or edit your config file to add in the
SkipFiles parameter some values to discard the not required records, using a regex syntax like example :
SkipFiles="REGEX[^\/default\.ida] REGEX[\/winnt\/system32\/cmd\.exe]"
Article written by Laurent Destailleur.
Follow @awstats_project
Frequently Asked Questions + Troubleshooting
85/103
14/07/2015
VB.NET PDF insert image library: insert images into PDF in vb.net
VB.NET code to add an image to the inputFilePath As String = Program.RootPath + "\\" 1.pdf" Dim doc New PDFDocument(inputFilePath) ' Get a text manager from
convert pdf to txt batch; batch pdf to text
VB.NET PDF Convert to Jpeg SDK: Convert PDF to JPEG images in vb.
C#: Convert PDF to HTML; C#: Convert PDF to Jpeg; C# File: Compress PDF; C# File: Merge PDF; C# Read: PDF Image Extract; C# Write: Insert text into PDF; C# Write
convert pdf image to text; converting .pdf to text
AWStats logfile analyzer 7.4 Documentation
AWStats License / Copyright
AWStats is distributed under the GNU General Public License (GPL).
So you must follow the line "Free software - Copylefted - GPL" to know what are major license agreements with AWStats.
Article written by Laurent Destailleur.
Follow @awstats_project
AWStats License / Copyright
86/103
14/07/2015
C# PDF Convert to Jpeg SDK: Convert PDF to JPEG images in C#.net
NET library to batch convert PDF files to jpg image files. Thumbnails can be created from PDF pages. Support for customizing image size.
convert pdf to text vb; extract text from pdf
AWStats logfile analyzer 7.4 Documentation
Plugin Development
AWStats has a very flexible plugin architecture that is easy to use and allows for powerful extensibility. Here is the
information you need to get started rolling your own. In this documentation, the terms plugin and module will be used
interchangeably.
Plugin Files, Location
• 
Hooks
• 
Required Variables
• 
Accessible Variables
• 
Accessible Functions
• 
Available Hooks
• 
Plugin Files, Location
AWStats plugins are implemented as Perl modules with a file extension of .pm. Every time you run AWStats, either in update
mode or HTML output mode, the configuration file will be parsed for the names of plugins to load. Then AWStats will scan
the plugins folder for matching modules and load them into memory, executing hooks at the appropriate time during a run.
Thus, when you create a plugin, you have to store the file in the plugins directory under the folder where awstats.pl resides.
Hooks
In order to be useful, your plugin must implement any number of different "hooks" that will be called at various points during
the AWStats run. A hook is simply a Perl sub routine that will receive various parameters, perform whatever actions you
desire such as calculations, modifications or output, and optionally return a value.
Note: all plugins MUST implement the Init_ hook to initialize the module and determine if the plugin will run under the current
version of AWStats.
For information on the available hooks, view the Hooks document.
Required Variables
Each plugin must implement three required, local variables including the name, hooks, implements and required AWStats
Version. Typically you implement these at the top of your plugin file as in this example code:
#-----------------------------------------------------------------------------
# PLUGIN VARIABLES
#-----------------------------------------------------------------------------
# <-----
# ENTER HERE THE MINIMUM AWSTATS VERSION REQUIRED BY YOUR PLUGIN
# AND THE NAME OF ALL FUNCTIONS THE PLUGIN MANAGE.
my $PluginNeedAWStatsVersion="5.5";
my $PluginHooksFunctions="GetCountryCodeByAddr GetCountryCodeByName ShowInfoHost";
my $PluginName = "geoipfree";
my $PluginImplements = "mou";
# ----->
The $PluginNeedAWStatsVersion indicates the minimum version of AWStats that your plugin requires to run properly. If a
user attempts to implement your plugin with an older version of the program, the plugin will not load.
$PluginHooksFunctions is a space delimited list of the different hooks that your plugin will implement. This list should only
include names defined in the hooks list. You should not list any private module functions or the Init_ hook in this list. The
naming convention for all hooks is HookName_PluginName. The hooks like only includes the hook name without the
underscore.
$PluginName is simply the name of your plugin, exactly as it appears in the hooks and file name. This will be used by
Plugin Development
87/103
14/07/2015
AWStats on load.
$PluginImplements is a list of letter codes mapped to operations that your plugin performs. Without at least one of these
letter codes, your plugin will never run. The codes are:
"m" - a Menu Handler plugin that provides links to navigate around reports. The plugin will be called any time a menu
is displayed, such as in the left frame in cgi mode or top navigation in static mode. 
• 
"o" - an Output plugin that will be loaded when AWStats is generating a report via dynamic CGI or static HTML
• 
"u" - an Update plugin that will process data and is run when AWStats is parsing log files and updating the history
data files.
• 
Accessible Variables
Your plugin has access to all of the global variables declared at the top of the AWStats.pl program. While you can write to
these variables, it's best to only read them as another plugin may make unexpected modifications. However you can declare
global variables within your own plugin and share those across other plugins. Just declare them inside the normal use vars
qw/ ... / block within your own module.
Thus you can (and should) use settings from the configuration file and determine the debug level.
Accessible Functions
Plugins have access to all of the functions declared in the main AWStats.pl file. For debugging and error handling, you
should use the debug and error functions. Below are some common functions that plugins take advantage of (remember you
don't have to re-invent the wheel):
debug("debug message", debug_level) - Writes the "debug message" to the standard output if the (integer) debug_level is
lower or equal to that set by the user at runtime. The higher the debug level, the less important or more informational the
message. After outputting the message, the program continues running.
error("error message") - Writes the "error message" to the standard output and halts program execution.
Format_Bytes(bytes) - Converts the incoming decimal value to Kilobytes, Megabytes, Gigabytes and so forth. So if you put in
1024.5 it will spit out "1 KB"
Format_Date(YYYYMMDDHHMMSS) - Converts the incoming timestamps to something like 30 Apr 2010 - 16:55
Format_Number(number) - Adds commas or a user defined character where appropriate to separate numbers for easier
reading.
Article written by Laurent Destailleur.
Follow @awstats_project
Plugin Development
88/103
14/07/2015
AWStats logfile analyzer 7.4 Documentation
Plugin Graphs
Charts, graphs and maps can be generated by your plugin and make AWStats reports look nice. AWStats generates arrays
of values, label names and titles so that your plugin only has to handle the final data and display it as you wish.
NOTE: Only one graphing plugin should be choose by a user at any given time, thus your plugin should generate as many
graphs as possible. If more than one graphing plugin is enabled at any given time, multiple graphs will appear in the output
for each graph type.
Below is a list of variables passed to the graphin hook and how you should use them.
Title
• 
Type
• 
Block Label
• 
Val Label
• 
Val Color
• 
Val Max
• 
Val Total
• 
Val Average
• 
Val Data
• 
Title
This is simply the title of the graph as it should be displayed to the end user. This could be "Hosts (Top 5)" or "Monthly
History" or anything else. Of course, you don't have to show the title unless you want to.
Type
The type is important as your graphing plugin should determine what type of graph to output depending on the type AWStats
is requesting. For information on types and the data order, check the Types and Data section.
Block Label
This is a label for each group of data, usually labels for the X axis such as the days of the week, months of the year, etc.
Your plugin can use the scalar count of values in this array as the number of times a loop needs to iterate through an axis.
For example:
foreach my $j (1.. (scalar @$blocklabel)) { ... }
Val Label
@vallabel contains a list of labels for each of the data sets such as "pages", "hits", etc. Use the scalar count of values when
accessing the data matrix.
Val Color
This is an array of color values associated with each type of data as assigned by the configuration file or the defaults in
AWStats. Each color is a web formatted RGB hex encoded value such as "FFFFFF" or "000000".
Val Max
This array contains the maximum individual numeric value for each of the types of data stored in the data array. The count is
the same as the the color array.
Val Total
Plugin Graphs
89/103
14/07/2015
This array contains the total numeric value for each type of data stored in the data array. The count is the same as the the
color array.
Val Average
This array contains the average numeric value for each type of data stored in the data array. The count is the same as the
the color array.
Val Data
This array contains the actual data values for each type of data indexed by each data type for a block of data, then the next
set of types for a block and so on. Thus if we were looking at the monthly graph, the data would be laid out thusly:
$valdata[0] --> January Unique Visitors
$valdata[1] --> January Number of Visits
$valdata[2] --> January Pages
$valdata[3] --> January Hits
$valdata[4] --> January Bandwidth
$valdata[5] --> February Unique Visitors
$valdata[6] --> February Number of Visits
....
Graph Types and Data
Below is a list of the different graph types and the order in which data appears in the associated arrays.
month - a graph of each month for a given year
• 
Unique Visitors
¤ 
Visits
¤ 
Pages
¤ 
Hits
¤ 
Bandwidth
¤ 
daysofmonth - each day of the month
• 
Visits
¤ 
Pages
¤ 
Hits
¤ 
Bandwidth
¤ 
daysofweek - an averaged data set for each day of the week
• 
Pages
¤ 
Hits
¤ 
Bandwidth
¤ 
hours - an averaged data set for each hour of a day
• 
Pages
¤ 
Hits
¤ 
Bandwidth
¤ 
cluster - the top 5 clustered servers if the cluster option is enabled
• 
Pages
¤ 
filetypes - the top 5 file types reported on
• 
Pages
¤ 
httpstatus - the top 5 HTTP status codes
• 
Pages
¤ 
browsers - the top 5 browsers
• 
Pages
¤ 
oss - the top 5 operating systems
• 
Pages
¤ 
hosts - the top 5 hosts
• 
Pages
¤ 
countries_map - a list of all countries and their hit counts
• 
Hits
¤ 
Article written by Laurent Destailleur.
Plugin Graphs
90/103
14/07/2015
Documents you may be interested
Documents you may be interested