Go Back   vb.org Archive > vBulletin Modifications > Archive > vB.org Archives > vBulletin 3.5 > vBulletin 3.5 Add-ons
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools
Microstats - load times, server loads, queries, uncached templates Details »»
Microstats - load times, server loads, queries, uncached templates
Version: 1.2.1, by ShiningArcanine ShiningArcanine is offline
Developer Last Online: Nov 2023 Show Printable Version Email this Page

Version: 3.5.4 Rating:
Released: 06-10-2005 Last Update: 06-08-2006 Installs: 680
Uses Plugins
 
No support by the author.

This is a derivative of Erwin's microstats hack for vBulletin 3.5.0's plugin system. The main difference is that by default it shows the page generation time and query count to the public. Server loads and Uncached Queries are shown only to administrators.

I had sent this to Erwin so he could release if he wanted to but instead he told me that I had permission to release it; hence why I am releasing it.

This should work with vBulletin 3.5.0 RC 1 through vBulletin 3.6.1 and later.

Installation is very simple. Just import the plugin via vBulletin's "Download / Upload Plugins" page in the Plugin System in the Admin Control Panel and you're done.

I'll try to correct any bugs that you find. Let me know if you like this plugin and don't forget to click the install link if you install this.

Optional config.php Variables


$config['Microstats']['replacementvariable']

Setting this variable will make microstats place its data before any instance of whatever you set this variable to. Be careful with this as you might see microstats in mutiple places. My suggestion is to use a unique comment in the HTML source to prevent any issues.

E.g. $config['Microstats']['replacementvariable'] = '<!-- display microstats here -->';

$config['Microstats']['adminonly']

Setting this variable to anything will make microstats display itself only to administrators.

E.g. $config['Microstats']['adminonly'] = true;

Update History


Product File: Uploaded a product file that replaced the plugin file.
Version 1.2.1: Fixed a bug that broke optional config.php settings
Version 1.2.0: Added OpenBSD, FreeBSD and NetBSD support; added Replacement variable setting in config.php; added Display only to Administrators Setting in config.php; fixed bug affecting Linux/Unix servers that have exec('uptime') support and not /proc/loadavg support
Version 1.1.0: Added names of uncached templates, included a bugfix for people who don't have proc avaliable on their system and made the code look a little nicer as well
Version 1.0.1: Bugfix for Windows users, sanitized the code to make it look nicer
Version 1.0.0: Initial Release

Show Your Support

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

Comments
  #392  
Old 03-19-2010, 12:22 PM
KURTZ KURTZ is offline
 
Join Date: Nov 2006
Location: Italy
Posts: 2,257
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by testbot View Post
i don't think it would be ethical to reuse someone's code and release their product under my name.
just send a PM to the author ...
Reply With Quote
  #393  
Old 03-19-2010, 07:00 PM
Fraxter Fraxter is offline
 
Join Date: Jul 2007
Posts: 158
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Developer Last Online: Oct 2008
I think there is no much chance for get the permissions...
Reply With Quote
  #394  
Old 03-22-2010, 12:17 PM
KURTZ KURTZ is offline
 
Join Date: Nov 2006
Location: Italy
Posts: 2,257
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Pander23 View Post
I think there is no much chance for get the permissions...
just put the older author like 'co-author' and link the original hack in the first post ... however there isn't any disclaimer here ...
Reply With Quote
  #395  
Old 03-22-2010, 01:49 PM
testbot testbot is offline
 
Join Date: Feb 2009
Posts: 373
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

if Lyne says it's ok i'll update this for vb4 and provide support the best i can.
Reply With Quote
  #396  
Old 03-22-2010, 02:05 PM
Lynne's Avatar
Lynne Lynne is offline
 
Join Date: Sep 2004
Location: California/Idaho
Posts: 41,180
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

I cannot give an OK for this to be posted. The only person who can give an OK for this to be ported to vB4 is the developer and he is not even responding to PMs (I sent him one a while ago about this).
Reply With Quote
  #397  
Old 03-22-2010, 02:18 PM
testbot testbot is offline
 
Join Date: Feb 2009
Posts: 373
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

as always thanks for the info, Lynne
Reply With Quote
  #398  
Old 03-22-2010, 04:14 PM
Kolbi Kolbi is offline
 
Join Date: Mar 2009
Location: D - S?dbaden
Posts: 899
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Just recode it...
Reply With Quote
  #399  
Old 04-02-2010, 01:33 PM
Jaxel Jaxel is offline
 
Join Date: Sep 2005
Posts: 1,160
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

The new error is from THIS code:

Code:
	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>';
		}
    }
It is because the variable "$tempusagecache" no longer exists (just as how "$pagestarttime" no longer exists). If someone finds out what variable "$tempusagecache" is now called, we can fix this mod.
Reply With Quote
  #400  
Old 04-02-2010, 02:07 PM
Jaxel Jaxel is offline
 
Join Date: Sep 2005
Posts: 1,160
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

FIXED!

I'm awesome... this is the new plugin... DONT JUST CUT AND PASTE THIS CODE, READ MY COMMENT BELOW FIRST!

Code:
// Microstats 1.2.1 Plugin

$pageendtime = microtime();
$starttime = explode(' ', TIMESTART);
$endtime = explode(' ', $pageendtime);
$totaltime = vb_number_format($endtime[0] - $starttime[0] + $endtime[1] - $starttime[1], 5);
$debughtml = '<center><span class="smallfont">Page generated in <b>' . $totaltime . '</b> seconds with <b>' . $vbulletin->db->querycount . '</b> queries';

if ($vbulletin->userinfo['usergroupid'] == 6) {

	if ($loadavg = @file_get_contents("/proc/loadavg")) {
	
		$regs = explode(" ",$loadavg);
		$serverload = ' [Server Loads: <b>' . $regs[0] .'</b> ' . $regs[1] . ' : ' . $regs[2] . ']';
	
	}elseif ($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] . ']';
	
	}elseif ($loadavg = @'sysctl vm.loadavg|cut -d" " -f3-5') {
	
		$regs = explode(" ",$loadavg);
		$serverload = ' [Server Loads: <b>' . $regs[0] .'</b> ' . $regs[1] . ' : ' . $regs[2] . ']';
	
	}

	$tempusagecache = vB_Template::$template_usage;
	$_TEMPLATEQUERIES = vB_Template::$template_queries;

	$debughtml .= iif($_TEMPLATEQUERIES, ' (<b>' . sizeof($_TEMPLATEQUERIES) . '</b> queries for uncached templates)', '') . "$serverload";
	
	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>';
		}
	}

}

$debughtml .= "</span></center>";

if (!$vbulletin->config['Microstats']['replacementvariable']) {

	$vbulletin->config['Microstats']['replacementvariable'] = '</body>';

}

if (($vbulletin->config['Microstats']['adminonly'] and $vbulletin->userinfo['usergroupid'] == 6) or !$vbulletin->config['Microstats']['adminonly']){

	$output = str_replace($vbulletin->config['Microstats']['replacementvariable'], $debughtml . $vbulletin->config['Microstats']['replacementvariable'], $output);

}

// Microstats 1.2.1 Plugin

OKAY... right now the code above ISN'T working, vb.org is giving me errors with a single line of code when I'm trying to post it here, so let me explain what you need to do to fix it. Search for the following piece of text in the code above:

Code:
@exec(uptime)
Add SINGLE QUOTES around the word 'uptime'. It looks like VB.ORG is having problems with executing the exec function inside of posts. VB.ORG people, if you are reading this, you need to fix this IMMEDIATELY! Someone could potentially execute code from posts with this error.



A comment about copyright with code... History has shown us, that if you give two engineers the same problem and unlimited amount of time, they will both eventually come up with the same solution; especially if there is only ONE way to fix the problem. With this modification, there is really only ONE way to do it. I mean I could rewrite the code, come up with new variable names and everything... but its pretty much going to be the same exact code, even though I wrote it from scratch. If I rewrite the code, can I post it as a new mod? Even though its going to look pretty much the same?
Reply With Quote
  #401  
Old 04-02-2010, 02:21 PM
testbot testbot is offline
 
Join Date: Feb 2009
Posts: 373
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Jaxel View Post
The new error is from THIS code:

Code:
	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>';
		}
    }
It is because the variable "$tempusagecache" no longer exists (just as how "$pagestarttime" no longer exists). If someone finds out what variable "$tempusagecache" is now called, we can fix this mod.
tempusagecache still exists in includes/functions.php on line 6675 in vb4.
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 01:02 PM.


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.09148 seconds
  • Memory Usage 2,323KB
  • Queries Executed 27 (?)
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
  • (4)bbcode_code
  • (4)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
  • (3)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_postinfo_query
  • fetch_postinfo
  • 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