It is currently October 4th, 2023, 7:07 am
UsageMonitor Discussions
-
- Developer
- Posts: 22590
- Joined: April 19th, 2009, 11:02 pm
- Location: Fort Hunt, Virginia, USA
UsageMonitor Discussions
Let's use this thread to discuss bugs, suggestions, tips and tricks with the new UsageMonitor plugin.
-
- Developer
- Posts: 22590
- Joined: April 19th, 2009, 11:02 pm
- Location: Fort Hunt, Virginia, USA
Re: UsageMonitor Discussions
Top Process
If you want this without all the internal Windows OS processes, you can set something like:
Blacklist=_Total|Idle|dwm|wmpnetwk|csrss|svchost|lsass|System|system
On each measure where Index > 0. Then you can restrict it more to how much CPU the "applications" you are running are using. Your mileage will vary, you can watch it for a while add anything else you "don't want". My view is that a lot of those processes, like dwm and svchost, are pretty much always using a little CPU, but they are really just "background noise".
On the measure with Index=0, the "total" one, you want to include everything, so just leave the default for Blacklist, which is Blacklist=_Total|Idle. Any time you are using Index=0, the instance _Total is redundant, and the instance Idle that is part of the CPU counter generally isn't useful, as it in effect means "how much ISN'T being used?". That is why those two instances are always Blacklist'ed by default.
Code: Select all
[Rainmeter]
Update=1000
DynamicWindowSize=1
AccurateText=1
[Variables]
[MeasureAllCPU]
Measure=Plugin
Plugin=UsageMonitor
Alias=CPU
Index=0
[MeasureTop1]
Measure=Plugin
Plugin=UsageMonitor
Alias=CPU
Index=1
Substitute="":"---"
[MeasureTop2]
Measure=Plugin
Plugin=UsageMonitor
Alias=CPU
Index=2
Substitute="":"---"
[MeasureTop3]
Measure=Plugin
Plugin=UsageMonitor
Alias=CPU
Index=3
Substitute="":"---"
[MeasureTop4]
Measure=Plugin
Plugin=UsageMonitor
Alias=CPU
Index=4
Substitute="":"---"
[MeasureTop5]
Measure=Plugin
Plugin=UsageMonitor
Alias=CPU
Index=5
Substitute="":"---"
[MeterBack]
Meter=Shape
Shape=Rectangle 0.5,0.5,200,144,12 | Fill Color 47,47,47,255 | StrokeWidth 1.5 | Stroke Color 150,150,150,255
UpdateDivider=-1
[AllStyle]
X=10
Y=5R
FontSize=11
FontWeight=400
FontColor=255,255,255,255
DynamicVariables=1
AntiAlias=1
[RightStyle]
X=190
Y=0r
StringAlign=Right
[MeterAllCPUName]
Meter=String
MeterStyle=AllStyle
Y=10
FontWeight=700
Text=Total CPU
[MeterAllCPUValue]
Meter=String
MeterStyle=AllStyle | RightStyle
Text=[MeasureAllCPU:1]%
[MeterTop1Name]
Meter=String
MeasureName=MeasureTop1
MeterStyle=AllStyle
Y=10R
[MeterTop1Value]
Meter=String
MeterStyle=AllStyle | RightStyle
Text=[MeasureTop1:1]%
[MeterTop2Name]
Meter=String
MeasureName=MeasureTop2
MeterStyle=AllStyle
[MeterTop2Value]
Meter=String
MeterStyle=AllStyle | RightStyle
Text=[MeasureTop2:1]%
[MeterTop3Name]
Meter=String
MeasureName=MeasureTop3
MeterStyle=AllStyle
[MeterTop3Value]
Meter=String
MeterStyle=AllStyle | RightStyle
Text=[MeasureTop3:1]%
[MeterTop4Name]
Meter=String
MeasureName=MeasureTop4
MeterStyle=AllStyle
[MeterTop4Value]
Meter=String
MeterStyle=AllStyle | RightStyle
Text=[MeasureTop4:1]%
[MeterTop5Name]
Meter=String
MeasureName=MeasureTop5
MeterStyle=AllStyle
[MeterTop5Value]
Meter=String
MeterStyle=AllStyle | RightStyle
Text=[MeasureTop5:1]%
Blacklist=_Total|Idle|dwm|wmpnetwk|csrss|svchost|lsass|System|system
On each measure where Index > 0. Then you can restrict it more to how much CPU the "applications" you are running are using. Your mileage will vary, you can watch it for a while add anything else you "don't want". My view is that a lot of those processes, like dwm and svchost, are pretty much always using a little CPU, but they are really just "background noise".
On the measure with Index=0, the "total" one, you want to include everything, so just leave the default for Blacklist, which is Blacklist=_Total|Idle. Any time you are using Index=0, the instance _Total is redundant, and the instance Idle that is part of the CPU counter generally isn't useful, as it in effect means "how much ISN'T being used?". That is why those two instances are always Blacklist'ed by default.
You do not have the required permissions to view the files attached to this post.
-
- Developer
- Posts: 22590
- Joined: April 19th, 2009, 11:02 pm
- Location: Fort Hunt, Virginia, USA
Re: UsageMonitor Discussions
Drive Lights
Code: Select all
[Rainmeter]
Update=1000
DynamicWindowSize=1
AccurateText=1
[Variables]
Drive1=C:
Drive2=D:
OffLight=137,137,137,255
GreenLight=105,209,115,255
CoralLight=244,125,67,255
[MeterAllBackground]
Meter=Shape
Shape=Rectangle 0.5,0.5,70,55,12 | Fill Color 47,47,47,255 | StrokeWidth 1.5 | Stroke Color 150,150,150,255
W=171
UpdateDivider=-1
[MeasureDrive1Reads]
Measure=Plugin
Plugin=UsageMonitor
Category=LogicalDisk
Counter=Disk Reads/sec
Name=#Drive1#
IfCondition=MeasureDrive1Reads > 0
IfTrueAction=[!SetOption MeterDrive1Reads Color "Fill Color #GreenLight#"][!UpdateMeter MeterDrive1Reads][!Redraw]
IfFalseAction=[!SetOption MeterDrive1Reads Color "Fill Color #OffLight#"][!UpdateMeter MeterDrive1Reads][!Redraw]
[MeasureDrive1Writes]
Measure=Plugin
Plugin=UsageMonitor
Category=LogicalDisk
Counter=Disk Writes/sec
Name=#Drive1#
IfCondition=MeasureDrive1Writes > 0
IfTrueAction=[!SetOption MeterDrive1Writes Color "Fill Color #CoralLight#"][!UpdateMeter MeterDrive1Writes][!Redraw]
IfFalseAction=[!SetOption MeterDrive1Writes Color "Fill Color #OffLight#"][!UpdateMeter MeterDrive1Writes][!Redraw]
[MeasureDrive2Reads]
Measure=Plugin
Plugin=UsageMonitor
Category=LogicalDisk
Counter=Disk Reads/sec
Name=#Drive2#
IfCondition=MeasureDrive2Reads > 0
IfTrueAction=[!SetOption MeterDrive2Reads Color "Fill Color #GreenLight#"][!UpdateMeter MeterDrive2Reads][!Redraw]
IfFalseAction=[!SetOption MeterDrive2Reads Color "Fill Color #OffLight#"][!UpdateMeter MeterDrive2Reads][!Redraw]
[MeasureDrive2Writes]
Measure=Plugin
Plugin=UsageMonitor
Category=LogicalDisk
Counter=Disk Writes/sec
Name=#Drive2#
IfCondition=MeasureDrive2Writes > 0
IfTrueAction=[!SetOption MeterDrive2Writes Color "Fill Color #CoralLight#"][!UpdateMeter MeterDrive2Writes][!Redraw]
IfFalseAction=[!SetOption MeterDrive2Writes Color "Fill Color #OffLight#"][!UpdateMeter MeterDrive2Writes][!Redraw]
[MeterDrive1]
Meter=String
X=10
Y=10
FontSize=11
FontWeight=400
FontColor=255,255,255,255
AntiAlias=1
Text=#Drive1#
[MeterDrive1Reads]
Meter=Shape
X=25r
Y=4r
W=8
H=8
Shape=Ellipse 4,4,4 | StrokeWidth 0 | Extend Color
Color=Fill Color 137,137,137,255
UpdateDivider=-1
[MeterDrive1Writes]
Meter=Shape
X=3R
Y=0r
W=8
H=8
Shape=Ellipse 4,4,4 | StrokeWidth 0 | Extend Color
Color=Fill Color 137,137,137,255
UpdateDivider=-1
[MeterDrive2]
Meter=String
X=10
Y=10R
FontSize=11
FontWeight=400
FontColor=255,255,255,255
AntiAlias=1
Text=#Drive2#
[MeterDrive2Reads]
Meter=Shape
X=25r
Y=4r
W=8
H=8
Shape=Ellipse 4,4,4 | StrokeWidth 0 | Extend Color
Color=Fill Color 137,137,137,255
UpdateDivider=-1
[MeterDrive2Writes]
Meter=Shape
X=3R
Y=0r
W=8
H=8
Shape=Ellipse 4,4,4 | StrokeWidth 0 | Extend Color
Color=Fill Color 137,137,137,255
UpdateDivider=-1
You do not have the required permissions to view the files attached to this post.
-
- Developer
- Posts: 267
- Joined: October 13th, 2016, 1:28 am
- Location: Earth
Re: UsageMonitor Discussions
Also a huge thing that this plugin brings to the table is the ability to get GPU & VRAM info without the need for a 3rd party program (Although it does require windows 10). So if you just change everywhere it says Alias=CPU to Alias=GPU that example skin will then give you your total GPU usage and the top 5 programs using GPU which is pretty awesome.
-
- Rainmeter Sage
- Posts: 2468
- Joined: March 23rd, 2015, 5:26 pm
Re: UsageMonitor Discussions - GPU oddity?
Hello,
A question for the devs: I've noticed an oddity with the new UsageMonitor plugin... if you monitor the Rainmeter process, it appears that Rainmeter does use GPU, but the memory used is 0 bytes. Is this really true? (PerfMon shows the same thing, by the way...)
A question for the devs: I've noticed an oddity with the new UsageMonitor plugin... if you monitor the Rainmeter process, it appears that Rainmeter does use GPU, but the memory used is 0 bytes. Is this really true? (PerfMon shows the same thing, by the way...)
Code: Select all
[Rainmeter]
AccurateText=1
DynamicWindowSize=1
Update=1000
[MeasureGPU]
Measure=Plugin
Plugin=UsageMonitor
Alias=GPU
Percent=0
Name=Rainmeter
[MeasureVRAM]
Measure=Plugin
Plugin=UsageMonitor
Alias=VRAM
Percent=0
Name=Rainmeter
[MeasureVRAMShared]
Measure=Plugin
Plugin=UsageMonitor
Alias=VRAMSHARED
Percent=0
Name=Rainmeter
[MeterText]
Meter=String
SolidColor=0,0,0,255
FontColor=255,255,255,255
FontSize=16
Padding=8,8,8,8
X=0
Y=0
Text="Rainmeter: [MeasureGPU:2]%, [MeasureVRAM:]B, [MeasureVRAMShared:]B"
DynamicVariables=1
-
- Posts: 49
- Joined: February 12th, 2018, 12:47 am
Re: UsageMonitor Discussions
Moderator:
This post is a duplicate of my post here https://forum.rainmeter.net/viewtopic.php?f=122&t=28353&start=41. This thread is a much better fit for my original post. Please feel free to delete the original post; I am unsure of the proper etiquette.
Original post:
I am preparing to convert some of my skins from PerfMon to UsageMonitor. From my reading of the documentation, I see two enhancements to UsageMonitor that I would find useful:
1) Option to match instance Name using a partial name
Example: Setting Name="C:" would match instance name "0 C:" (or "0 C: D:" or "1 C:")
Reason: On one of my machines which runs Windows 7, the instances of PhysicalDisk are:
"0 C: D:"
"1 F:"
"2 E:"
However, after rebooting, the instances may come up as follows:
"0 C: D:"
"1 E:"
"2 F:"
Notice that the disk numbers for E: and F: have swapped. The assignment is random from boot to boot. Partial matching of some variety would allow the skin to always pick up the correct physical disk.
2) Option to validate the existence of a given instance Name, with partial name matching as above
Example: Does the instance "0 C:" exist? Or with partial matching, does "C:" exist?
Reason: Again using PhysicalDisk as an example, removable disk drives come and go in the list of instances. However, the PerfMon plugin returns 0 both for a valid counter whose value is 0, and for a counter if the instance does not exist at all. I am assuming that UsageMonitor behaves the same way.
Having a means to determine if an instance Name is valid allows my skin to easily distinguish between a drive that is offline, and a drive with counters whose values are truly 0.
Currently, I am using an ever-so-slightly modified version of PerfMon that I compiled myself in order to do what I have described above. If there is a way to achieve what I want using UsageMonitor as it is right now, i would appreciate the feedback.
--buckb
This post is a duplicate of my post here https://forum.rainmeter.net/viewtopic.php?f=122&t=28353&start=41. This thread is a much better fit for my original post. Please feel free to delete the original post; I am unsure of the proper etiquette.
Original post:
I am preparing to convert some of my skins from PerfMon to UsageMonitor. From my reading of the documentation, I see two enhancements to UsageMonitor that I would find useful:
1) Option to match instance Name using a partial name
Example: Setting Name="C:" would match instance name "0 C:" (or "0 C: D:" or "1 C:")
Reason: On one of my machines which runs Windows 7, the instances of PhysicalDisk are:
"0 C: D:"
"1 F:"
"2 E:"
However, after rebooting, the instances may come up as follows:
"0 C: D:"
"1 E:"
"2 F:"
Notice that the disk numbers for E: and F: have swapped. The assignment is random from boot to boot. Partial matching of some variety would allow the skin to always pick up the correct physical disk.
2) Option to validate the existence of a given instance Name, with partial name matching as above
Example: Does the instance "0 C:" exist? Or with partial matching, does "C:" exist?
Reason: Again using PhysicalDisk as an example, removable disk drives come and go in the list of instances. However, the PerfMon plugin returns 0 both for a valid counter whose value is 0, and for a counter if the instance does not exist at all. I am assuming that UsageMonitor behaves the same way.
Having a means to determine if an instance Name is valid allows my skin to easily distinguish between a drive that is offline, and a drive with counters whose values are truly 0.
Currently, I am using an ever-so-slightly modified version of PerfMon that I compiled myself in order to do what I have described above. If there is a way to achieve what I want using UsageMonitor as it is right now, i would appreciate the feedback.
--buckb
-
- Developer
- Posts: 22590
- Joined: April 19th, 2009, 11:02 pm
- Location: Fort Hunt, Virginia, USA
Re: UsageMonitor Discussions
We will keep these in mind, but to be honest, I don't think it is likely. The root of the problem is that an instance in the context of a counter is a unique thing, and any ideas about some kind of NameContains= or some such really can't work. A name must return a single exact instance name. I think the idea is fine if it doesn't match at all, or if it matches one instance, but falls apart when it matches two or ten.
We will keep in on the radar in case we have some epiphany.
We will keep in on the radar in case we have some epiphany.
-
- Developer
- Posts: 2640
- Joined: November 24th, 2011, 1:42 am
- Location: Utah
Re: UsageMonitor Discussions
Rainmeter uses Direct2D to render a skin to the desktop. While Rainmeter does not directly use any hardware acceleration, Direct2D will use the GPU for certain optimizations that it performs. It is usually only noticeable with larger skin displaying lots of text or shapes. It does not store anything on the GPU, just uses GPU cycles to do some work.SilverAzide wrote:A question for the devs: I've noticed an oddity with the new UsageMonitor plugin... if you monitor the Rainmeter process, it appears that Rainmeter does use GPU, but the memory used is 0 bytes. Is this really true? (PerfMon shows the same thing, by the way...)
For example, load the "complex" version of the the following skin and note the GPU it takes to "draw" it.
https://forum.rainmeter.net/viewtopic.php?p=147683#p147683
-Brian
-
- Rainmeter Sage
- Posts: 2468
- Joined: March 23rd, 2015, 5:26 pm
Re: UsageMonitor Discussions
I'm not going to be able to unsee that.Brian wrote:For example, load the "complex" version of the the following skin and note the GPU it takes to "draw" it.
https://forum.rainmeter.net/viewtopic.php?p=147683#p147683
-
- Posts: 49
- Joined: February 12th, 2018, 12:47 am
Re: UsageMonitor Discussions
Thanks for considering the suggestions. I recognized the problem of multiple matches, but decided that could be left to the skin developer to resolve by providing sufficient "uniqueness" in the matching substring.jsmorley wrote:We will keep in on the radar in case we have some epiphany.
I think I should be able to achieve what I want by using UsageMonitor's ability to retrieve counters by instance Index. I can then iterate through index numbers looking for the instance Name I desire.
--buckb