How Can I Identify Unresponsive Perfmon Counters in Classic Monitoring?

QUESTION

In the VSA how can I identify which Monitor sets have unresponsive counters and are not reporting data?

ANSWER

There is no built-in report or functionality in the VSA that will identify these counters.

For advanced users, you can run the following SQL command in SQL Management Studio.

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.

SELECT DISTINCT dbo.machNameTab.agentGuid, dbo.machNameTab.machName, dbo.machNameTab.groupName
FROM dbo.monitorSetMachineXref INNER JOIN
dbo.machNameTab INNER JOIN
dbo.monitorCounterAgent ON dbo.machNameTab.agentGuid = dbo.monitorCounterAgent.AgentGuid INNER JOIN
dbo.agentState ON dbo.machNameTab.agentGuid = dbo.agentState.agentGuid ON
dbo.monitorSetMachineXref.monitorSetId = dbo.monitorCounterAgent.monitorSetId INNER JOIN
dbo.monitorSet ON dbo.monitorSetMachineXref.monitorSetId = dbo.monitorSet.monitorSetId INNER JOIN
dbo.monitorCounterLogSummary ON dbo.monitorCounterAgent.AgentGuid = dbo.monitorCounterLogSummary.agentGuid AND
dbo.monitorCounterAgent.monitorCounterId = dbo.monitorCounterLogSummary.monitorCounterId
WHERE (dbo.monitorCounterLogSummary.counterValue = - 998) AND (dbo.agentState.online = 1) AND (dbo.monitorCounterAgent.activeFlag = 1) AND
(dbo.monitorSet.EnableCounterMatching = 1) OR
(dbo.monitorCounterLogSummary.counterValue = - 999) AND (dbo.agentState.online = 1) AND (dbo.monitorCounterAgent.activeFlag = 1) AND
(dbo.monitorSet.EnableCounterMatching = 1)

This will display the machines with the counters that aren't responding.

SELECT DISTINCT 
dbo.machNameTab.agentGuid, dbo.machNameTab.machName, dbo.machNameTab.groupName, dbo.monitorSet.monitorSetId, 
dbo.monitorSet.name AS monitorsetName, dbo.counterObjectList.counterObject, dbo.counterList.counter, dbo.counterInstanceList.counterInstance
FROM dbo.monitorSetMachineXref INNER JOIN
dbo.machNameTab INNER JOIN
dbo.monitorCounterAgent ON dbo.machNameTab.agentGuid = dbo.monitorCounterAgent.AgentGuid INNER JOIN
dbo.agentState ON dbo.machNameTab.agentGuid = dbo.agentState.agentGuid ON 
dbo.monitorSetMachineXref.monitorSetId = dbo.monitorCounterAgent.monitorSetId INNER JOIN
dbo.monitorSet ON dbo.monitorSetMachineXref.monitorSetId = dbo.monitorSet.monitorSetId INNER JOIN
dbo.monitorCounterLogSummary ON dbo.monitorCounterAgent.AgentGuid = dbo.monitorCounterLogSummary.agentGuid AND 
dbo.monitorCounterAgent.monitorCounterId = dbo.monitorCounterLogSummary.monitorCounterId INNER JOIN
dbo.monitorCounter ON dbo.monitorSet.monitorSetId = dbo.monitorCounter.monitorSetId AND 
dbo.monitorCounterLogSummary.monitorCounterId = dbo.monitorCounter.monitorCounterId INNER JOIN
dbo.counterObjectList ON dbo.monitorCounter.counterObjectId = dbo.counterObjectList.counterObjectId INNER JOIN
dbo.counterList ON dbo.monitorCounter.counterId = dbo.counterList.counterId LEFT OUTER JOIN
dbo.counterInstanceList ON dbo.monitorCounter.counterInstanceId = dbo.counterInstanceList.counterInstanceId
WHERE (dbo.monitorCounterLogSummary.counterValue IN (- 998, - 999)) AND (dbo.agentState.online = 1) AND (dbo.monitorCounterAgent.activeFlag = 1) AND 
(dbo.monitorSet.EnableCounterMatching = 1)

For ALL monitorsets and if the machines is online. These machines MAYBE experiencing an issue.*

SELECT DISTINCT dbo.machNameTab.agentGuid, dbo.machNameTab.machName, dbo.machNameTab.groupName
FROM dbo.monitorSetMachineXref INNER JOIN
dbo.machNameTab INNER JOIN
dbo.monitorCounterAgent ON dbo.machNameTab.agentGuid = dbo.monitorCounterAgent.AgentGuid INNER JOIN
dbo.agentState ON dbo.machNameTab.agentGuid = dbo.agentState.agentGuid ON
dbo.monitorSetMachineXref.monitorSetId = dbo.monitorCounterAgent.monitorSetId INNER JOIN
dbo.monitorSet ON dbo.monitorSetMachineXref.monitorSetId = dbo.monitorSet.monitorSetId INNER JOIN
dbo.monitorCounterLogSummary ON dbo.monitorCounterAgent.AgentGuid = dbo.monitorCounterLogSummary.agentGuid AND
dbo.monitorCounterAgent.monitorCounterId = dbo.monitorCounterLogSummary.monitorCounterId
WHERE (dbo.monitorCounterLogSummary.counterValue = - 998) AND (dbo.agentState.online = 1) AND (dbo.monitorCounterAgent.activeFlag = 1) OR
(dbo.monitorCounterLogSummary.counterValue = - 999) AND (dbo.agentState.online = 1) AND (dbo.monitorCounterAgent.activeFlag = 1)

*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.

If counter matching is not working this is an indication of an issue that will need to be resolved. 

APPLIES TO:

Classic Monitoring

All on-premises servers

Last Updated on 27/04/2016

Was this article helpful?
4 out of 4 found this helpful
Have more questions? Contact us