Ask the Community
Groups
How Can I Identify Unresponsive Perfmon Counters in Classic Monitoring? - Connect IT Community | Kaseya
<main> <article class="userContent"> <h3 data-id="question">QUESTION</h3> <p>In the VSA how can I identify which Monitor sets have unresponsive counters and are not reporting data?</p> <h3 data-id="answer">ANSWER</h3> <p>There is no built-in report or functionality in the VSA that will identify these counters.</p> <p>For <strong>advanced users,</strong> you can run the following SQL command in SQL Management Studio.</p> <p><strong>For monitor sets that have "enable matching" enabled and the machines are online, and these machines MAYBE experiencing an issue. NOTE: The below query may display machines that are offline, as it will be counted as not responding.</strong></p> <p>SELECT DISTINCT dbo.machNameTab.agentGuid, dbo.machNameTab.machName, dbo.machNameTab.groupName<br>FROM dbo.monitorSetMachineXref INNER JOIN<br> dbo.machNameTab INNER JOIN<br> dbo.monitorCounterAgent ON dbo.machNameTab.agentGuid = dbo.monitorCounterAgent.AgentGuid INNER JOIN<br> dbo.agentState ON dbo.machNameTab.agentGuid = dbo.agentState.agentGuid ON <br> dbo.monitorSetMachineXref.monitorSetId = dbo.monitorCounterAgent.monitorSetId INNER JOIN<br> dbo.monitorSet ON dbo.monitorSetMachineXref.monitorSetId = dbo.monitorSet.monitorSetId INNER JOIN<br> dbo.monitorCounterLogSummary ON dbo.monitorCounterAgent.AgentGuid = dbo.monitorCounterLogSummary.agentGuid AND <br> dbo.monitorCounterAgent.monitorCounterId = dbo.monitorCounterLogSummary.monitorCounterId<br>WHERE (dbo.monitorCounterLogSummary.counterValue = - 998) AND (dbo.agentState.online = 1) AND (dbo.monitorCounterAgent.activeFlag = 1) AND <br> (dbo.monitorSet.EnableCounterMatching = 1) OR<br> (dbo.monitorCounterLogSummary.counterValue = - 999) AND (dbo.agentState.online = 1) AND (dbo.monitorCounterAgent.activeFlag = 1) AND <br> (dbo.monitorSet.EnableCounterMatching = 1)</p> <p><strong>This will display the machines with the counters that aren't responding.</strong></p> <p>SELECT DISTINCT <br>dbo.machNameTab.agentGuid, dbo.machNameTab.machName, dbo.machNameTab.groupName, dbo.monitorSet.monitorSetId, <br>dbo.monitorSet.name AS monitorsetName, dbo.counterObjectList.counterObject, dbo.counterList.counter, dbo.counterInstanceList.counterInstance<br>FROM dbo.monitorSetMachineXref INNER JOIN<br>dbo.machNameTab INNER JOIN<br>dbo.monitorCounterAgent ON dbo.machNameTab.agentGuid = dbo.monitorCounterAgent.AgentGuid INNER JOIN<br>dbo.agentState ON dbo.machNameTab.agentGuid = dbo.agentState.agentGuid ON <br>dbo.monitorSetMachineXref.monitorSetId = dbo.monitorCounterAgent.monitorSetId INNER JOIN<br>dbo.monitorSet ON dbo.monitorSetMachineXref.monitorSetId = dbo.monitorSet.monitorSetId INNER JOIN<br>dbo.monitorCounterLogSummary ON dbo.monitorCounterAgent.AgentGuid = dbo.monitorCounterLogSummary.agentGuid AND <br>dbo.monitorCounterAgent.monitorCounterId = dbo.monitorCounterLogSummary.monitorCounterId INNER JOIN<br>dbo.monitorCounter ON dbo.monitorSet.monitorSetId = dbo.monitorCounter.monitorSetId AND <br>dbo.monitorCounterLogSummary.monitorCounterId = dbo.monitorCounter.monitorCounterId INNER JOIN<br>dbo.counterObjectList ON dbo.monitorCounter.counterObjectId = dbo.counterObjectList.counterObjectId INNER JOIN<br>dbo.counterList ON dbo.monitorCounter.counterId = dbo.counterList.counterId LEFT OUTER JOIN<br>dbo.counterInstanceList ON dbo.monitorCounter.counterInstanceId = dbo.counterInstanceList.counterInstanceId<br>WHERE (dbo.monitorCounterLogSummary.counterValue IN (- 998, - 999)) AND (dbo.agentState.online = 1) AND (dbo.monitorCounterAgent.activeFlag = 1) AND <br>(dbo.monitorSet.EnableCounterMatching = 1)</p> <p><strong>For ALL monitorsets and if the machines is online. These machines MAYBE experiencing an issue.*</strong></p> <p>SELECT DISTINCT dbo.machNameTab.agentGuid, dbo.machNameTab.machName, dbo.machNameTab.groupName<br>FROM dbo.monitorSetMachineXref INNER JOIN<br> dbo.machNameTab INNER JOIN<br> dbo.monitorCounterAgent ON dbo.machNameTab.agentGuid = dbo.monitorCounterAgent.AgentGuid INNER JOIN<br> dbo.agentState ON dbo.machNameTab.agentGuid = dbo.agentState.agentGuid ON <br> dbo.monitorSetMachineXref.monitorSetId = dbo.monitorCounterAgent.monitorSetId INNER JOIN<br> dbo.monitorSet ON dbo.monitorSetMachineXref.monitorSetId = dbo.monitorSet.monitorSetId INNER JOIN<br> dbo.monitorCounterLogSummary ON dbo.monitorCounterAgent.AgentGuid = dbo.monitorCounterLogSummary.agentGuid AND <br> dbo.monitorCounterAgent.monitorCounterId = dbo.monitorCounterLogSummary.monitorCounterId<br>WHERE (dbo.monitorCounterLogSummary.counterValue = - 998) AND (dbo.agentState.online = 1) AND (dbo.monitorCounterAgent.activeFlag = 1) OR<br> (dbo.monitorCounterLogSummary.counterValue = - 999) AND (dbo.agentState.online = 1) AND (dbo.monitorCounterAgent.activeFlag = 1)</p> <p>*<em>If you have "enable matching" enabled this will allow Kaseya to remove the monitored instance if it does not exits on the machine. If you dont have this enabled you can apply monitoring for instances that don't exist on the machine. These instances /counters will then return "not responding" as they don't exits on the machine and therefore can't be monitored. We therefore can't assume that these counters should be responding. The issue may simply be that you've applied monitoring to the machine that you shouldn't have and it needs to be removed.</em></p> <p>If counter matching is not working this is an indication of an issue that will need to be resolved. </p> <p><strong>APPLIES TO:</strong></p> <p>Classic Monitoring</p> <p>All on-premises servers</p> <p>Last Updated on 27/04/2016</p> </article> </main>