cancel
Showing results for 
Search instead for 
Did you mean: 

Viewing New Enterprise Vault Storage Queue Performance Counters

HanoBotha
Level 2
Employee

Storage Queue

One of the key features in Enterprise Vault 11 is the secure asynchronous post-processing of archived items. This is made possible by the introduction of the ‘Storage Queue’. WAIT!! I can hear you scream, not another MSMQ. It is not an MSMQ queue. This is a storage area that is managed by EV, and it is there to ensure that EV always has two copies of every item. In the past, the item in the archive target was the second copy. The storage queue now takes on this responsibility, allowing the post-processing on the archive target to be completed asynchronously.

 

Performance Counters

The Storage Queue comes with three new Performance Counters:

  • Storage Queue Pending Length
  • Storage Queue Size(bytes)
  • Storage Queue Total Length

 

The monitoring of the Storage Queue is crucial to the operation of the EV environment.

The size and number of items in the storage queue will indicate the throughput of the EV environment. In addition, if the storage device that the Storage Queue is configured on runs out of space, archiving will be halted.

 

Adding the Counters to PerfMon

The counters can easily be added to perfmon as shown below:

tqpc_0.jpg

It is great to have the counters in perfmon, and the information can used in collaboration with other monitoring tools.

 

But what if you don’t want to go through perfmon, and just want a quick snapshot of your Storage Queue?

 

Python script to query performance counters

Python is an open source scripting engine and language. To learn more go to Python

 

Reading performance counters with python requires the usage of the WIN32PDH module.

The documentation for this module is not very good, but I found the following article very useful.

 

The script is quite short and does the following:

  1. Imports the win32pdh module
  2. Gets a list of all the counters in the ‘Enterprise Vault Storage’ category.
  3. Adds the counters to a query
  4. Execute the query, and print the values for each counter.

 

The script produces output like this:

cmd_0.jpg

 

Here is the full script:

import win32pdh


if __name__ == "__main__":

      counterCategory = 'Enterprise Vault Storage'

      (counters, instances) = win32pdh.EnumObjectItems(None, None, 'Enterprise Vault Storage', -1, 0)

     

      query_handle = win32pdh.OpenQuery()

     

      counter_handels = dict()

     

      for counter in counters:

      path = win32pdh.MakeCounterPath((None,counterCategory,None,None,0,counter),0)

      counter_handle = win32pdh.AddCounter(query_handle, path)

      counter_handels[counter]=counter_handle

     

      win32pdh.CollectQueryData(query_handle)

     

      for c,h in counter_handels.items():

      (counter_type, value) = win32pdh.GetFormattedCounterValue(h, win32pdh.PDH_FMT_LARGE )

      print("{0}:{1}".format(c, value))

     

     

      win32pdh.CloseQuery(query_handle)

     

 

(Script tested against Python 3.3)