THIS IS A NON-FUNTIONAL SCRIPT. I'M POSTING THIS FOR CODE DESIGN FEEDBACK ONLY. See the PAL v1.3 release for a functional build.
I've started to rewrite PAL.vbs in order to optimize the code, make it more readable, and to add more features such as Event Log, IIS Log, and ETL log parsing. The architecture is the same (PAL.vbs is the main engine using Microsoft Log Parser as it's data access layer). I have considered rewriting the entire thing in .NET or PowerShell, but I don't want to break anything. Likely I'll do a v2.0 in .NET or Powershell.
Anyway, I've posted the work that I've done so far. You'll notice that I'm using VBScript classes a lot
more this time. I'm doing it this way because I do my scripting development in Visual Studio 2005 and the intellisense for scripting works when I use class definitions. The script is already over 500 lines long and it doesn't even do any real work yet other than preparing the computer for a log analysis.
Also, please let me know of feature requests. Here is what I have planned so far:
- Localization: Able to parse perfmon logs (BLG files) captured on computers in other languages. Difficulty to Implement: High, because I don’t have any computers in other languages. Demand: High. This is one of the top feature requests and got a big, “hooray” at the last conference that I spoke at. I will likely not implement this feature unless someone with better language translation skills can help with this. This means building a flat file with all of the language tranlsations of all of the performance counters - not an easy task. In the meantime, users will need to relog their perfmon logs using an English locale.
- Analysis of Event Logs: Difficulty to Implement: Medium. Demand: Low.
- Analysis of IIS Logs: Difficulty to Implement: Medium. Demand: Low
- Analysis of Event Tracing for Windows (ETW) logs: Difficulty to Implement: High because the event schema changes often. Demand: High. ETW is the future of performance analysis and I want PAL to be on top of it.
- Threshold file Inheritance: This will allow threshold files to inherit changes from other threshold files. Difficulty to Implement: Medium. Demand: Medium.
- Analysis of perfmon logs captured in a SQL Database: Difficulty to Implement: Medium. Demand: Low.
- Live Analysis: To have a dashboard showing the current performance of a computer. Difficulty to Implement: High since this would effectively be a separate tool from PAL. Demand: Medium. I'll likely target this for v2.0.
- Computer Profiles: Some perfmon logs contain data from multiple computers. The threshold file asks the user questions about only one computer and applies all of the answers to all of the perf counters in the log. This can produce inaccurate results when there is more then one computer in the perfmon log. Therefore, in this version, I want to ask the user questions about all of the computers found in the perfmon log to make this more accurate.