Welcome Serena Central users! CLICK HERE
The migration of the Serena Central community is currently underway. Be sure to read THIS MESSAGE to get your new login set up to access your account.
TerryK Absent Member.
Absent Member.
5824 views

Missing .NET CLR performance counters

Jump to solution

Hello.

I have some free time to try the new 16.5 and I'm wondering if the following is fixed (assuming it was ever broken and it wasn't just me being thick).

I was running the controller/agent in a Win 8.1 machine, trying to get some NET CLR counters from another server running Win 2012 R2.

The SP's pdh.dll was renamed so the one from Windows' \system32 was used.

What I did:

I set the profile to use a custom monitoring template and created one with Performance Explorer. I added all the 2012/R2 NET CLR counters.

("Select from predefined Data Sources" or "Have Data Sources detected" gave the same results).

What I got:

Every counter that was shown in the selection during the add. So far, so good.

Question:

Why don't I see the rest of the NET CLR counters? If I go to that 2012/R2 server, I see a big number of them. Case in point, I got the NET CLR Exceptions counter "# of Exceps Thrown" but I din't get its sidekick "# of Exceps Thrown / sec".

The Win 8.1 perfmon doesn't show the "per sec" counter either, but the 2012/R2 does (which is what I want to get).

Remote Registry run on that computer (I got many other counters) but is there something else that has to be done for ALL the counters to be passed to the agent machine?

Or is the agent, for some reason, limited to the counters available on the machine it runs on?

Thanks in advance for any hints.

0 Likes
3 Solutions

Accepted Solutions
Micro Focus Expert
Micro Focus Expert

RE: Missing .NET CLR performance counters

Jump to solution

Hi Terry.

Silk Performer does not use Realtime.ini for perfmon counters, it uses PDH.dll.

16.5 actually uses a more up to date PDH.dll and should offer the same list of counters as perfmon.

Earlier versions of Performer used an older PDH.dll, and as a troubleshooting step we would often have recommended renaming the one in the SP folder to .bak which forced PE to use the Windows version.

Provided you are using the PDH.dll which ships with Silk Performer 16.5, you should see an interface very much like the one which ships with Win2012R2 (like this one)

Perhaps if you have renamed the one which ships with SP16.5, the Win8.1 one is not playing nice with the Win2012R2 server counters via PE.

I'd recommend reverting to the PDH.dll which ships with 16.5 and see how that performs.

And just to confirm, for a full list of counters, you definitely need to use "Custom Data | NT Performance Monitor Data".

Hope this helps,
Ciaran.

View solution in original post

0 Likes
TerryK Absent Member.
Absent Member.

RE: Missing .NET CLR performance counters

Jump to solution

Here's an update on this issue:

1. Selecting Perfmon for data source monitoring, I only get a limited set of performance counters (as the docs also say).

2. Adding extra counters to realtime.ini, I get them too, even though I'm not supposed to. It's a useful override nevertheless.

3. I get all counters using "Custom Data | NT Performance Monitor Data" as Ciaran said.

My problem with them had to do with the SP version.

Selecting individual counters from some performance group, is working properly (v16.0 or v16.5).

Selecting ALL counters in some performance group (or the group itself), works in v16.5 but fails in 16.0.

For example, in 16.0 the counters for NET CLR Memory (_Global_) are shown as a single "*" instead of a list of names:

NET CLR Memory (_Global_)

   *

And this fails of course (unless there;s a way to specify a regular expression match that I missed).

The easiest solution is to use 16.5 but I'm curious how others managed to get around this with 16.0.

By the way, where does the v16.5 PDH.dll reside at? I just can't locate it anywhere.

Thanks.

View solution in original post

0 Likes
Micro Focus Expert
Micro Focus Expert

RE: Missing .NET CLR performance counters

Jump to solution

Hi Terry.

I just checked that last point with R&D and 16.5 is no longer using its own pdh, it's using the one which WIndows also uses (ie the systems pdh.dll).

View solution in original post

0 Likes
9 Replies
Highlighted
TerryK Absent Member.
Absent Member.

RE: Missing .NET CLR performance counters

Jump to solution

Still unable to find a way around it. The problem is more generic than accessing the .NET counters I wanted.

So far, anything I tried through Performance Monitor, shows some minimal standard set of counters.

According to this KB article (that might be out-of-date)  http://community.microfocus.com/borland/test/silk_performer_-_application_performance_testing/w/knowledge_base/8202.why-are-all-perfmon-counters-not-available-under-operating-system-data-windows-2000xp-system-perfmon-and-how-can-i-access-the-full-list-of-perfmon-counters.aspx the regular Perfmon selection "presents the most commonly used performance counters".

The above link could explain why I always get a minimal set.

Unfortunately, the suggested "Custom Data | NT Performance Monitor Data" doesn't seem to work on newer OS systems.

For example, if I select some entries under .NET CLR Exceptions, it always ends up with a single line, using the top-level name as a group, followed by a star ('*') as key. (the "average" treatment flag makes no difference).

Because of the use of a star instead of a counter name, this gives a "PDH: 3005 A required argument is missing or not correct [serverName/*]".

I even created a performance user instead of the administrator. I can run Perfmon manually and access all the counters of the remote machine so the connection is working.

The counters returned by SP, seem to match the ones in \Include\realtime.ini. Is this a user-modifiable file, applicable to both local and remote machines?

So what does SP need in order to access counters other than the returned default ones? Is it a matter of wrong credentials or something else?

Thank you.

0 Likes
donbonin Absent Member.
Absent Member.

RE: Missing .NET CLR performance counters

Jump to solution

Not an answer, but somethings you can try to see what is actually exposed to between your remote and agent machines:

Open a command shell and use typeperf to test if you can query the remote machine performance counters. For example query one Memory Counter:

C:\>typeperf -sc 2 "\\<monitored machine name>\Memory\Available MBytes"

The typeperf command also lets you check which performance counters and objects are available on your monitored machines. If you need to add custom counters that are not predefined in SilkPerformer you can use this command to identify them or export them to a text file, rather than using perfmon.exe.

To query all counters for a specific object use the -q switch followed by the object name (in this example "Processor"):

c:\> typeperf -q Processor

If you can see the counters you want from the remote machine but Silk wont allow you to query them, then it's a Silk issue (which is what you seem to have determined already!).

Cheers!

Don

0 Likes
donbonin Absent Member.
Absent Member.

RE: Missing .NET CLR performance counters

Jump to solution

You can also create your own batch file to gather the data during the test, using the same typeperf command line tool.  You can then graph the data in excel, so at least you will have the counter data taken during the test for all the counters you are looking for.  

typeperf -?  will give you some examples.  Google has more.  

Cheers!

Don

0 Likes
Micro Focus Expert
Micro Focus Expert

RE: Missing .NET CLR performance counters

Jump to solution

Hi Terry.

Silk Performer does not use Realtime.ini for perfmon counters, it uses PDH.dll.

16.5 actually uses a more up to date PDH.dll and should offer the same list of counters as perfmon.

Earlier versions of Performer used an older PDH.dll, and as a troubleshooting step we would often have recommended renaming the one in the SP folder to .bak which forced PE to use the Windows version.

Provided you are using the PDH.dll which ships with Silk Performer 16.5, you should see an interface very much like the one which ships with Win2012R2 (like this one)

Perhaps if you have renamed the one which ships with SP16.5, the Win8.1 one is not playing nice with the Win2012R2 server counters via PE.

I'd recommend reverting to the PDH.dll which ships with 16.5 and see how that performs.

And just to confirm, for a full list of counters, you definitely need to use "Custom Data | NT Performance Monitor Data".

Hope this helps,
Ciaran.

View solution in original post

0 Likes
TerryK Absent Member.
Absent Member.

RE: Missing .NET CLR performance counters

Jump to solution

Thank you much.

typeperf is working fine and returns back the counter values.

In the meantime, I did another quick test.

I duplicated a line in realtime.ini (".NET CLR Exceptions(_Global_)\# of Exceps Thrown") and called it (".NET CLR Exceptions(_Global_)\# of Exceps Thrown / sec").

Well, they both showed up and returned their values just fine 🙂

It seems realtime.ini controls whatever shows up in perfmon under SP.

I'm sure there's a good reason why not everything is there (maybe the shown ones are the common denominator for the multitude of systems SP can monitor?) but I still think that the default selection should have been overridden by whatever the monitored system can provide.

It would be nice to get a full realtime.ini with its nice comments, but at least I can add whatever I need myself, so problem solved (unless I mess up the parameters for the counters 🙂 )

Much appreciated for the help.

0 Likes
TerryK Absent Member.
Absent Member.

RE: Missing .NET CLR performance counters

Jump to solution

Oops.

Sorry Ciaran. You answered while I was writing my reply.

I have renamed pdh.dll so maybe that caused the problem.

I'll reset it and try again.

I'll post the results later.

0 Likes
TerryK Absent Member.
Absent Member.

RE: Missing .NET CLR performance counters

Jump to solution

Here's an update on this issue:

1. Selecting Perfmon for data source monitoring, I only get a limited set of performance counters (as the docs also say).

2. Adding extra counters to realtime.ini, I get them too, even though I'm not supposed to. It's a useful override nevertheless.

3. I get all counters using "Custom Data | NT Performance Monitor Data" as Ciaran said.

My problem with them had to do with the SP version.

Selecting individual counters from some performance group, is working properly (v16.0 or v16.5).

Selecting ALL counters in some performance group (or the group itself), works in v16.5 but fails in 16.0.

For example, in 16.0 the counters for NET CLR Memory (_Global_) are shown as a single "*" instead of a list of names:

NET CLR Memory (_Global_)

   *

And this fails of course (unless there;s a way to specify a regular expression match that I missed).

The easiest solution is to use 16.5 but I'm curious how others managed to get around this with 16.0.

By the way, where does the v16.5 PDH.dll reside at? I just can't locate it anywhere.

Thanks.

View solution in original post

0 Likes
Micro Focus Expert
Micro Focus Expert

RE: Missing .NET CLR performance counters

Jump to solution

Hi Terry.

I just checked that last point with R&D and 16.5 is no longer using its own pdh, it's using the one which WIndows also uses (ie the systems pdh.dll).

View solution in original post

0 Likes
TerryK Absent Member.
Absent Member.

RE: Missing .NET CLR performance counters

Jump to solution

Thank you much Ciaran.

0 Likes
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.