It is currently March 28th, 2024, 6:26 pm

New UsageMonitor plugin

Changes made during the Rainmeter 4.2 beta cycle.
Post Reply
User avatar
tjhrulz
Developer
Posts: 267
Joined: October 13th, 2016, 1:28 am
Location: Earth
Contact:

Re: New UsageMonitor plugin

Post by tjhrulz »

jsmorley wrote:Please note that we had to change the separator character on Whitelist and Blacklist to be the | (pipe) character instead of the , (comma) character. Adjust any skins you have created.

https://docs.rainmeter.net/manual-beta/plugins/usagemonitor/#Blacklist
https://docs.rainmeter.net/manual-beta/plugins/usagemonitor/#Whitelist
Yeah sorry to do this but since several instances have a comma it makes adding them to the blocklist impossible.
User avatar
sephirotess
Posts: 332
Joined: December 8th, 2016, 6:45 am

Re: New UsageMonitor plugin

Post by sephirotess »

Hi,

I installed Rainmeter on 2 other machines for testing. One PC with a Windows 10 Home and the other with Windows 8.1 Pro. The plugin does not work. The logs:


4.2.0 beta r3043 64-bit (Apr 26 2018)
Windows 10 Home 64-bit (build 10240)
Path: C:\Program Files\Rainmeter\
IniFile: C:\Users\Jane\AppData\Roaming\Rainmeter\Rainmeter.ini
SkinPath: C:\Users\Jane\Documents\Rainmeter\Skins\

Code: Select all

ERRO (10:50:35.442) : UsageMonitor crashed trying to update the counterss
DBUG (10:50:35.444) : L'élément a déjà été ajouté. Clé du dictionnaire : 'taille virtuelle (octets)'  Clé ajoutée : 'taille virtuelle (octets)'
DBUG (10:50:35.446) :    à System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)   à System.Collections.DictionaryBase.System.Collections.IDictionary.Add(Object key, Object value)   à System.Diagnostics.CategorySample.ReadCategory()   à UsageMonitor.Categories.Counters.UpdateCategory(String category)
NOTE (10:50:36.298) RainmeterProcess\RainmeterProcessNew.ini - [MeasureUsedCPU]: Percent=1 was set on counter:% temps processeur but that counter does not have an _Total instance
ERRO (10:50:36.458) : UsageMonitor crashed trying to update the counterss
DBUG (10:50:36.460) : L'élément a déjà été ajouté. Clé du dictionnaire : 'taille virtuelle (octets)'  Clé ajoutée : 'taille virtuelle (octets)'
DBUG (10:50:36.462) :    à System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)   à System.Collections.DictionaryBase.System.Collections.IDictionary.Add(Object key, Object value)   à System.Diagnostics.CategorySample.ReadCategory()   à UsageMonitor.Categories.Counters.UpdateCategory(String category)
NOTE (10:50:37.039) RainmeterProcess\RainmeterProcessNew.ini: Refreshing skin
DBUG (10:50:37.116) : Reading file: C:\Users\Jane\AppData\Roaming\Rainmeter\Rainmeter.ini
DBUG (10:50:37.119) RainmeterProcess\RainmeterProcessNew.ini: Reading file: C:\Users\Jane\Documents\Rainmeter\Skins\RainmeterProcess\RainmeterProcessNew.ini
ERRO (10:50:37.154) : UsageMonitor crashed trying to update the counterss
DBUG (10:50:37.156) : L'élément a déjà été ajouté. Clé du dictionnaire : 'taille virtuelle (octets)'  Clé ajoutée : 'taille virtuelle (octets)'
DBUG (10:50:37.158) :    à System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)   à System.Collections.DictionaryBase.System.Collections.IDictionary.Add(Object key, Object value)   à System.Diagnostics.CategorySample.ReadCategory()   à UsageMonitor.Categories.Counters.UpdateCategory(String category)
ERRO (10:50:38.162) : UsageMonitor crashed trying to update the counterss
DBUG (10:50:38.164) : L'élément a déjà été ajouté. Clé du dictionnaire : 'taille virtuelle (octets)'  Clé ajoutée : 'taille virtuelle (octets)'
DBUG (10:50:38.166) :    à System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)   à System.Collections.DictionaryBase.System.Collections.IDictionary.Add(Object key, Object value)   à System.Diagnostics.CategorySample.ReadCategory()   à UsageMonitor.Categories.Counters.UpdateCategory(String category)

4.2.0 beta r3043 64-bit (Apr 26 2018)
Windows 8.1 Pro 64-bit (build 9600)
Path: C:\Program Files\Rainmeter\
IniFile: C:\Users\Rozan\AppData\Roaming\Rainmeter\Rainmeter.ini
SkinPath: C:\Users\Rozan\Documents\Rainmeter\Skins\

Code: Select all

NOTE (14:24:04.784) RainmeterProcess\RainmeterProcessNew.ini - [MeasureUsedCPU]: Percent=1 was set on counter:% temps processeur but that counter does not have an _Total instance
ERRO (14:24:05.098) : UsageMonitor crashed trying to update the counterss
DBUG (14:24:05.105) : L'élément a déjà été ajouté. Clé du dictionnaire : 'taille virtuelle (octets)'  Clé ajoutée : 'taille virtuelle (octets)'
DBUG (14:24:05.116) :    à System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)   à System.Collections.DictionaryBase.System.Collections.IDictionary.Add(Object key, Object value)   à System.Diagnostics.CategorySample.ReadCategory()   à UsageMonitor.Categories.Counters.UpdateCategory(String category)
NOTE (14:24:05.787) RainmeterProcess\RainmeterProcessNew.ini: Refreshing skin
DBUG (14:24:05.804) : Reading file: C:\Users\Rozan\AppData\Roaming\Rainmeter\Rainmeter.ini
DBUG (14:24:05.807) RainmeterProcess\RainmeterProcessNew.ini: Reading file: C:\Users\Rozan\Documents\Rainmeter\Skins\RainmeterProcess\RainmeterProcessNew.ini
ERRO (14:24:05.831) : UsageMonitor crashed trying to update the counterss
DBUG (14:24:05.835) : L'élément a déjà été ajouté. Clé du dictionnaire : 'taille virtuelle (octets)'  Clé ajoutée : 'taille virtuelle (octets)'
DBUG (14:24:05.839) :    à System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)   à System.Collections.DictionaryBase.System.Collections.IDictionary.Add(Object key, Object value)   à System.Diagnostics.CategorySample.ReadCategory()   à UsageMonitor.Categories.Counters.UpdateCategory(String category)
ERRO (14:24:06.849) : UsageMonitor crashed trying to update the counterss
DBUG (14:24:06.857) : L'élément a déjà été ajouté. Clé du dictionnaire : 'taille virtuelle (octets)'  Clé ajoutée : 'taille virtuelle (octets)'
DBUG (14:24:06.866) :    à System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)   à System.Collections.DictionaryBase.System.Collections.IDictionary.Add(Object key, Object value)   à System.Diagnostics.CategorySample.ReadCategory()   à UsageMonitor.Categories.Counters.UpdateCategory(String category)
User avatar
raiguard
Posts: 660
Joined: June 25th, 2015, 7:02 pm
Location: The Sky, USA
Contact:

Re: New UsageMonitor plugin

Post by raiguard »

Hello, I believe I have a bug concerning UsageMonitor that I'd like to report.

Based on my testing, the Blacklist and Whitelist options will not resolve standard syntax variables if there is more than one process in the option. For example, take this skin:

Code: Select all

[Rainmeter]
AccurateText=1
MiddleMouseUpAction=[!Refresh]

[Variables]
processBlacklist=_Total|Idle|#test#
test=Rainmeter

[MeasureTopProcess1Cpu]
Measure=Plugin
Plugin=UsageMonitor
Alias=CPU
Index=1
Blacklist=#processBlacklist#
Substitute="":"---"

[MeterBackground]
Meter=Shape
Shape=Rectangle 0,0,175,30 | Fill Color 15,15,15 | StrokeWidth 0

[MeterTopProcess1Label]
Meter=String
MeasureName=MeasureTopProcess1Cpu
FontSize=10
FontFace=Arial
FontColor=240,240,240
X=5
Y=5
Antialias=1

[MeterTopProcess1Value]
Meter=String
MeterStyle=MeterTopProcess1Label
StringAlign=Right
X=170
Text=[MeasureTopProcess1Cpu:]%
DynamicVariables=1
If you change #test# to [#test], everything will work normally. Additionally, if you instead delete _Total|Idle| and leave #total# as it is, it will also resolve just fine.

Edit: Actually, it appears that this only happens when the Blacklist option references a variable that then references other variables. If you copy the value of processBlacklist to the Blacklist option, it will resolve.
User avatar
eclectic-tech
Rainmeter Sage
Posts: 5382
Joined: April 12th, 2012, 9:40 pm
Location: Cedar Point, Ohio, USA
Contact:

Re: New UsageMonitor plugin

Post by eclectic-tech »

@ raiguard

You should define the 'test' variable before you use it in another variable.
The [Variables] section is not dynamic.
In your code order, #test# is not defined, when it is used in the 'processBlacklist' variable...
This works for me and ignores Rainmeter in your test skin; and you will see the string value of 'processBlacklist' in the log now shows the #test# variable resolved to 'Rainmeter' instead of remaining #test#.

Code: Select all

[Variables]
test=Rainmeter
processBlacklist=_Total|Idle|#test#
User avatar
tjhrulz
Developer
Posts: 267
Joined: October 13th, 2016, 1:28 am
Location: Earth
Contact:

Re: New UsageMonitor plugin

Post by tjhrulz »

sephirotess wrote:Hi,

I installed Rainmeter on 2 other machines for testing. One PC with a Windows 10 Home and the other with Windows 8.1 Pro. The plugin does not work. The logs:


4.2.0 beta r3043 64-bit (Apr 26 2018)
Windows 10 Home 64-bit (build 10240)
Path: C:\Program Files\Rainmeter\
IniFile: C:\Users\Jane\AppData\Roaming\Rainmeter\Rainmeter.ini
SkinPath: C:\Users\Jane\Documents\Rainmeter\Skins\

Code: Select all

ERRO (10:50:35.442) : UsageMonitor crashed trying to update the counterss
DBUG (10:50:35.444) : L'élément a déjà été ajouté. Clé du dictionnaire : 'taille virtuelle (octets)'  Clé ajoutée : 'taille virtuelle (octets)'
DBUG (10:50:35.446) :    à System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)   à System.Collections.DictionaryBase.System.Collections.IDictionary.Add(Object key, Object value)   à System.Diagnostics.CategorySample.ReadCategory()   à UsageMonitor.Categories.Counters.UpdateCategory(String category)
NOTE (10:50:36.298) RainmeterProcess\RainmeterProcessNew.ini - [MeasureUsedCPU]: Percent=1 was set on counter:% temps processeur but that counter does not have an _Total instance
ERRO (10:50:36.458) : UsageMonitor crashed trying to update the counterss
DBUG (10:50:36.460) : L'élément a déjà été ajouté. Clé du dictionnaire : 'taille virtuelle (octets)'  Clé ajoutée : 'taille virtuelle (octets)'
DBUG (10:50:36.462) :    à System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)   à System.Collections.DictionaryBase.System.Collections.IDictionary.Add(Object key, Object value)   à System.Diagnostics.CategorySample.ReadCategory()   à UsageMonitor.Categories.Counters.UpdateCategory(String category)
NOTE (10:50:37.039) RainmeterProcess\RainmeterProcessNew.ini: Refreshing skin
DBUG (10:50:37.116) : Reading file: C:\Users\Jane\AppData\Roaming\Rainmeter\Rainmeter.ini
DBUG (10:50:37.119) RainmeterProcess\RainmeterProcessNew.ini: Reading file: C:\Users\Jane\Documents\Rainmeter\Skins\RainmeterProcess\RainmeterProcessNew.ini
ERRO (10:50:37.154) : UsageMonitor crashed trying to update the counterss
DBUG (10:50:37.156) : L'élément a déjà été ajouté. Clé du dictionnaire : 'taille virtuelle (octets)'  Clé ajoutée : 'taille virtuelle (octets)'
DBUG (10:50:37.158) :    à System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)   à System.Collections.DictionaryBase.System.Collections.IDictionary.Add(Object key, Object value)   à System.Diagnostics.CategorySample.ReadCategory()   à UsageMonitor.Categories.Counters.UpdateCategory(String category)
ERRO (10:50:38.162) : UsageMonitor crashed trying to update the counterss
DBUG (10:50:38.164) : L'élément a déjà été ajouté. Clé du dictionnaire : 'taille virtuelle (octets)'  Clé ajoutée : 'taille virtuelle (octets)'
DBUG (10:50:38.166) :    à System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)   à System.Collections.DictionaryBase.System.Collections.IDictionary.Add(Object key, Object value)   à System.Diagnostics.CategorySample.ReadCategory()   à UsageMonitor.Categories.Counters.UpdateCategory(String category)

4.2.0 beta r3043 64-bit (Apr 26 2018)
Windows 8.1 Pro 64-bit (build 9600)
Path: C:\Program Files\Rainmeter\
IniFile: C:\Users\Rozan\AppData\Roaming\Rainmeter\Rainmeter.ini
SkinPath: C:\Users\Rozan\Documents\Rainmeter\Skins\

Code: Select all

NOTE (14:24:04.784) RainmeterProcess\RainmeterProcessNew.ini - [MeasureUsedCPU]: Percent=1 was set on counter:% temps processeur but that counter does not have an _Total instance
ERRO (14:24:05.098) : UsageMonitor crashed trying to update the counterss
DBUG (14:24:05.105) : L'élément a déjà été ajouté. Clé du dictionnaire : 'taille virtuelle (octets)'  Clé ajoutée : 'taille virtuelle (octets)'
DBUG (14:24:05.116) :    à System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)   à System.Collections.DictionaryBase.System.Collections.IDictionary.Add(Object key, Object value)   à System.Diagnostics.CategorySample.ReadCategory()   à UsageMonitor.Categories.Counters.UpdateCategory(String category)
NOTE (14:24:05.787) RainmeterProcess\RainmeterProcessNew.ini: Refreshing skin
DBUG (14:24:05.804) : Reading file: C:\Users\Rozan\AppData\Roaming\Rainmeter\Rainmeter.ini
DBUG (14:24:05.807) RainmeterProcess\RainmeterProcessNew.ini: Reading file: C:\Users\Rozan\Documents\Rainmeter\Skins\RainmeterProcess\RainmeterProcessNew.ini
ERRO (14:24:05.831) : UsageMonitor crashed trying to update the counterss
DBUG (14:24:05.835) : L'élément a déjà été ajouté. Clé du dictionnaire : 'taille virtuelle (octets)'  Clé ajoutée : 'taille virtuelle (octets)'
DBUG (14:24:05.839) :    à System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)   à System.Collections.DictionaryBase.System.Collections.IDictionary.Add(Object key, Object value)   à System.Diagnostics.CategorySample.ReadCategory()   à UsageMonitor.Categories.Counters.UpdateCategory(String category)
ERRO (14:24:06.849) : UsageMonitor crashed trying to update the counterss
DBUG (14:24:06.857) : L'élément a déjà été ajouté. Clé du dictionnaire : 'taille virtuelle (octets)'  Clé ajoutée : 'taille virtuelle (octets)'
DBUG (14:24:06.866) :    à System.Collections.Hashtable.Insert(Object key, Object nvalue, Boolean add)   à System.Collections.DictionaryBase.System.Collections.IDictionary.Add(Object key, Object value)   à System.Diagnostics.CategorySample.ReadCategory()   à UsageMonitor.Categories.Counters.UpdateCategory(String category)

I have managed now to recreate this on my own system so I should be good on the log stuff. And anyways all of them are failing in the same way because in French the counters Virtual Bytes and Virtual Bytes Peak are called taille virtuelle (octets) which means that there is a key collision in microsoft's code (Oddly enough perfmon seems to use the installed language internally and not the current language unless english is being used). If you want a simple fix to make the plugin run normal till I figure out if there is a way around that issue downloading the english, setting that as your default language, and then rebooting. (And if you change it back and just log out and back in I think it will still work)
User avatar
raiguard
Posts: 660
Joined: June 25th, 2015, 7:02 pm
Location: The Sky, USA
Contact:

Re: New UsageMonitor plugin

Post by raiguard »

eclectic-tech wrote:@ raiguard

You should define the 'test' variable before you use it in another variable.
The [Variables] section is not dynamic.
In your code order, #test# is not defined, when it is used in the 'processBlacklist' variable...
This works for me and ignores Rainmeter in your test skin; and you will see the string value of 'processBlacklist' in the log now shows the #test# variable resolved to 'Rainmeter' instead of remaining #test#.

Code: Select all

[Variables]
test=Rainmeter
processBlacklist=_Total|Idle|#test#
I feel like a huge dumb now. I usually remember that, but not this time...

Thanks. :oops:
User avatar
eclectic-tech
Rainmeter Sage
Posts: 5382
Joined: April 12th, 2012, 9:40 pm
Location: Cedar Point, Ohio, USA
Contact:

Re: New UsageMonitor plugin

Post by eclectic-tech »

raiguard wrote:I feel like a huge dumb now. I usually remember that, but not this time...

Thanks. :oops:
Easy to overlook! I have done that myself more times than I care to admit :17oops
User avatar
sephirotess
Posts: 332
Joined: December 8th, 2016, 6:45 am

Re: New UsageMonitor plugin

Post by sephirotess »

tjhrulz wrote:I have managed now to recreate this on my own system so I should be good on the log stuff. And anyways all of them are failing in the same way because in French the counters Virtual Bytes and Virtual Bytes Peak are called taille virtuelle (octets) which means that there is a key collision in microsoft's code (Oddly enough perfmon seems to use the installed language internally and not the current language unless english is being used). If you want a simple fix to make the plugin run normal till I figure out if there is a way around that issue downloading the english, setting that as your default language, and then rebooting. (And if you change it back and just log out and back in I think it will still work)
The problems are indeed the same. I posted the logs because I was told that the plugin had been tested on one (or more) French Windows and that it worked, which of course is not the case. The test was done not on a French Windows, but simply on another version of Windows with a French language pack ... I simply wanted to prove that the problem did not come from my PC or my installations 8-).

Thank you very much for your time on this problem. For the moment, I will continue to use the old plugins. I will not install an English Windows or change my settings just for a plugin ;-). I do not know if there is a possible solution, but thanks again for your time :17nodding.
User avatar
fonpaolo
Moderator
Posts: 1387
Joined: April 11th, 2013, 8:08 pm
Location: Italy
Contact:

Re: New UsageMonitor plugin

Post by fonpaolo »

Tested it... no problems at all! :17good

4.2.0 beta r3048 64-bit (May 1 2018)
Windows 10 Pro 64-bit (build 16299)
Path: C:\Program Files\Rainmeter\
IniFile: C:\Users\Home\AppData\Roaming\Rainmeter\Rainmeter.ini
SkinPath: C:\Users\Home\Documents\Rainmeter\Skins\

Language: Italian.

As a side note, I don't know if it has any importance, probably not, but, with the latest update of Windows 10, I can see all GPU performance of my "old" Nvidia GTX 650. :17drums

edit to add: "Language", my Win 10 is installed with English as standard and Italian as alternative language... even if installed for Italy, Italian. :confused:
User avatar
jsmorley
Developer
Posts: 22628
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: New UsageMonitor plugin

Post by jsmorley »

fonpaolo wrote:Tested it... no problems at all! :17good

4.2.0 beta r3048 64-bit (May 1 2018)
Windows 10 Pro 64-bit (build 16299)
Path: C:\Program Files\Rainmeter\
IniFile: C:\Users\Home\AppData\Roaming\Rainmeter\Rainmeter.ini
SkinPath: C:\Users\Home\Documents\Rainmeter\Skins\

Language: Italian.

As a side note, I don't know if it has any importance, probably not, but, with the latest update of Windows 10, I can see all GPU performance of my "old" Nvidia GTX 650. :17drums
Grazie!
Post Reply