Localized version of PAL

Jan 19, 2008 at 10:10 AM
Edited Jan 19, 2008 at 10:11 AM
I support various machine allaver the wolrd so I have some problems on using PAL in localized OS version.
I discoverd tha Microsoft uses the registry to store the information about the counters: If the OS is localized there is a key HKEYLOCALMACHINE \SOFTWARE \Microsoft \Windows NT \CurrentVersion\Perflib\009 taht contains all the Perfmon and its description, then there is anothe key at the same level of 009 which identify the language ( for instance 007 is German) which containg the same counters described in German langage . The English (international ) and German counters are linked by a n ididtify number.
for instance
Under HKEYLOCALMACHINE \SOFTWARE \Microsoft \Windows NT \CurrentVersion\Perflib\009 there is a string value 238 = Processor
Under HKEYLOCALMACHINE \SOFTWARE \Microsoft \Windows NT \CurrentVersion\Perflib\007 there is a string value 238 = Prozessor

Using this database I can transalte the Performan settings generated by PAL from English to German and run it on the Geman OS machion, then tio analyse them I can use the same dictonary to have the English counter nad use the great PAL tool.

If anyone is interested in the transaltion script a can send a copy of this one or it can be inegrated in the PAL tool too.


Coordinator
Jan 22, 2008 at 11:49 PM
This is a great idea. We have been wanting to localize PAL for a long time now. All you have to do is do find and replacements for each of the counter paths in the PAL threshold files. I know it works because one of my German users converted the SystemOverview.xml file and he claimed it worked for him.

If you or someone else writes VBScript or VB.NET code does the translation, then I'll integrate it into the releases.

Thank you!
Jan 24, 2008 at 1:35 AM
Edited Jan 24, 2008 at 1:48 AM
For the moment my script reads the "dictionary data" from a two .reg file one for each Perflib\00x registry keys: the key is present only in the localized version f OS , while I need to maniplulate the Perfmon Settings on a English machine. Is it good , so or does it need any changes for the integration ?
Coordinator
Jan 24, 2008 at 7:16 PM
While I definetly like the idea, the problem is that PAL is designed to analyze counter logs collected from other computers. This means that we can't rely on the same counters being defined in the registry keys. I think our best approach is to create a database (flatfile XML) with known counter paths and their respective localized versions. To build this database, we could use your script to add counters that are not already in the database. Let me check with some of my other contacts to see what data I can get initially. I'll post back a reply on this on my progress.

In the meantime, I'm thinking the database (XML or CSV) would effecively been a series of arrays. Each position in the array would indicate the language such as position 9 would be the English version of the counter and position 7 would be the German version. Each line would be a different counter.
Jan 31, 2008 at 12:57 PM
How can I send you the script ?
Could you send me a preview copy of the Dictionary DB ?

Jan 31, 2008 at 1:59 PM
Hi,

any news about localized version

Thanks
Coordinator
Jan 31, 2008 at 6:09 PM
I, unfortunately, am busy working on specs for the new version of PAL written in .NET, but now that I think about it, I really should focus on localizing PAL. Technically what I had in mind was "globallizing" the PAL tool. Globalizing means that the PAL tool will run on any localized Windows operating system - meaning the tool could analyze a perfmon log recorded in a different spoken language, but the output and infrastructure would still be English. Localizing means the content is translated to other spoken languages. Since I'm effectively the only one working on this tool, I'm shooting for globalizing it first, but in order to do that, I need to do some serious refactoring of the tool.

So, regarding the globalizing of the PAL tool... I've spoken to quite a few performance experts about how to spec out this kind of feature. Most groups that run into this problem simply use the perflib keys just like you mentioned earlier. The problem with this is that the PAL tool is designed for "offline" analysis - meaning the perfmon log was captured on a server that the PAL tool no longer has access to, so using the perflib keys during analysis is not an option. With that said, using the perflib keys during threshold creation is an option, but has limitations because it will only contain the spoken languages that the user is currently using. So, the best option is to build a small database or cache of each counter with each spoken language version of it. I'm thinking the best way to do this is to put all of the spoken language version of each counter explicitly in the threshold file in an array. Each member of the array will correspond to the spoken language number. For example, a(9) would be the English version of the counter path because perflib key 009 is English. Basically, the different spoken language versions would need to be explicitly added when a new analysis is created which means I would need to add some automation in the user interfact to auto add this information. It would be nice to have a collaboration to where anyone could run a tool to collect the counter information on his or her machine and add to the database similiar to the music album databases, but I don't know how to create that kind of a collaboration.


Emanuele74 wrote:
How can I send you the script ?
Could you send me a preview copy of the Dictionary DB ?


Mar 4, 2008 at 10:22 AM
We can start making in such way:
We decide which DB use ( SQL 2005 ? , XML, txt file ? ) I can provide you the German/English dictionary .
The easist way is just the .reg export of the HKEYLOCALMACHINE \SOFTWARE \Microsoft \Windows NT \CurrentVersion\Perflib\
Just one quetion on a "Microsoft man": What happened inf on an Engli Machine ( that is a on Windows with English settings I add a new kew like HKEYLOCALMACHINE \SOFTWARE \Microsoft \Windows NT \CurrentVersion\Perflib\007 with the "translation" of the perflib counters , Does produce any kind of error ? If no we can create an easy DB using registry .


Coordinator
Mar 4, 2008 at 6:17 PM
I'm staying with XML files, since they are the easiest with the lowest requirements. Staying away from requiring SQL server.

I realize it is easy to get your specific language from the Perflib keys, but I want to this this right which means I need to do all of the Windows supported spoken languages. I have asked again for Windows source code access today, so I can move forward with this. Once I have the source code, I will likely just create a separate XML file to use as a look up table. This will also be nice for other people who need a look up table not just for PAL. The order of the list will be important because the order will determine the spoken language. Next, I will create an extra prompt on the PAL Wizard Threshold File section asking what spoken language to use, then process normally. The report will still be in English because I can't possibly translate all of the content. With that said, the BizTalk product team is working on translating the content as it stands today, so with luck we might have a fully localized version of PAL here in a few months.

Thanks again for the the encouragement! Too bad I can't make royalties or donations for this thing. The reason I can't is because I have used Microsoft resources on occasion (primarily just asking questions of subject matter experts), so legally Microsoft really owns PAL... just don't tell them that. ;-)

Emanuele74 wrote:
We can start making in such way:
We decide which DB use ( SQL 2005 ? , XML, txt file ? ) I can provide you the German/English dictionary .
The easist way is just the .reg export of the HKEYLOCALMACHINE \SOFTWARE \Microsoft \Windows NT \CurrentVersion\Perflib\
Just one quetion on a "Microsoft man": What happened inf on an Engli Machine ( that is a on Windows with English settings I add a new kew like HKEYLOCALMACHINE \SOFTWARE \Microsoft \Windows NT \CurrentVersion\Perflib\007 with the "translation" of the perflib counters , Does produce any kind of error ? If no we can create an easy DB using registry .




Mar 5, 2008 at 5:47 AM
Ok perfect: the XML could be also easly editable for any missing perfmon specific to any custom application

If you need I can work on it (no royalties :-\... just for fun :-) ).
just a little note on the international way of working : yesterday and I noticed that if you have a Perfmon let me say for example from a place in USA ( Eastern Time ) and you run the PAL on your local time there is a time conversion to your local time (in my case GMT +1).
Making more test I see it i dependent by the relog tool.
Workaround, for the moment, to put the machine in the same Time Zone.

Emanuele


You have good a very good job ,
Coordinator
Mar 5, 2008 at 9:08 PM
I just received access to some of the Windows DAT files. Heidi and I looking into how to parse these files. Once we have a parser, we will generate the XML file and post it to this web site for anyone to use. Thanks for the offer to help, but this shouldn't take too long to produce the XML file once we have the rest of the DAT files.

Regarding the time zone, I ran into this problem about a year ago when I first started writing PAL, but if I remember correctly it didn't seem to be a problem. In any case, it's worth revisiting it. Thanks for the heads up.


Emanuele74 wrote:
Ok perfect: the XML could be also easly editable for any missing perfmon specific to any custom application

If you need I can work on it (no royalties :-\... just for fun :-) ).
just a little note on the international way of working : yesterday and I noticed that if you have a Perfmon let me say for example from a place in USA ( Eastern Time ) and you run the PAL on your local time there is a time conversion to your local time (in my case GMT +1).
Making more test I see it i dependent by the relog tool.
Workaround, for the moment, to put the machine in the same Time Zone.

Emanuele


You have good a very good job ,