Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.0 > vBulletin 3.0 Full Releases
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Microstats (only for admin) - load times, server loads, queries, uncached templates! Details »»
Microstats (only for admin) - load times, server loads, queries, uncached templates!
Version: 1.00, by Erwin Erwin is offline
Developer Last Online: May 2013 Show Printable Version Email this Page

Version: 3.0.3 Rating:
Released: 01-04-2004 Last Update: Never Installs: 190
 
No support by the author.

Version 1.0 - works for most servers
Updated 1.1 - optimized code
Updated 1.2 - added names of uncached templates!

Okay, the original was by TECK. This is NOT based on his code - it is based on vB3's native code. If TECK wants me to remove this, I will do so. This is just my version that I use for my private forums.

Information shown:
1) Page loading times
2) Number of Queries
3) Server Loads
4) Number of Any Uncached Templates
5) Name of Uncached Templates (NEW!)

By default only an Admin (usergroup 6) can see it. Feel free to modify this bit.

It's very easy to install.

Open includes/functions.php:

Find:

PHP Code:
// ####################################################################
    // temporary code
    
global $_TEMPLATEQUERIES$tempusagecache$DEVDEBUG$_SERVER$debug
UNDERNEATH, ADD:

Version 1.2 - more optimized but requires /proc on your server - try this, if server loads don't show up use Version 1.02 below

PHP Code:
// Microstats hack
if ($bbuserinfo[usergroupid]==6) {
                
$pageendtime microtime(); 
                
$starttime explode(' '$pagestarttime); 
                
$endtime explode(' '$pageendtime); 
                
$totaltime vb_number_format($endtime[0] - $starttime[0] + $endtime[1] - $starttime[1], 5); 
                
$loadavg = @file_get_contents("/proc/loadavg"); 
                if (
$loadavg) { 
                        
$regs explode(" ",$loadavg); 
                        
$serverload=' [Server Loads: <b>'.$regs[0].'</b> '.$regs[1].' : '.$regs[2].']'
                } 
                
$debughtml "<center><span class=\"smallfont\">Page generated in <b>$totaltime</b> seconds with <b>$query_count</b> queries" iif($_TEMPLATEQUERIES" (<b>" sizeof($_TEMPLATEQUERIES) . "</b> queries for uncached templates)"'') . "$serverload</span></center>"
    
ksort($tempusagecache);
    foreach (
$tempusagecache AS $tempname => $times)
    {
    if (
$_TEMPLATEQUERIES["$tempname"]) $debughtml .= "<center><span class=\"smallfont\">Uncached templates: <font color=\"red\"><b>$tempname</b></font> ($times)</span></center>";
    }
                
$vartext str_replace('</body>'"$debughtml\n</body>"$vartext); 
 
}
//Microstats Hack 


Version 1.02 - Use this if Version 1.1 doesn't work for you.

PHP Code:
// Microstats hack 
if ($bbuserinfo[usergroupid]==6) {
$pageendtime microtime(); 
$starttime explode(' '$pagestarttime); 
$endtime explode(' '$pageendtime); 
$totaltime vb_number_format($endtime[0] - $starttime[0] + $endtime[1] - $starttime[1], 5); 
if (
$stats=@exec('uptime')) { 
     
preg_match('/averages?: ([0-9\.]+),[\s]+([0-9\.]+),[\s]+([0-9\.]+)/',$stats,$regs); 
     
$serverload=' [Server Loads: <b>'.$regs[1].'</b> ? '.$regs[2].' : '.$regs[3].']'
     } 
$debughtml "<center><span class=\"smallfont\">Page generated in <b>$totaltime</b> seconds with <b>$query_count</b> queries" iif($_TEMPLATEQUERIES" (<b>" sizeof($_TEMPLATEQUERIES) . "</b> queries for uncached templates)"'') . "$serverload</span>"
$vartext str_replace('</body>'"$debughtml\n</body>"$vartext); 
    
ksort($tempusagecache);
    foreach (
$tempusagecache AS $tempname => $times)
    {
    if (
$_TEMPLATEQUERIES["$tempname"]) $debughtml .= "<center><span class=\"smallfont\">Uncached templates: <font color=\"red\"><b>$tempname</b></font> ($times)</span></center>";
    }
}
//Microstats Hack 

Done! As simple as that. No need to enable debug mode.

If you want only yourself to have this information, change:
if ($bbuserinfo[usergroupid]==6) {
to
if ($bbuserinfo[userid]==1) {

And replace 1 with your userid.

To let everyone see it, remove that line, and the last } of the code above.

Below is a screenshot of how my forumhome microstats look.

EDIT: Thanks to kmike, I optimized the code. This should lessen the load when checking the server loads slightly.

Version 1.2 and 1.02 now has added code to show NAMES OF UNCACHED TEMPLATES!

Show Your Support

  • This modification may not be copied, reproduced or published elsewhere without author's permission.

Comments
  #22  
Old 01-07-2004, 02:31 PM
Alien's Avatar
Alien Alien is offline
 
Join Date: Oct 2001
Posts: 827
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

How exactly would I adjust this so ANYONE can view it, not just admins?
Reply With Quote
  #23  
Old 01-07-2004, 06:17 PM
Serge's Avatar
Serge Serge is offline
 
Join Date: Jan 2002
Location: The Matrix
Posts: 115
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Alien
How exactly would I adjust this so ANYONE can view it, not just admins?
I don't know if I'm allowed to repost but this is what you would do.

PHP Code:
    // Microstats hack 
   
$pageendtime microtime(); 
   
$starttime explode(' '$pagestarttime); 
   
$endtime explode(' '$pageendtime); 
   
$totaltime vb_number_format($endtime[0] - $starttime[0] + $endtime[1] - $starttime[1], 5); 
   if (
$stats=@exec('uptime')) { 
       
preg_match('/averages?: ([0-9\.]+),[\s]+([0-9\.]+),[\s]+([0-9\.]+)/',$stats,$regs); 
       
$serverload=' [Server Loads: <b>'.$regs[1].'</b> ? '.$regs[2].' : '.$regs[3].']'
       } 
 
$debughtml "<center><span class=\"smallfont\">Page generated in <b>$totaltime</b> seconds with <b>$query_count</b> queries" iif($_TEMPLATEQUERIES" (<b>" sizeof($_TEMPLATEQUERIES) . "</b> queries for uncached templates)"'') . "$serverload</span>"
   
$vartext str_replace('</body>'"$debughtml\n</body>"$vartext); 
   
//Microstats Hack 
Place that in the same EXACT place as you would have for the orginal hack all this did was took out the check for the admin part.
Reply With Quote
  #24  
Old 01-07-2004, 06:19 PM
Serge's Avatar
Serge Serge is offline
 
Join Date: Jan 2002
Location: The Matrix
Posts: 115
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Actually if you know what I'm talking about just take the frist if line out and then delete the } at the very end before the comment. That will do it I will work on that post although I have no clue why that happened might be a bug.

EDIT: I fixed the post above when I copied Erwin's code it came though with the color on it as well in the WYSISWG and it left it on there as well and then when I changed everything to black it didn't work but in the end I got it fixed.
Reply With Quote
  #25  
Old 01-08-2004, 02:13 PM
Alex Alex is offline
 
Join Date: Oct 2001
Posts: 57
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Could you add gzip stats to it? please!
Reply With Quote
  #26  
Old 01-08-2004, 03:59 PM
TECK's Avatar
TECK TECK is offline
 
Join Date: Nov 2001
Location: Canada
Posts: 4,182
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Serge
I don't know if I'm allowed to repost but this is what you would do.

PHP Code:
    // Microstats hack 
   
$pageendtime microtime(); 
   
$starttime explode(' '$pagestarttime); 
   
$endtime explode(' '$pageendtime); 
   
$totaltime vb_number_format($endtime[0] - $starttime[0] + $endtime[1] - $starttime[1], 5); 
   if (
$stats=@exec('uptime')) { 
       
preg_match('/averages?: ([0-9\.]+),[\s]+([0-9\.]+),[\s]+([0-9\.]+)/',$stats,$regs); 
       
$serverload=' [Server Loads: <b>'.$regs[1].'</b> ? '.$regs[2].' : '.$regs[3].']'
       } 
 
$debughtml "<center><span class=\"smallfont\">Page generated in <b>$totaltime</b> seconds with <b>$query_count</b> queries" iif($_TEMPLATEQUERIES" (<b>" sizeof($_TEMPLATEQUERIES) . "</b> queries for uncached templates)"'') . "$serverload</span>"
   
$vartext str_replace('</body>'"$debughtml\n</body>"$vartext); 
   
//Microstats Hack 
Place that in the same EXACT place as you would have for the orginal hack all this did was took out the check for the admin part.
If you show the server load for everyone, you will kill your server.
Is for a reason I released originally this hack part for admins only...

Hope, this helps.

PS. Yes Erwin, you have my permission to publish any modifications for MicroStats and port it to VB3 software.
Thank you for asking.
Reply With Quote
  #27  
Old 01-08-2004, 04:06 PM
Dark_Wizard Dark_Wizard is offline
 
Join Date: Nov 2001
Location: North Carolina
Posts: 1,251
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Nice hack Erwin! Great to have while developing my vbWar 3.0. Thanks!
Reply With Quote
  #28  
Old 01-09-2004, 04:15 AM
Alien's Avatar
Alien Alien is offline
 
Join Date: Oct 2001
Posts: 827
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ahh, so this and even the one for vB2x were server killers, TECK?

I honestly never saw a difference in the server hmm.

I guess I can just set it up for admins to view if so...

Serge: Thanks for that help tho, much appreciated.
Reply With Quote
  #29  
Old 01-10-2004, 10:52 AM
coKe67's Avatar
coKe67 coKe67 is offline
 
Join Date: Dec 2003
Location: Germany
Posts: 1
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Thanks Erwin,
nice & easy:squareeyed:
Reply With Quote
  #30  
Old 01-11-2004, 11:06 AM
Vigile Vigile is offline
 
Join Date: Mar 2002
Posts: 26
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Page generated in 0.25738 seconds with 12 queries (3 queries for uncached templates)

Ok.. call me a knob if ya want, but what is the '3 queries for uncached templates' part trying to tell me? I'm presuming its something I need to fix.
Reply With Quote
  #31  
Old 01-11-2004, 11:20 AM
Erwin's Avatar
Erwin Erwin is offline
 
Join Date: Jan 2002
Posts: 7,604
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Vigile
Page generated in 0.25738 seconds with 12 queries (3 queries for uncached templates)

Ok.. call me a knob if ya want, but what is the '3 queries for uncached templates' part trying to tell me? I'm presuming its something I need to fix.
You have 3 uncached templates, which is causing that page to have 3 extra unnecessary queries. You need to add these templates to the template cache by editing that PHP file. To know which templates, you need to switch debug to on. My hack tells you how many templates are uncached, but not which ones.
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 09:27 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.05050 seconds
  • Memory Usage 2,369KB
  • Queries Executed 25 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (5)bbcode_php
  • (3)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)modsystem_post
  • (1)navbar
  • (6)navbar_link
  • (120)option
  • (1)pagenav
  • (1)pagenav_curpage
  • (4)pagenav_pagelink
  • (1)pagenav_pagelinkrel
  • (11)post_thanks_box
  • (11)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (11)post_thanks_postbit_info
  • (10)postbit
  • (11)postbit_onlinestatus
  • (11)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • pagenav_page
  • pagenav_complete
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete