dynaTrace 5.6. Customer cannot see the .NET process memory metrics after agent install (IIS 6 on Windows 2003). To work around the problem, we tried to use Windows Perfmon to capture the same data. Here is the steps we took:
Detailed message: ASP.NET Applications
Errors Total
_Total:Unable to get Value. Please check if the host is reachable and the requested Performance Counter is available. Detailed error message: The returned data is valid.
(System error code: 0x0)
Retrieved measurements: ARINC - .NET Memory Gen 0: 139.0
ASPTotalErrors_WFH: null
Committed Bytes In Use: 16.0
Current Disk Queue Length: 0.0
Disk Reads/sec: 0.0
Disk Writes/sec: 1.0
Free Diskspace: 19384.0
Free Memory: 2517808.0
Get Requets_WFH: 0.0
Idle Time: 88.749
LogicalDisk Free Percentage: 18.205000000000002
Pages Input: 0.0
Pages Output: 0.0
Pages/Sec: 0.0
PhysicalDisk Read: 0.0
PhysicalDisk Write: 6142.0
PostRequests/Sec_WFH: 0.0
Process Count: 54.0
Process Memory Usage: 1.46962432E9
Processor Interrupts/sec: 190.363
Processor Time: 11.25
Run Queue, current: 0.0
ServiceUptime_WFH: 43824.0
TotalConn_wfh: 25346.0
TotalPostRequests_WFH: 46963.0
TotalPutRequests_WFH: 0.0
User Time: 9.687
we do get data from those out of box measures (as you can see from the rest data), so we believe the permission is not an issue (otherwise, it won't get other data as well).
I tried the same steps on my local machine with easy travel, I can see data from my perfmon for .NET Gen 0, but not able to get data in dT with the same error message. In my case, here is the error:
Answer by Zajac W. ·
Hi Dong,
The way to check if it is letter b) in Andi's post is:
I have seen this issue on IIS7 on windows 2003 and 2008. I have not seen it on IIS6.
Answer by Andreas G. ·
The difference in these counters is that those that deliver values are system measures (Disk, Memory, ...). The Gen 0 are specific to a particular .NET Process. Thats why out-of-the-box our .NET AGent will retrieve these values and using its own instance id when querying these values.
I see two potential areas that could explain the problem
a) the user that runs your .NET Process (thats the process where the .NET AGent is loaded into) doesn't have the privilidges to get these process specific counters
b) there is a problem with the instance id when our agent tries to query PerfMon. The agent may "believe" it has a different instanceId than what needs to be used to query the perfcounters. There is the following KB that talks about this (unfortuntaely no resolution): KB-323 Windows Performance Counters may not be correct
If you cant solve that problem I would reach out to tech support by opening a ticket
Andy, customer opened a ticket in support portal, the support team did some research and the info is relevant to what you described. I post the support ticket update and will verify with customer tomorrow to see if issue is fixed. Here is the support ticket update:
I believe I found a relevant document that documents the issue at hand: http://www.debugdotnet.com/mapping-performance-counter-w3wp-instance-names-to-asp-net-worker-pids.html
The steps given are:
"If you cannot see a counter that is named Process ID under .NET CLR Memory, the performance counter symbols may not be installed correctly. To resolve this issue, follow these steps:
- Click Start, click Run, type cmd, and then click OK.
- At the command prompt, type unlodctr .NetFramework, and then press ENTER.
- Use the cd command to change to the Microsoft.NetFrameworkv2.0.50727 folder.
- At the command prompt, type lodctr corperfmonsymbols.ini, and then press ENTER
"
Problems:
- the "Process ID" counter is not available in this CLR/OS
- therefore dynaTrace cannot map the PID to the w3wp process and does not find the GC metrics
- the next step is to find out why that counter is not available and if there is a way to enable it
JANUARY 15, 3:00 PM GMT / 10:00 AM ET