Statistics

Is anyone tracking any portal usage statistics?  We'd like to know how many people by role over specified periods of time are using the portal.  Additionally it would be nice to be able to drill down even further and see what channels are getting the most activity.

Regardless, what are people doing for stats?  Something is better than nothing.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

Our stat woes

We have looked into doing this. Unfortunately there are inherent problems with user tracking inside Luminis…

Number of users by role: The access log does not store user or role. You could massage the data in $CP_ROOT/logs/session.log, which captures the user name, date/time when someone does a login/logout. You would then have to tie the user back to a role (which is stored in the LDAP). It would be difficult to automate such a process, but it could be done.

Tab Statistics: Using the access log you can use
the activeTab parameter to see which tabs are being requested, as long
as it is not a user defined tab (then what's the point?). This doesn't
necessarily tell you which channels are on the tab, unless you lock
down the user's layout completely. And if you do that, you cannot
really tell which channels the user is using.

Channel Statistics: The access log doesn't give
any channel information, but you could look in the database to see what
channels users have subscribed to. The up_layout_struct table
stores what channels users have added to their layout. However, it
doesn't store channels that are on their layout owners layout (it does
include the usertemplate owners layout). But, you can assume that if a
user has added a channel to their layout that they are using it. Here
is a SQL statement that will give you the number of users who have subscribed to each channel:

select c.chan_id,
c.chan_title "channel title",
c.chan_name "channel name",
count(u.user_id) "# of subscribers"
from lumiu.up_user u,lumiu.up_channel c,lumiu.up_layout_struct l
where l.user_id = u.user_id
and l.chan_id = c.chan_id
and l.chan_id is not null
and c.chan_id not in (99, -- login
19, -- footer
92, -- manage content
1, -- channel manager
203,-- school logo
10 )-- header
group by c.chan_id,c.chan_title,c.chan_name
order by 4 desc

You will have many more options when SCT incorporates newer versions of uPortal into Luminis (I believe that is scheduled for Q1 2006). It captures many useful events:

https://list.unm.edu/cgi-bin/wa?A2=ind0302&L=jasig-portal&P=R1366

We would be very interested if anybody else has come up with other tracking methods.

Login stats

I gather general daily usage stats based on the session log - nothing fancy, but basically, I wrote a short perl script that loops through the session log for the previous day, counts them, uniq's them, and then looks up the roles for each user that logged in, and then generates an e-mail with some counts by role. We assign distinct roles for undergrads, grads, faculty, staff, and "others" (a fallback category for special accounts). The people who get the daily e-mails are mainly looking to graph the usage of these groups over a larger timeframe. Interesting enough, we've been bringing incoming classes of students into our portal for two years now as part of their initial introduction to the university, and daily reports indicate that most of them continue to login to it on a daily basis.

Share?

That seems like a reasonable solution. Any chance of getting a copy of that perl script? I'd love to see if it works out for us as well.

RDBMStatsRecorder

Your post made me remember something I read on a listserv and briefly researched sometime ago.  Apparently there is a small amount of built-in ability to do some stat recording.  In portal.properties (inside uPortal.jar) it has the following lines:

# Class name of the concrete IStatsRecorderFactory implementation to be used.  Note that stats will
# not be sent to a stats recorder implementation unless one or more of the stats recorder settings
# below are set to "on".
# The choices that come with uPortal are:
# org.jasig.portal.services.stats.PrintingStatsRecorderFactory (stats will be printed to std out)
# org.jasig.portal.services.stats.LoggingStatsRecorderFactory (stats will be logged in portal's log file)
# org.jasig.portal.services.stats.DoNothingStatsRecorderFactory (stats will be ignored)
#
org.jasig.portal.services.stats.StatsRecorderFactory.implementation=org.jasig.portal.services.stats.DoNothingStatsRecorderFactory


# Initial settings that determine whether or not certain portal events are recorded
# by the StatsRecorder.  To enable stats recording, set any of the following settings
# to "on".  At runtime, the values of these settings can be modified programmatically
# via org.jasig.portal.services.StatsRecorder.set().  Stats will be sent to the
# stats recorder implementation specified above.
#
org.jasig.portal.services.stats.StatsRecorderSettings.recordLogin=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordLogout=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordSessionCreated=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordSessionDestroyed=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelDefinitionPublished=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelDefinitionModified=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelDefinitionRemoved=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelAddedToLayout=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelUpdatedInLayout=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelMovedInLayout=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelRemovedFromLayout=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordFolderAddedToLayout=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordFolderUpdatedInLayout=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordFolderMovedInLayout=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordFolderRemovedFromLayout=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelInstantiated=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelRendered=off
org.jasig.portal.services.stats.StatsRecorderSettings.recordChannelTargeted=off

I dont think that either of the built-in disabled solutions are perfect, but I turned up someone working on one called RDBMStatsRecorder.  I apparently downloaded this at some point, but now can't find the site.  The only thing I can find that referenced it is this: https://list.unm.edu/cgi-bin/wa?A2=ind0406&L=jasig-portal&F=&S=&P=17769

Unfortunately it is reasonably specific to postgres.  As i read through the source of what I downloaded long ago, I see that it has in fact been tailored to Oracle, and includes what the table structure should be.

Here is where I am stuck though, I have the source, but I don't know how to compile it or how to put it in place.

Here is all the source and stuff I have about it: http://ender.plymouth.edu/RDBMStatsRecorderStuff.jar

If anyone knows the original loaction and source to credit for this, I'd love to change the link to there and give credit where do, I just don't seem to have this information anywhere.

If I can't get this one working, my second thought is to enable the LoggingStatsRecorderFactory and just suck the data out of this file into an Oracle table nightly or something.  Thoughts?

Stats update

I've been trying to get the LoggingStatsRecorderFactory working, but with no luck. I enable it, but no entries end up in the log. I contacted support and Grace Francisco looked into this a bit for me. Unfortunately she had the same experience as me and took it to the dev team.

They weren't sure what the problem was either, so have since logged this as a defect. (24137)

URL / Page titles

One issue I have is the loooooooooong urls, and default page title when you click tabs or a channel link that re-renders in the channel.  I understand the need for the urls, but the page title _could_ change.

I've been asked about luminis stats, and for grins, I signed up for a free Webstat (http://www.webstat.com) account.  I added their 'tracking tags' up next to the email icon which pulls their logo images.  The report proved me correct :

Report Details

 I started with URL tracking and then changed to Page Title tracking.  As you can see I still have Campus Pipeline as the title in my nested-tables.xls file :)

Nice eh ?  Tell me what page entry #7 is ?  Good luck.

Ugh.

To easily record the channe

To easily record the channels being rendered, we add the following code to the top of the channel code in /stylesheets/org/jasig/portal/layout/tab-column/nested-tables/nested-tables.xsl :

<!-- Start -  1x1 gif for stats -->
<xsl:variable name="channelNameForStats"><xsl:value-of select="@title"/></xsl:variable>
<img src="/media/stats.gif?channel={$channelNameForStats}" alt="{$channelNameForStats}" width="1" height="1" border="0" />
<!-- End - 1x1 gif for stats -->

We then transform the access_log to replace
/media/stats.gif?channel={$channelNameForStats}
with Channel <Channel Name> and use Webalizer

Obviously, adding a 1x1 image isn't an elegant solution, but it allows us to at least see what channels are being rendered.

We've got another solution that uses session.log to track users, but that is specific to the University of Nottingham and again is not an overly elegant solution.

Another stats solution

Syndicate content