Today we shall have a look at the various possibilities available for statistics of activity on IRC, should you decide you want to have some pretty graphs detailing the happenings in a channel or on a whole network.
Most programs presented in this article parse logfiles generated by a variety of IRC clients, with the exception of phpDenora/Denora which needs to be run as a network service to gather its stats. However, both solutions can supplement one another as one may gather and display information that the other does or even can not.
All screenshots show results generated from the same logfile so you can directly compare the output of each software – only the output of phpDenora is taken from a live network and does not represent the numbers shown in the other screenshots. Also, it should be noted that all programs have been tested in their default configuration and most provide a host of options that may output even more detailed and fancier statistics so YMMV.
License: Shareware (Full Version starting from 12$/€)
Logformats: irssi, mIRC, Trillian, Eggdrop, irssi, HydraIRC, ircle, BNC, miau, Winbot, XChat
mIRCStats is one of the older and more well-known packages out there but also the only one in this comparison that is licensed as shareware. However, with paying you get access to even more advanced output and graphing options and put food on the developers table
The statistics it outputs leave nothing to be desired, not even in the shareware version. mIRCStats supports a wide variety of IRC clients it can parse logs from and adding new parsers is trivial – just edit a textfile that defines how certain events “look” in the log. There even is an option to automatically upload the generated files via FTP to a server of your choice so the statistics will always be up-to-date.
One downside of mIRCStats is that it is a Windows-only program which means you’ll need an always-on Windows machine that will parse the log and generate the stats if you plan on periodic updates of your stats.
Logformats: XChat, mIRC, Eggdrop, BitchX, irssi, virc98, dancer, Trillian, Grufti, mbot, Winbot, zcbot, muh, Energymech, ircII, psyBNC, ircle, infobot, axur, bobot++, oer, perlbot, Vision, pircbot, KVIrc, HydraIRC, sirc, moobot, supybot, blootbot, dircproxy, Konversation
pisg also is a logfile parser and, as the acronym suggests, is written in Perl which makes it multiplatform / multiOS.
The statistics it generates in its default configuration are detailed but beyond that pisg is very extendable and provides many options to further customize the output and statistics parsed and graphed by it – the documentation explains most if not all possible settings in detail. If you are using a client whose logformat is not in its extensive list of supported and supplied parsers you can create your own provided you have some knowledge of regular expressions.
With pisg, the parsing of logfiles can be automated by adding the command to cron or Task Scheduler and if you want to generate statistics for multiple channels you can easily do so by configuring it via its config-file instead of passing commandline arguments to the executable.
Output: HTML, XML, Console
risg, short for “Ruby IRC Statistics Generator”, also is a multiplatform / multiOS logfile parsing statistics generator programmed in Ruby.
Currently it only parses logfiles that are in irssis’ default format however parser-support is modular and one could create his own parser based on the supplied one for irssi.
Statistics graphed by risg are a bit plain and not as detailed as they could be, but given the low version number and the fact that the software still is considered to be in an “experimental stage of development” things might as well change in the future. The lack of documentation besides a basic setup and usage guide is probably also attributable to the early stage the software is in but all in all risg has potential.
Being a commandline-driven program, risgs’ statistics generation can be automated and its output can be modified, used and mangled limited only by its users imagination.
Logformats: Eggdrop, irssi, mIRC
Output: HTML, MySQL
superseriousstats is of the “logfile parsing” variety too but, to add another programming language to the mix, is written entirely in PHP. It uses a MySQL database for data storage which opens up quite a few possibilities on how and where you can use it besides the full statistics website.
The graphs and statistics sss generates aren’t overly fancy (did you expect anything else from software that calls itself “serious”?) but some customization options are provided so you can still tweak and fiddle with them. As with the previous packages, superseriousstats is to be used from the commandline and can be executed with any scheduling daemon – provided you have a recent version of PHP installed on the platform of your choice.
Extending the number of logformats / clients supported is just a matter of creating an appropiate parser for which you’d need to have at least a basic understanding of regular expressions.
Language: C / PHP
Type: Network Service
Output: HTML, XML, MySQL
The combination of Denora and phpDenora is unique in that it is the only package in this comparison that must be run as a network service to gather its statistics.
The upside of this is that it can gather statistics and details the other packages can’t provide but on the flipside also means that you will need to have access to the IRC networks configuration or convince one of the admins to install it for you – otherwise you’re out of luck.
The statistics and graphs phpDenora displays are multifaceted & good-looking and due it being a network service it displays statistics for the whole network, not just one or a few channels. Denora introduces StatServ, a pseudoclient like NickServ, to the network that is able to display a selection of statistics in channel messages or notices to you.
Data parsed by Denora is available in a MySQL database or XML which makes it an ideal candidate for modeling the output your way. It should be noted that the successor for phpDenora, called MagIRC, is already in the works but is not anywhere near production-ready and therefore not suitable for most IRC nets.
All solutions generate useful and appealing results – one maybe a bit more than the other but in the end it’s all a matter of taste and largely depends on what you want to achieve.
If you’re looking to customize the output or scope of the graphs you should definately pick the solution that is written in the language you’re already familiar with or comfortable to learn.
What do you use to provide statistics on your network or channel?