Handling String Array() Values in OpsMgr WinRM Enumeration Data Sources

I was recently asked a question on this topic, and I thought it was worth sharing.  

In this post, I described discovering Oracle processes with enumerations of instances of the SCX_UnixProcess class that are filtered on the values of the “Parameters” property.   The question I was asked involved a problem with a similar discovery process that was not evaluating the full Parameters value if more than oe value is returned.   An example of an enumeration for such an SCX_UnixProcess instance would be:

SCX_UnixProcess
    CSCreationClassName = SCX_ComputerSystem
    CSName = tl-lx02.testlab.corp
    Caption = Unix process information
    CreationClassName = SCX_UnixProcess
    CreationDate = 2010-05-09T09:17:37.614884Z
    Description = A snapshot of a current process
    […]
    ModulePath = /usr/bin/Xorg
    Name = Xorg
    OSCreationClassName = SCX_OperatingSystem
    OSName = Red Hat Distribution
    OperationalStatus = null
    OtherEnabledState = null
    OtherExecutionDescription = null
   Parameters = /usr/bin/Xorg, :0, -br, -audit, 0, -auth, /var/gdm/:0.Xauth
    ParentProcessID = 4040
    Priority = 75
    ProcessGroupID = 4048
    ProcessNiceValue = 20
    ProcessSessionID = 4048
    ProcessTTY = null
    […]

In this example, if an ExpressionFilter module were configured to evaluate the XPATH query:  //*[local-name()=”Parameters”], the evaluated value  would resolve to:  /usr/bin/Xorg.  Just the first value in the string array  would be evaluated.  

However, with this array of strings, the other values can be accessed with an ordinal appended to the XPATH queries:
 //*[local-name()=”Parameters”][1]
//*[local-name()=”Parameters”][2]
//*[local-name()=”Parameters”][3]
etc.

So, the ExpressionFilter module could easily be configured with a top-level  ‘OR’ operator, and a sequence of RegExExpressions to evaluate the first 2, 3, 4, 5 etc values in the Parameters value list

Finishing the Oracle SCX Management Pack for OpsMgr Cross-Platform Agents

I am in the process of putting the finishing touches on the Oracle SCX Management Pack that I have described in several recent posts (part 1, part 2part 3, part 4) and will soon be moving on to finishing the documentation for the management pack.  This post is intended to provide a preview of the finished MP and highlight the monitoring implemented by this MP.   I intend to make this management pack freely available in the near future, but I would like to get some more testing done before posting it for download.   In the meantime, if anyone is interested in testing this management pack, please leave a comment or contact me and I will be glad to provide an early beta version.  

While completing this management pack has taken me longer than I had anticipated, this authoring process has been a great learning experience for me in an area a bit outside of my comfort zone.  I also like to think that this management pack is a good representation of just how flexible the OpsMgr SCX extensions are in that I was able to implement all of the discovery and monitoring in the management pack using the basic SCX agent CIM providers without any additional scripts or compiled code on the agents. 

Screenshots

View Menu

Alert View

(Looks like it’s time to grow some table spaces)

Read more of this post