Search code examples
performancepowershellcmdperformancecounter

Creating & Editing performance counters in a powershell script or command line


I'm trying to move the verification & creation of my performance counter groups, and the counters themselves, out of my web service and into a powershell script that's run during deployment.

Can this be done? Or am I stuck using a simple app to build the groups & counters?

Thanks much :)


Solution

  • Figured this out a while ago, but never posted.
    Here's my solution:

    //save out the type name for sanity's sake
    $ccdTypeName = 'System.Diagnostics.CounterCreationData'
    $CounterCollection = New-Object System.Diagnostics.CounterCreationDataCollection
    
    //create as many counters as we'd like, and add them to the collection. here's just one:
    $CounterCollection.Add( (New-Object $ccdTypeName "Counter Name", "Counter Description", NumberOfItems32) )
    
    //create the category with the counter collection
    [System.Diagnostics.PerformanceCounterCategory]::Create($perfCounterCategoryName, $perfCounterVersion, [Diagnostics.PerformanceCounterCategoryType]::SingleInstance, $CounterCollection);