authentic-theme icon indicating copy to clipboard operation
authentic-theme copied to clipboard

Theme: Dashboard improvements

Open Nixellion opened this issue 6 years ago • 105 comments

Todo list:

  1. Customizable widget like row data #920
  2. Show free memory with and without buffer/cache #973
  3. CPU temperature graphs #974
  4. Real-time stats for CPU and HDD temperatures #1073

I made myself this little custom dashboard (still wip), because the default webmin dashboard, and the one in authentic theme did not have just enough information for me about cpu load and more importantly - hdd usage information.

Here's how it looks

So I wonder if it would be possible to create something like that for webmin dashboard? Or is there restrictions on the back-end side?

What I mean is per-hdd usage information as well as actual usage stats in TBs and GBs, not just %.

Just curious.

Nixellion avatar Nov 16 '17 23:11 Nixellion

@Nixellion - What did you use to create that? More importantly, how can I create that??? I would love something similar to that as a webpage on my server/website.

myopenflixr avatar Nov 17 '17 00:11 myopenflixr

I think I could also rework Dashboard by adding more graphs. I don't like how much empty space it has.

@Nixellion I like the way it looks. Do you have full screenshots?

@myopenflixr Linux provide great opportunity for gathering this kind of data.

iliajie avatar Nov 17 '17 05:11 iliajie

https://afaqurk.github.io/linux-dash/#/system-status my be a staring point for an extended dashboard

gnadelwartz avatar Nov 17 '17 12:11 gnadelwartz

very nice

TMTYD avatar Nov 17 '17 19:11 TMTYD

@qooob It's almost the whole page. I used SPIN Dashboard as a frontend template, it's "Monitor" page. I used menu bar for links to local services like webmin, plex, etc.

@myopenflixr It the theme above as template, python-flask server for backend and data collection, and js on frontend. I also used flask-socketio to update data on the page. I used python just because I know it, i'm sure that webmin's perl and php should be capable to achieve something similar.

@gnadelwartz Looks very cool, the only downside i see is that information is spread out, I prefer it more tightly organized, with colored icons used to warn about stuff like smart test fails and high temperature. But that might be just me.

Nixellion avatar Nov 18 '17 02:11 Nixellion

@Nixellion Thanks for sharing. I'll see what I can do. By the way, Webmin is Perl only, no PHP.

iliajie avatar Nov 18 '17 07:11 iliajie

the nice thing about linux-dash is that all system information is gathered by a bash script and system commands, so it does not depend on any other service. how to display the data is up to the frontend and i'm shure ilia will make something beautiful out of the provided json data. 🙂

gnadelwartz avatar Nov 18 '17 08:11 gnadelwartz

I have a question.

I think it's easier and better to have something like this, in example of what NetData provides in our Dashboard:

screenshot from 2017-11-22 12-57-03

Rather than having graphs like this: graphs_example

The first example is more concise and same informative.

The only advantage of having example number two, when/if we create per core load graphs.

Can you share your thoughts please?

iliajie avatar Nov 22 '17 19:11 iliajie

Oh, that's way too wide!

The time series graphs are fine being tucked away under the System Statistics menu item where they currently are; I'd just like to seem the modernized a bit.

swelljoe avatar Nov 22 '17 19:11 swelljoe

Sure, it's not going to be as that.. The final version will be responsive.

iliajie avatar Nov 22 '17 19:11 iliajie

Looks good, I agree, however, that it takes a lot of space. I think maybe some of those could either be smaller, or be replaced with simple linear bars.

I'm not sure if disk read and write are required there. Also, which disk? All of them? Or just the system disk? If it's just the system disk then it might not be useful for NASes and file servers. I would prefer to have a total HDD space and per-HDD space as well. Ideally with HDD health indicators, basically I very much like the way hdd table turned our on my dashboard. I actually used it to track space left on a few disks while cleaning them up, it felt really nice :D

I agree that graphs are not needed in the dashboard.

Anyway, what I'd like to see in the dashboard:

  1. CPU load (total or per-cpu)
  2. RAM
  3. Swap
  4. Net traffic is a nice thing
  5. HDD Total
  6. Table with each HDD
  7. CPU and HDD temperatures

Also, in my dashboard I convert HDD space values between MBs, GBs and TBs depending on the value. So instead of showing 2300 GB it will show 2.3 TB. But instead of 0.9 TB it will show 900GB. Etc. I think I just found a JS function somewhere which does this convertion.

But I will be happy with any update of the dashboard really :)

Nixellion avatar Nov 23 '17 00:11 Nixellion

I will consider all of your points. I like it.

Doing it is very time consuming (going slow) but I will do my best to finish up by the end of the month.

iliajie avatar Nov 23 '17 07:11 iliajie

It's alive. :grinning: Little example with old design but how it will be implemented in the near future.

Live CPU update.

iliajie avatar Nov 23 '17 19:11 iliajie

It will contain ES6 sources for JavaScript as well.

iliajie avatar Nov 23 '17 19:11 iliajie

Hi @qooob

I like where this new feature seems to be heading and wanted to give my recommendations as well. I like @Nixellion's suggestions of all the extra stats on the main Webmin page. I personally find myself bouncing to Netdata to gather some basic info which I feel could easily be presented in Webmin.

I realize there could be a lot of debate on what to include as everyone would have their own personal preference on what should be included and what should not.

With that being said, could it be implemented where you give the user a list of stats to include within the configurable options? Maybe have about 10-15 different "real-time" stats we could pick and choose from to have displayed on the main Webmin page?

This would obviously give the user control on what gets displayed on the main page. @Nixellion gave his list of 7 stats he would like to see. Maybe someone else wants 6 completely different stats to appear. Also, it would be nice to have the option of setting the size/diameter of each individual "stat" as well as the order in which they appear?

So many different directions that you can go! These were just my thoughts and ideas. I realize it's much easier to throw out ideas than it is to implement them!

Keep up the great work!

myopenflixr avatar Nov 26 '17 15:11 myopenflixr

@myopenflixr Hi,

Thanks for sharing your ideas. It's important to me.

It's very difficult to make things work across all distros.

Right now, I'm about to release the version that updates CPU/Memory and Swap info constantly, providing actual information.

Then, I will continue with restructuring System Information page.

You can share which stats you would want to see in particular, beside main ones (CPU/Memory).

iliajie avatar Nov 26 '17 16:11 iliajie

Looking forward to your update with the real time reporting!!

As for what options I would like to see in addition to CPU & Memory. Here's my list. These are all references to menu options within in Netdata. I realize they may not all be able to be used at the same time....unless....you gave us the option for more than 1 row for these "gauges"

  • Network Interfaces (to monitor real-time I/O of selected interfaces. I would need "eth0" and "tun0". eth0 is my boned interface and tun0 is my VPN interface.
  • Nginx Local
  • Web Log Nginx
  • Fail2Ban (just those currently in jail)
  • Disks (Disk Space used/remaining of my mounted shared drives)

Those are the main one I personally pay attention to.

myopenflixr avatar Nov 26 '17 20:11 myopenflixr

I will consider all of those points.

After tomorrow's update with main monitors for CPU and Memory, I will continue with your thoughts.

I personally interested in network I/O. In disks and other as well but not updating too often, maybe every 10-15 seconds.

By the way, you can control pie-charts diameter and "level of hairiness" already on the theme's settings. 😉

iliajie avatar Nov 26 '17 20:11 iliajie

I thought about the idea of allowing user to choose what to display, and that would be perfect and ideal, I just thoguht it would be hard to implement. But it's actually the only way to make it really useful for everyone :)

As for distros... I'm not sure about Perl, but in Python I just found a few libraries which are cross-platform and cross-distro as well. I was actually testing my dash on windows, and it works on linux, with a few exceptions.

Maybe there's something like that for Perl.


Update rate is not very important, but around 10 seconds should be good, that's what I use in my dashboard.

Nixellion avatar Nov 26 '17 20:11 Nixellion

Okay, we'll figure it out. Step by step.

Some monitors will be updated with greater period of time, some we'll be pulled every second, like CPU, Memory and Network Traffic. It looks already very impressive in terms of speed, from judging of how it works on my VMs with limited recourses.

When I talked about distros I meant different Linux distributions. Having it cross-platform would be even more complex to achieve.

iliajie avatar Nov 26 '17 21:11 iliajie

I have added the first implementation of Real-Time Monitoring for CPU and Memory/Swap to update System Information page and Side Slider in real time.

You can artificially stress the load of CPU and Memory to see how it works by running:

stress --vm-bytes $(awk '/MemFree/{printf "%d\n", $2 * 0.99;}' < /proc/meminfo)k --vm-keep -m 1

JavaScript source for stats is also published.

Take a look and share your experience.

iliajie avatar Nov 27 '17 12:11 iliajie

You can also control its timeout and disable this feature complely in theme's settings, under System Information page section.

iliajie avatar Nov 27 '17 13:11 iliajie

Could you let user choose to update CPU load averages in x seconds/minutes ? What's the current timing, please? It seems about 10 minutes at the moment, can you confirm? eg. I would need it to update every minute

7starsone avatar Nov 27 '17 15:11 7starsone

It's already allowed in theme's settings. However, it doesn't make sense. With the same result, you could edit scheduled functions in Webmin Configuration and set time interval for background update in theme settings for Side Slider.

By default there is only 500ms delay after previous request been successfully accomplished.

iliajie avatar Nov 27 '17 16:11 iliajie

These are the real-time updates.

iliajie avatar Nov 27 '17 16:11 iliajie

who can i this enable ?

TMTYD avatar Nov 27 '17 22:11 TMTYD

Just force update to the latest git version using theme's settings.

iliajie avatar Nov 27 '17 22:11 iliajie

did you change the calculation method for memory? dashbord shows now 95% used, before update to latest theme it was less than 50% IMHO

values from https://mail.rrr.de/webmin/proc/index_size.cgi?xnavigation=1 Real memory: 5.83 GB total / 3.09 GB free / 2.85 GB cached

used memory should be 5.83 - 3.09

may be memory used for cache can be shown in a different color, but should not counted as used.

gnadelwartz avatar Nov 27 '17 23:11 gnadelwartz

another issue, if i click on the recollect button in the top rigth, i get the error message system information cant be recollected

gnadelwartz avatar Nov 27 '17 23:11 gnadelwartz

So I'm experiencing the same issue as @gnadelwartz.

And here's another issue that occurs AFTER i click on recollect and get the error message that @gnadelwartz mentioned....

After getting the error message "System information can't be recollected. Please try again later", any link I click on duplicates the url AFTER my existing URL (I access webmin via SSL behind Nginx Reverse Proxy).

Here's an detailed explanation: 1 - Current URL = https://www.domain.com/webmin/sysinfo.cgi?xnavigation=1 (Everything looks good)

2 - Click on recollect button upper right = error message "System information can't be recollected. Please try again later." (Doesn't refresh page)

3 - Click on Dashboard Link = URL of https://www.domain.com/webminhttps://www.domain.com/webmin/sysinfo.cgi?xnavigation=1. (Reloads the page but the chart info disappears (see pic) error

4 - Click on Dashboard Link again fixes the problem and takes me to the correct URL of https://www.domain.com/webmin/sysinfo.cgi?xnavigation=1 (Everything now working again)

By the way, I noticed this error right around the time you released 19.03 (before any of the chart enhancements)

Let me know if you need any additional info regarding this strange error.

myopenflixr avatar Nov 28 '17 02:11 myopenflixr