Dashboard cpu update 10 seconds just hangs


  • Rebel Alliance Global Moderator

    Ok so noticed my dashboard cpu usage is not updating.

    I just ran a gitsync this morning, and even rebooted after

    Currently running
    2.1-DEVELOPMENT (i386)
    built on Fri Nov 25 17:45:38 EST 2011
    FreeBSD 8.1-RELEASE-p6

    I have flushed my cache, tried a different browser, tried different themes.  Found this thread
    http://forum.pfsense.org/index.php/topic,41768.msg218637.html#msg218637

    That talks about sajax.js, I don't have that file only ajax.js

    Just sits there – but Diagnostics: System Activity works fine, and the processor graph in RRD is working as well..  Just the dashboard hangs.  I have tried removing and re adding the widget and that produced this crash report, which I submitted

    PHP Errors:
    [20-Dec-2011 10:18:03] PHP Fatal error:  Call to undefined function get_uptime() in /usr/local/www/widgets/widgets/system_information.widget.php on line 160

    Which does not seem related to cpu usage - but could be related?  I think that crash was not quite right either, since the uptime on the dashboard seems to be working to me.




  • I'm also having the same problem after the update.  It isn't CPU utilization for me as I'm at 0% most of the time.  Not that big of an issue as the RRD graphs work as you said.


  • Rebel Alliance Global Moderator

    Yeah I agree its not that big of a deal, other than hey something broke it because it use to work ;)



  • I just did a clean install of 2.0, upgraded to 2.0.1 and then sync'd to github and the dashboard works.  Hmm,  going to do some further digging and see why my existing install broke….....

    But it is something that was/is working and breaks on upgrade.  LOL


  • Rebel Alliance Global Moderator

    Nice clean install with gitsync from 2.01 might be a good project for next week since off, etc.

    but everything seems to be working great!  Hate to do something for no reason, cpu widget not working needs to be fixed - but not really a priority type item.  More of curiosity sort of thing on why is it not working ;)


  • Rebel Alliance Developer Netgate

    Would probably be easy for someone familiar with debugging web apps to spot if you had firebug or something similar running and watching for errors.

    Last time I saw that it was an old/invalid javascript file that was being included (sajax.js) but I haven't seen it happen since.

    2.1 also includes various changes moving from Prototype to jQuery so there is potential for issues there as well.

    Comparing the output of:

    find /usr/local/www/
    

    Between a working and non-working box would also be useful.


  • Rebel Alliance Global Moderator

    here is output from mine that doesn't work, now just need one from one that does ;)

    list.txt



  • i was going to post this issue awhile ago (thinking it started almost 2 months ago) but was going to wait till 2.1 is final. i think it has to do with jQuery because it has broken a few other things in 2.1.


  • Rebel Alliance Global Moderator

    Cino if that was the case, then why this statement from tix

    "I just did a clean install of 2.0, upgraded to 2.0.1 and then sync'd to github and the dashboard works."

    Would seem to me if something was broken in the code it should not work no matter how you got to the code - be it multiple git syncs or fresh install, etc.

    If works from clean install and then gitsync – what happened, and how to fix so don't have to do a clean install, etc.


  • Rebel Alliance Developer Netgate

    If it works on a clean install, but not an upgrade, there must be a file still on your box under /usr/local/www/ somewhere that is getting read in (most likely some JS) and conflicting.

    You could try to rm -rf /usr/local/www and then do a gitsync, but that's a bit extreme and wouldn't really help solve the problem in the long run.


  • Rebel Alliance Global Moderator

    well I posted the contents of my www folder – anything jump out at you?

    Maybe we could get cino to post the content of his.


  • Rebel Alliance Developer Netgate

    Nothing jumped out, but I haven't really paid close attention to what the new files are since the jQuery changes.



  • i have too many packages and custom stuff to wipe out everything.. I did remove the following folders: widgets, classes, javascript with now luck. Should had mention this before, but cpu_graphs.widget.php stop working the same time system information widget stopped.



  • I have two boxes in particular…

    2.0.1-RELEASE (i386)
    built on Mon Dec 12 18:24:17 EST 2011
    FreeBSD 8.1-RELEASE-p6                      No Gitsync

    CPU graph works.

    2.1-DEVELOPMENT (i386)
    built on Tue Sep 13 17:28:43 EDT 2011
    FreeBSD 8.1-RELEASE-p4                      Recent Gitsync

    CPU graph doesn't work.

    Both with widescreen, pfblocker, siproxd, filemanager packages.

    In case it helps...



  • OK guys hopes this helps I fixed the 2.1 Development Issue CPU Usage and other widgets not updating:

    Testing it right now on couple different boxes with:

    2.1-DEVELOPMENT (i386)
    built on Fri Nov 25 14:30:42 EST 2011

    FreeBSD 8.1-RELEASE-p6

    Remove the .txt extension from the files and put them in the proper directories stated in the install_widget_fix.txt  file.

    Fixed Javascript errors tested on IE 7, IE 9, Firefox 8.0, Safari, Chrome.  Don't worry if it stays at 100% load has to do with how they figure load using clock cycles average.  It will go back down once Web Gui fully loaded or might take a bit sometimes.  It takes 10 seconds to update screen.  They use the same exact php code as LCDproc uses to figure CPU Usage.

    ajax.js.txt
    cpu_graphs.js.txt
    cpu_graphs.widget.php.txt
    install_widget_fix.txt



  • Trying it now and seems to be working…    Thanks!  :)



  • Glad I can be of some help.  ;D


  • Rebel Alliance Developer Netgate

    I didn't realize it was the cpu_graphs widget, I thought it was the cpu bar in the system info widget (though I suppose one could have hurt the other)

    the cpu_graphs widget was removed a while back due to it being inaccurate on multi-core systems, so it does not exist in 2.1 proper.


  • Rebel Alliance Global Moderator

    Yeah not the graph, its the little bar for me – I posted a screenshot showing it.

    It just sits that at updating in 10 seconds -- taunting!!

    As already stated the CPU graph in RRD is working, etc.  And System Activity under Diag works fine as well showing cpu usage -- just the stupid little bar on the systeminfo widget atleast for me that is what the problem is.

    I had grabbed the files he tweaked, but was not ready to test out his few changes - checked diff of his files vs ones on my system, mainly because the one file was in a folder called disabled, and was not ready to pull that out, etc.



  • @johnpoz:

    Yeah not the graph, its the little bar for me – I posted a screenshot showing it.

    It just sits that at updating in 10 seconds -- taunting!!

    As already stated the CPU graph in RRD is working, etc.  And System Activity under Diag works fine as well showing cpu usage -- just the stupid little bar on the systeminfo widget atleast for me that is what the problem is.

    I had grabbed the files he tweaked, but was not ready to test out his few changes - checked diff of his files vs ones on my system, mainly because the one file was in a folder called disabled, and was not ready to pull that out, etc.

    The CPU Graph Widget uses the same code as the CPU Usage bar…  They both work.  The PHP code is the same as the PHP code that is used in LCDproc CPU usage too.  Only reason I added the CPU Graph widget code is because I fixed a javascript error in it too.  Also, if you notice your your Interface and Gateway widgets will update along with other items in the System Infomation widget every 10 seconds now.  So the fix was not just for the CPU Graph widget it was for a few widgets that use the same javascript to update the web gui output.


  • Rebel Alliance Global Moderator

    "Also, if you notice your your Interface and Gateway widgets will update now along with other items in the System Infomation widget every 10 seconds now."

    Ok great will give it a go then, so like the response time on gateways and interface stats, and uptime will update every 10 seconds?  Notice that uptime only updates when you refresh, same with interface stats. I would assume the changes would be put in, or will the next time I git sync or install a new version will it get overwritten?



  • Well, I am not a coder for the pfSense Project.  So if it is still broken in the next git sync or update then yes you will have to apply the fixes again.  Unless the coders read this section.  I don't know any of the guys coding on this project.  Sorry..

    "Notice that uptime only updates when you refresh, same with interface stats."

    I will look into that and see about adding that update to the 10 second javascript loop if you want me to.

    -Joe Cowboy



  • @joe_cowboy thank you for fixing this. I can comfirm its working on my box also. System Info and Cpu Graphs are displaying data now.

    @jimp would it be possible to add these fixes to 2.1 in the near future? including the cpu graph? I don't mind if it stays in the deactivated folder and we have to manually move it over to use it.


  • Rebel Alliance Global Moderator

    ok just copied over the files and not looking like its working, I restarted the webconfigurater..

    Let me refresh my browser cache,etc.

    edit: ok that worked now looks like everything is working.  Interface stats do update, and so does current time and so do ping times to gateways.. And uptime is working as well, before I was looking at current time and it wasn't updating unless refresh.

    Looks good man - Thanks!!!



  • "Notice that uptime only updates when you refresh, same with interface stats."

    Those are updating just have to wait a while to see changes sometimes.  But I did make a tweak to the Up time added seconds so you can see it is updating.

    put the functions.inc.php  file into /usr/local/www/includes/

    remove the .txt extension before uploading to the folder.

    -Joe Cowboy

    functions.inc.php.txt



  • Ok made another tweak to the System Information Widget for you and added Temperature.  Right now just checks the first core or core 0.  I will go back and add mulit core temp, CPU Graph and CPU Usage out put to the Web Gui.

    coretemp.ko driver download:

    AMD64 bit download file:
    http://files.pfsense.org/jimp/ko-8.1/amd64/coretemp.ko

    i386 download file:
    http://files.pfsense.org/jimp/ko-8.1/i386/coretemp.ko

    I will go ahead and post all files again here along with other files I modded.  Oh yes to answere your question with git sync update you will have to reload theses fixes again still broken:

    Remember to remove the .txt extension from the file.

    ajax.js.txt
    cpu_graphs.js.txt
    cpu_graphs.widget.php.txt
    functions.inc.php.txt
    install_widget_fix.txt
    system_information.widget.php.txt


  • Rebel Alliance Developer Netgate

    joe_cowboy - You should sign up on github, fork the repo, commit those changes, and submit a pull request. Then we can import those changes directly into mainline.



  • Here is some good forum thread on getting the Tempurature drivers to work for different boards in freebsd:

    http://forums.freebsd.org/showthread.php?t=882

    ipmi.ko driver download:

    AMD64 bit download file:
    http://files.pfsense.org/jimp/ko-8.1/amd64/ipmi.ko

    i386 download file:
    http://files.pfsense.org/jimp/ko-8.1/i386/ipmi.ko

    Another Temp driver if the coretemp.ko driver does not work.  Only thing if somebody uses this driver and it uses different ODI then I will need those OID values to add as a check for for those values.

    Will need to load the driver just like the other using/creating loader.conf.local in /boot

    add this line: ipmi_load="YES"

    Also as a check could by typing at the Console System prompt
    type this at prompt: kldload ipmi
    type this next at prompt: sysctl -a | grep ipmi
    If not reboot pfSense box and try those two commands again and see if there are any temp or temperature values and post them here.

    Hope this helps.  Might need to do some more research on drivers to use and need feedback.  Thanks

    -Joe Cowboy



  • @joe_cowboy nice work! I totally forgot about the temp on the status information page….I had it for while but ended up using a page i created... comes in handy for my box during the summer time ;-)



  • @jimp:

    joe_cowboy - You should sign up on github, fork the repo, commit those changes, and submit a pull request. Then we can import those changes directly into mainline.

    Ok, did as you suggested signed up on github, commited the changes and did a submit a pull request.  I also fixed it now if tempurature not availible will not display the bar graph but that does not mean the system does not support it.  Have to add drivers when needed.  I will need feed back on the drivers  so we can make sure we can pole the sysctl temperature OIDs correctly.  Right now I just check for two different ones.  So please feed back so I can add the different OID temperature checks in.  Unless somebody knows a list of them all that is supported with the current acpi drivers under Freebsd 8.1.

    -Joe Cowboy



  • Ok the fixes and tweaks have now been Merged to master branch.  You can now update via gitsync with out having to upload the patches.  I will work on adding the idea of checking multiple CPU cores.

    I am also want to make a package for bind97 with RRD Graphs for pfsense 2.x.  Since those are already packaged for Freebsd 8.1.  I have just set it up on my pfsense box works great, except the Bind RRD Graphs.  Took a few head bangs but got it to work.  The wide screen package needs some major fixes too.  Jacks the Widget dashboard up.  I know there is one guy that made a patch for the menus you have to upload by hand but it still needs some major CSS fixes.

    Back on topic.  Hope this helps out.  Enjoy.

    -Joe Cowboy


  • Rebel Alliance Developer Netgate

    After I merged those changes I went through and cleaned up the widget a bit. I have no idea why the original widget creator used tags for displaying data, they were clunky and taking up too much room and I swapped them out for tags instead.

    (Another bonus, you can't click in the fields and edit them anymore… that always seemed weird to me)


  • Rebel Alliance Global Moderator

    Joe_cowboy I want to thank you for your fixes!!!!  And hopefully see more of your contributions, sounds like your part of the team now if your code has been merged into the master branch??

    I am quite sure there is quite bit of clean up that could use your scrutiny.

    So you mention bind – I would be very interested in anything you could do to implement bind into pfsense..  I do like unbound and the work being done in that direction...  Its a great product for most scenarios where pfsense would be used..  But then again I would much rather run a full bind product for my dns where I have full control and can have duplication of dns services where one box is master and another slave, etc.

    I keep wanting to move to the full bind running on my pfsense - but since its not actually a package its kind of a road block...

    I have munin running giving me stats on my unbound running on pfsense - it would be sweet as hell to see full bind as an option with stats in an rrd, etc.. Is that somthing your interested in doing???  I would sign up for sure as your #1 beta tester ;)


Locked