I'm having issues getting some custom performance counters to work.. Here's
what I'm trying to do...
I want to create one category with two CountPerTimeInt erval32 counters,
which represent an interface.. For each implementation I want to add a new
instance for both counters so each implementation can be tracked
seperately.. The category and counters (minus the instances) show up in the
in the performance object, although the bases do not. When I try to
increment the counters nothing shows up, here is my implementation, please
help...
TIA,
Dan B
Imports System
Imports System.Collecti ons
Imports System.Collecti ons.Specialized
Imports System.Diagnost ics
Imports MNCAppServices
Public Class Collector
Private pcCategory As PerformanceCoun terCategory
Private pcBDOGet As PerformanceCoun ter
Private pcBDOGetBase As PerformanceCoun ter
Private pcBDOSave As PerformanceCoun ter
Private pcBDOSaveBase As PerformanceCoun ter
Sub New()
SetupCategory()
End Sub
Private Function SetupCategory() As Boolean
Try
If Not PerformanceCoun terCategory.Exi sts("MNC BDO Statistics") Then
Dim CCDC As New CounterCreation DataCollection
'create counters
Dim cptBDOGet As New CounterCreation Data("BDOGet", "Tracks calls to BDOGet
by time interval.", PerformanceCoun terType.CountPe rTimeInterval32 )
CCDC.Add(cptBDO Get)
Dim cptBDOGetBase As New CounterCreation Data("BDOGetBas e", "Tracks calls to
BDOGet by time interval.", PerformanceCoun terType.Average Base)
CCDC.Add(cptBDO GetBase)
Dim cptBDOSave As New CounterCreation Data("BDOSave", "Tracks calls to
BDOSave by time interval.", PerformanceCoun terType.CountPe rTimeInterval32 )
CCDC.Add(cptBDO Save)
Dim cptBDOSaveBase As New CounterCreation Data("BDOSaveBa se", "Tracks calls
to BDOGet by time interval.", PerformanceCoun terType.Average Base)
CCDC.Add(cptBDO SaveBase)
' Create the category.
PerformanceCoun terCategory.Cre ate("MNC BDO Statistics", "Collects statistics
about Business Data Object Usage.", CCDC)
CreateCounters( )
Return True
Else
GetCategoryRef( )
GetCountersRef( )
Return True
End If
Catch ex As Exception
Utility.LogExce ption(ex)
Return False
End Try
End Function 'SetupCategory
Private Sub CreateCounters( )
' Create the counters.
pcBDOGet = New PerformanceCoun ter("MNC BDO Statistics", "BDOGet",
"CustomerContac t", False)
pcBDOGet.ReadOn ly = False
pcBDOGet.RawVal ue = 0
pcBDOGetBase = New PerformanceCoun ter("MNC BDO Statistics", "BDOGetBase ",
"CustomerContac t", False)
pcBDOGetBase.Re adOnly = False
pcBDOGetBase.Ra wValue = 0
pcBDOSave = New PerformanceCoun ter("MNC BDO Statistics", "BDOSave",
"CustomerContac t", False)
pcBDOSave.ReadO nly = False
pcBDOSave.RawVa lue = 0
pcBDOSaveBase = New PerformanceCoun ter("MNC BDO Statistics", "BDOSaveBas e",
"CustomerContac t", False)
pcBDOSaveBase.R eadOnly = False
pcBDOSaveBase.R awValue = 0
End Sub 'CreateCounters
Private Sub GetCountersRef( )
' Create references to counters.
Dim objCnt As PerformanceCoun ter
For Each objCnt In pcCategory.GetC ounters
Select Case objCnt.CounterN ame
Case Is = "BDOGet"
pcBDOGet = objCnt
pcBDOGet.ReadOn ly = False
Case Is = "BDOGetBase "
pcBDOGetBase = objCnt
pcBDOGetBase.Re adOnly = False
Case Is = "BDOSave"
pcBDOSave = objCnt
pcBDOSave.ReadO nly = False
Case Is = "BDOSaveBas e"
pcBDOSaveBase = objCnt
pcBDOSaveBase.R eadOnly = False
End Select
Next
End Sub 'CreateCounters
Private Sub GetCountersRef( ByVal InstanceName As String)
' Create references to counters.
Dim objCnt As PerformanceCoun ter
For Each objCnt In pcCategory.GetC ounters(Instanc eName)
Select Case objCnt.CounterN ame
Case Is = "BDOGet"
pcBDOGet = objCnt
pcBDOGet.ReadOn ly = False
Case Is = "BDOGetBase "
pcBDOGetBase = objCnt
pcBDOGetBase.Re adOnly = False
Case Is = "BDOSave"
pcBDOSave = objCnt
pcBDOSave.ReadO nly = False
Case Is = "BDOSaveBas e"
pcBDOSaveBase = objCnt
pcBDOSaveBase.R eadOnly = False
End Select
Next
End Sub
Private Sub GetCategoryRef( )
Dim objCategory As PerformanceCoun terCategory
For Each objCategory In PerformanceCoun terCategory.Get Categories
If objCategory.Cat egoryName = "MNC BDO Statistics" Then
pcCategory = objCategory
End If
Next
End Sub
Public Sub IncrementSaveCo unter(ByVal InstanceName As String)
If pcCategory.Inst anceExists(Inst anceName) Then
GetCountersRef( InstanceName)
pcBDOSave.Incre ment()
End If
End Sub
Public Sub IncrementGetCou nter(ByVal InstanceName As String)
If pcCategory.Inst anceExists(Inst anceName) Then
GetCountersRef( InstanceName)
pcBDOGet.Increm ent()
End If
End Sub
End Class 'App
what I'm trying to do...
I want to create one category with two CountPerTimeInt erval32 counters,
which represent an interface.. For each implementation I want to add a new
instance for both counters so each implementation can be tracked
seperately.. The category and counters (minus the instances) show up in the
in the performance object, although the bases do not. When I try to
increment the counters nothing shows up, here is my implementation, please
help...
TIA,
Dan B
Imports System
Imports System.Collecti ons
Imports System.Collecti ons.Specialized
Imports System.Diagnost ics
Imports MNCAppServices
Public Class Collector
Private pcCategory As PerformanceCoun terCategory
Private pcBDOGet As PerformanceCoun ter
Private pcBDOGetBase As PerformanceCoun ter
Private pcBDOSave As PerformanceCoun ter
Private pcBDOSaveBase As PerformanceCoun ter
Sub New()
SetupCategory()
End Sub
Private Function SetupCategory() As Boolean
Try
If Not PerformanceCoun terCategory.Exi sts("MNC BDO Statistics") Then
Dim CCDC As New CounterCreation DataCollection
'create counters
Dim cptBDOGet As New CounterCreation Data("BDOGet", "Tracks calls to BDOGet
by time interval.", PerformanceCoun terType.CountPe rTimeInterval32 )
CCDC.Add(cptBDO Get)
Dim cptBDOGetBase As New CounterCreation Data("BDOGetBas e", "Tracks calls to
BDOGet by time interval.", PerformanceCoun terType.Average Base)
CCDC.Add(cptBDO GetBase)
Dim cptBDOSave As New CounterCreation Data("BDOSave", "Tracks calls to
BDOSave by time interval.", PerformanceCoun terType.CountPe rTimeInterval32 )
CCDC.Add(cptBDO Save)
Dim cptBDOSaveBase As New CounterCreation Data("BDOSaveBa se", "Tracks calls
to BDOGet by time interval.", PerformanceCoun terType.Average Base)
CCDC.Add(cptBDO SaveBase)
' Create the category.
PerformanceCoun terCategory.Cre ate("MNC BDO Statistics", "Collects statistics
about Business Data Object Usage.", CCDC)
CreateCounters( )
Return True
Else
GetCategoryRef( )
GetCountersRef( )
Return True
End If
Catch ex As Exception
Utility.LogExce ption(ex)
Return False
End Try
End Function 'SetupCategory
Private Sub CreateCounters( )
' Create the counters.
pcBDOGet = New PerformanceCoun ter("MNC BDO Statistics", "BDOGet",
"CustomerContac t", False)
pcBDOGet.ReadOn ly = False
pcBDOGet.RawVal ue = 0
pcBDOGetBase = New PerformanceCoun ter("MNC BDO Statistics", "BDOGetBase ",
"CustomerContac t", False)
pcBDOGetBase.Re adOnly = False
pcBDOGetBase.Ra wValue = 0
pcBDOSave = New PerformanceCoun ter("MNC BDO Statistics", "BDOSave",
"CustomerContac t", False)
pcBDOSave.ReadO nly = False
pcBDOSave.RawVa lue = 0
pcBDOSaveBase = New PerformanceCoun ter("MNC BDO Statistics", "BDOSaveBas e",
"CustomerContac t", False)
pcBDOSaveBase.R eadOnly = False
pcBDOSaveBase.R awValue = 0
End Sub 'CreateCounters
Private Sub GetCountersRef( )
' Create references to counters.
Dim objCnt As PerformanceCoun ter
For Each objCnt In pcCategory.GetC ounters
Select Case objCnt.CounterN ame
Case Is = "BDOGet"
pcBDOGet = objCnt
pcBDOGet.ReadOn ly = False
Case Is = "BDOGetBase "
pcBDOGetBase = objCnt
pcBDOGetBase.Re adOnly = False
Case Is = "BDOSave"
pcBDOSave = objCnt
pcBDOSave.ReadO nly = False
Case Is = "BDOSaveBas e"
pcBDOSaveBase = objCnt
pcBDOSaveBase.R eadOnly = False
End Select
Next
End Sub 'CreateCounters
Private Sub GetCountersRef( ByVal InstanceName As String)
' Create references to counters.
Dim objCnt As PerformanceCoun ter
For Each objCnt In pcCategory.GetC ounters(Instanc eName)
Select Case objCnt.CounterN ame
Case Is = "BDOGet"
pcBDOGet = objCnt
pcBDOGet.ReadOn ly = False
Case Is = "BDOGetBase "
pcBDOGetBase = objCnt
pcBDOGetBase.Re adOnly = False
Case Is = "BDOSave"
pcBDOSave = objCnt
pcBDOSave.ReadO nly = False
Case Is = "BDOSaveBas e"
pcBDOSaveBase = objCnt
pcBDOSaveBase.R eadOnly = False
End Select
Next
End Sub
Private Sub GetCategoryRef( )
Dim objCategory As PerformanceCoun terCategory
For Each objCategory In PerformanceCoun terCategory.Get Categories
If objCategory.Cat egoryName = "MNC BDO Statistics" Then
pcCategory = objCategory
End If
Next
End Sub
Public Sub IncrementSaveCo unter(ByVal InstanceName As String)
If pcCategory.Inst anceExists(Inst anceName) Then
GetCountersRef( InstanceName)
pcBDOSave.Incre ment()
End If
End Sub
Public Sub IncrementGetCou nter(ByVal InstanceName As String)
If pcCategory.Inst anceExists(Inst anceName) Then
GetCountersRef( InstanceName)
pcBDOGet.Increm ent()
End If
End Sub
End Class 'App
Comment