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:
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:
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:
The script produces output like this:
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)
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.